cyclonedds icon indicating copy to clipboard operation
cyclonedds copied to clipboard

Some issue when reader set time_based fitler QOS

Open wujian0401 opened this issue 3 years ago • 3 comments

Hello, I tried to set time-based filter on reader, the minimal_seperation is 1 second, and I tried to send mesage from writer with rate one packet every 100ms. I expect the reader receive one message per second, but it still got one message per 100ms.

here is the writer code: ... for (int i = 0; i < 600; i++) { topic_type->build_msg(msg, sizeof(msg), "Test Qos TIME_BASED_FILTER"); dds_write(writer, msg); dds_sleepfor(DDS_MSECS(100));
} ......

here is the reader code: ...... qos = dds_create_qos(); dds_qset_deadline(qos, DDS_MSECS(2000)); dds_qset_time_based_filter(qos, DDS_MSECS(1000));

listener = dds_create_listener(topic_type); dds_lset_liveliness_changed(listener, liveliness_changed_listener);

reader = dds_create_reader(participant, topic, qos, listener);

samples[0] = topic_type->alloc_msg()

while (true) { rc = dds_take(reader, samples, infos, MAX_SAMPLES, MAX_SAMPLES); if ((rc > 0) && (infos[0].valid_data)) { printf("======== [Subscriber] Received:“); topic_type->dump_msg(samples[0]); } else { dds_sleepfor(DDS_MSECS(20)); } } toipc_type->free_msg(samples[0]); ......

wujian0401 avatar May 20 '22 09:05 wujian0401

Same Here. Don't know what's the problem.

unitree-czk avatar Jun 13 '23 07:06 unitree-czk

Before I spend more time on it, can you tell me which version you're using? Because #1506 implemented it but it is currently only available on master.

eboasson avatar Jun 13 '23 08:06 eboasson