We are using a DataWriterListener
and want to log the IP address of a DataReader
whenever it disconnects abruptly. Specifically, we want to log a message like:
"Reader with IP X.X.X.X disconnected unexpectedly."
Is the on_liveliness_lost
callback the correct method to detect such disconnections? If so, how can we log the reader's IP address from within this callback?
DataWriter
My understanding is that DDS DataWriters communicate CacheChanges to the HistoryCaches of the associated RTPS Writer. This CacheChange is then propagated to the mapped RTPS Readers before notifying their associated DDS DataReaders.
From the above statement, there are queues (the HistoryCache) on the RTPS Writers and Readers.
I'm getting this error when running my application.
terminate called after throwing an instance of 'dds::core::TimeoutError'
what(): write
terminate called after throwing an instance of 'dds::core::TimeoutError'
what(): write
And from the `what(): write`, I'm guessing that's when I write out a message like so
my_writer->write(msg);
Hi,
My application needs to write and read on the same "TopicA". It works fine, but I don't want to catch data from my own dataWriter. Is there a way (QoS or ReadCondition) to prevent fire data to myself?
ReadCondition would be the best because I do not have the full control of the QoS, but I can't figure out how to deal with it.
Regars
JB
Following on from my previous post re unreliable WiFi connections, I found that the problem was caused by calling DataWriter::write()
too soon after creating the DataWriter
. Because write()
is non-blocking it returned immediately without doing anything. Also, because it is void
, there is no error return code.
So the publishing app was not in fact sending anything, and I had no way of knowing.
It obviously needed more time to assemble its plumbing, so I put in a 2 second sleep, after which it worked.
Hi,
We are using RHEL7.5 and RTI DDS 5.3.1.
I've done some searching already. I was wondering if it was possible for a datawriter to only send the fields that have changed in a message and a datareader to only act on those 'changed' fields. Am I correct that this feature does not exist in RTI DDS currently?
Hi,
Currently, all data writers are created before use and that consumes memory. Some topics (and thus data writers) are events that only be invoked under certain scenarios, and can be created when necessary and release after used.
Is there a way to support dynamic creation and release of data writers, just like malloc() and free() ?
Hello ~
We are using version 5.2.2 of DDS.
We have delivered the program using DDS.
But when the customer tells us that our program is kill process
The customer's DataWriter pauses and then resends after a few seconds.
We think this is due to the Qos configuration, but we are not sure.
Could you give me some advice on this situation?
Hey,
I'm have a DDS_DataWriter configured to keep history with a depth of 128. After 128 written samples, the DDS_DataWriter returns a "DDS_RETCODE_TIMEOUT" error, which is expected because the buffer is full and no DDS_DataReader has read anything from it.
