Hello-
I am attempting to use rtiddsping to diagnose an issue in communications where publication occurs on a VxWorks box and subscription occurs on a Windows machine.
To learn the tool, I’m presently just running some tests across two Windows machines.
Rtiddsping offers the command line options “typeName” and “topicName”. It appears that this could allow me to substitute the default NddsPingData type (which consists of a single long) with my own type. I’ve tried this by defining a new type in XML but it seems the only change is to the name of the topic and the name of the type. I’ve verified rtiddsping is reading the correct USER_QOS_PROFILES.xml file containing the type definition.
I’d like to use rtiddsping to send a buffer of data and experiment with QoS settings as I increase the size of that data.
Can you elaborate on these two options to rtiddsping? Can rtiddsping be used with a type of my own?
Thanks-
Todd
After looking at this further, I understand it is non-sensical to expect rtiddsping to access members of a new user-provided type. That said, can you still comment on the purpose of the typeName & topicName options?
Thanks- Todd
Hi Todd
The purpose of allowing the configuration of the typeName and topicName is to provide flexibility in setting up less trivial scenarios. Say you wanted to setup a situation where one
rtiddsping
application is sending data to 2 subscribes and a separatertiddsping
publisher sends data to 3rtiddsping
subscribers. Using the -topicName you can make eachrtiddsping
pubisher send data on a different TopicName and hence communicate only with thertiddsping
subscribers that use that same TopicName.This helps also test configurations of RTI technologies like the RTI Routing Service, the Recording Service, etc.
We also allow setting dfferent TypeNames as a way to test out scenarios where the TypeName affects the processing of the data. For example a RTI Routing Service can have routes configured to forward data based on the TypeName or a regular expression on the type name, etc.
That said, the 'scenario' creation capabilities of
rtiddsping
are quite limited. You cannot configure the schema of the data published or the values, or publish more than one Topic, etc. etc.riddsping
is really suited for very simple tests...If what you want is to set up more complex scenarions and control the schema of the data publish, the number of topics, DataWriters and DataReaders, their QoS, the content of the data, or subscribe to multiple topics, or a mix, etc. We do provide a different tool called
rtiddsprototyper
which does all this and might fit what you are looking for. It is bundled with the regular RTI DDS distribution and can be found in the same directory asrtiddsping
. Here is a quote from the RTI DDS Prototyper Getting Started Guide:Regards,
Gerardo
Thanks for your quick response, Gerardo.
I had forgotten about that tool.
I read through the Prototyper manual and tested it out. The scenario I am trying to test involves transmitting large reliable data. I am able to model this well using Prototyper. The only issue is that the subscriber side attempts to dump the received data to the console. I'm starting with an array of ~500KB might so this subscriber handling isn't going to work for me.
I will write a simple test outside of prototyper.
As feedback, ultimately I'd love to see an echo test with a configurable payload size and record of round-trip times. This is almost rtiddsping and almost prototyper.
Thanks!
-Todd
Hi Todd,
Do you need this only in Windows? We are working on some enhancements to
rtiprototyper
with scriptiing capabilities allowing you to handle the received data differently and examine it without necessarily printing to the console... This will not be ready for a couple of months but we may be able to get you setup with some "experimental" version as long as you only need it in a fairly standard platform and are willing to deal with experimental software...As to the echo test. It is interesting. We had discussed internally in the past something that sounds similar. The idea was to run N programs in different computers taht would ping each other and automatically report in a matrix the matrix of latencies from each pair of computers. Unfortunately we never had a good opportunity to resource this... But I am still hoping we will get around to doing something like this soon... I think it is simple to do and would be quite useful...
Gerardo
Gerardo-
To answer directly, we have immediate need for such tooling to help diagnose problems we are seeing.
The internal tool you've considered does sound interesting though its perhaps more then we need ourselves currently. The problem we are having is specific to playing with QoS around reliable delivery of large data. Just having a "datasize" option to rtiddsping would suffice. I don't even care about it being my data structure.
The problems we are seeing are specific only to publishing from a VxWorks platform. This is not a simple & standard platform. That said, if your experimental prototyper can run on Windows and subscribe to publications from a non-experimental prototyper on VxWorks (which I expect it probably could), then it would indeed be useful to us.
FYI, I've been working with Mark H for some other things and he is familiar with our project, as are others in your organization.
Thanks you for your prompt response.
-Todd