나는 dds에 대해 매일 더 많은 것을 배우기 때문에 나의 질문은 소리가 이상합니다. 나는 그것이 의미가 있기를 바랍니다.OpenSplice DDS : 게시 제한 시간까지
내가 쓰고있는 일부 dds 래퍼의 요구 사항 중 하나는 쓰기에 실패하면 시간 초과 기간이 지나면 시간 초과된다는 것입니다. 내 질문 : 어떻게하면됩니까?
Prism Tech's website's tutorial에는 WaitSet
을 사용하여 읽기 작업을 차단하는 방법에 대한 설명이 있지만 쓰기는 어떻게해야합니까?
여기에 질문을 포함하여 일부 코드입니다 : 내가 거기에 눈치
dds::domain::DomainParticipant dp(0);
dds::topic::Topic<MyType> topic(dp, "MyTopic");
dds::pub::Publisher pub(dp);
dds::pub::DataWriter<MyType> dw(pub, topic);
MyType t;
dw.write(t); //how can I make this block for 5 seconds (tops), and then throw an error on failure?
이 API DataWriter::wait_for_acknowledgements(int timeout)
에서 함수를 존재하지만이되지 쓰기의 특정 통화의 DataWriter
개체에 바인딩 될 것으로 보인다. 위의 호출을 통해 바인딩 할 수 있습니까?
고맙습니다. 나는 곧이 해결책을 시도하고보고 할 것이다. 이 기간이 지나면 오류가 발생하여 잡아서 처리 할 수 있다고 가정합니다. –
DDS_RETCODE_TIMEOUT, RETCODE_TIMEOUT, dds :: core :: TimeoutError, TimeoutException, ... 등의 구현 및 언어에 따라 다름 일반적으로 이는 통신 문제가 아닌 리소스 제약 사항입니다 (기록이 충분히 깊지 않음). ,이 참가자 등을 위해 메모리가 모두 소모됨). –