can not sending sample

4 posts / 0 new
Last post
Offline
Last seen: 1 year 9 months ago
Joined: 01/13/2016
Posts: 43
can not sending sample

Hi,

I have two apps and they work like this, A send its ID and synchronize clock to B, B send its id and clock to A after B receive A's clock.A send its synchronize clock every 0.001 second and start from 0. it works well untill the clock 2742.642. when A send synchronize clock 2742.643 B could not receive the clock at all! I start the other app C to receive A's sysnchronize clock, it also can not receive it, i don't know why. there is no return error form the writer of A.

the IDL like this
struct SimClock {
long ID;//@key
double clock;
double data;
};

the qos setting is like this:

DDS_Publisher_get_default_datawriter_qos(publisher, &datawriter_qos);
datawriter_qos.history.depth = 1;
datawriter_qos.reliability.kind = DDS_RELIABLE_RELIABILITY_QOS;

DDS_Subscriber_get_default_datareader_qos(subscriber, &datareader_qos);
datareader_qos.history.depth = 1;
datareader_qos.reliability.kind = DDS_RELIABLE_RELIABILITY_QOS;

I use multicast and the setting like this
DDS_TransportMulticastSettingsSeq_initialize(&datareader_qos.multicast.value);
DDS_TransportMulticastSettingsSeq_ensure_length(&datareader_qos.multicast.value,1,1);
multicast = DDS_TransportMulticastSettingsSeq_get_reference(&datareader_qos.multicast.value, 0);
multicast->receive_address = DDS_String_dup("239.168.12.19");
multicast->receive_port = 23319;

also set to ignore the sample from local participant:
DDS_Entity* participantEntity = DDS_DomainParticipant_as_entity(domainParticipant);
DDS_InstanceHandle_t IHandle = DDS_Entity_get_instance_handle(participantEntity);
DDS_DomainParticipant_ignore_participant(domainParticipant, &IHandle);

and increasing the receiver_pool:
participant_qos.receiver_pool.buffer_size = 65536;

i test several times and get the same result. this is a really problem to me, thanks for any help or advices.

Offline
Last seen: 1 year 9 months ago
Joined: 01/13/2016
Posts: 43

any ideas?

Offline
Last seen: 5 months 2 weeks ago
Joined: 05/23/2013
Posts: 49

Hi,

To debug your issue, you can first check the status of DataWriters and Readers (specifically sample lost/rejected status) to understand what is causing the sample is not received. 

https://community.rti.com/static/documentation/connext-dds/5.2.3/doc/manuals/connext_dds/html_files/RTI_ConnextDDS_CoreLibraries_UsersManual/Content/UsersManual/Statuses_for_DataWriters.htm

https://community.rti.com/static/documentation/connext-dds/5.2.3/doc/manuals/connext_dds/html_files/RTI_ConnextDDS_CoreLibraries_UsersManual/Content/UsersManual/Statuses_for_DataReaders.htm

I hope you could find some clues via status information. 

Thanks,
Kyoungho

Offline
Last seen: 1 year 9 months ago
Joined: 01/13/2016
Posts: 43

thanks for you answer, i find the problem, it's nothing about DDS, thanks again.