Hello,
I would like to know the default piggyback heartbeat period, however I can not estimate the period because max_samples is UNLIMITED, min_send_window_size, and max_send_window_size are UNLIMITED according to the API reference default values.
Does the DDS middleware dynamically determine effective value by resource limits settings, the number of outstanding samples and so on?
Many thanks,
Hello,
If max_samples is UNLIMITED, then it is assumed to take the value of 100 million for the purposes of computing when to place a piggiback Heartbeat. In otherwords if you want a piggyback heartbeat each 100 samples you would need to set DDS_RtpsReliableWriterProtocol_t::heartbeats_per_max_samples to 1000000 (one million).
In addition to the above, the protocol will also ensure that at least one hearbeat is sent each send_window_size. But as both DDS_RtpsReliableWriterProtocol_t::min_send_window_size and DDS_RtpsReliableWriterProtocol_t::max_send_window_size situation are UNLIMITED in the default configuration then this additional check has no effect.
You might want to think about setting the min_send_window_size and max_send_window_size these are parameters that should be set in most situations in which you are writing data at reasonable rates. Otherwise there is effectively no way to throttle a writer that goes faster than the readers can accomodate.
Hope it helps,
Gerardo.