def __init__(self, qos_path): self.participant = None self._component_set = set() self.qos_path = pathlib.Path(qos_path).resolve() if not self.qos_path.is_file(): raise ValueError(f"qos_path={qos_path} is not a file") self.qos_provider = dds.QosProvider(self.qos_path.as_uri(), 'DDS DefaultQosProfile') participant_qos = self.qos_provider.get_participant_qos() self.participant = dds.DomainParticipant(qos=participant_qos) self.topic_qos = self.qos_provider.get_topic_qos() read_queue_policy = dds.HistoryQosPolicy(depth=DDS_READ_QUEUE_LEN, kind=dds.DDSHistoryKind.KEEP_LAST) self.reader_qos = self.qos_provider.get_reader_qos() # QoS for readers that want late-joiner data self.reader_qos.set_policies([read_queue_policy]) self.volatilereader_qos = self.qos_provider.get_reader_qos() volatile_policy = dds.DurabilityQosPolicy(dds.DDSDurabilityKind.VOLATILE) # QoS for readers that do not want late-joiner data self.volatilereader_qos.set_policies([read_queue_policy, volatile_policy]) self.writer_qos = self.qos_provider.get_writer_qos()
def __init__(self, qos_path: type_hints.PathType, profile_name: str) -> None: self.profile_name = profile_name self.qos_provider = dds.QosProvider( pathlib.Path(qos_path).as_uri(), profile_name) self.topic_qos = self.qos_provider.get_topic_qos() self.reader_qos = self.qos_provider.get_reader_qos() self.writer_qos = self.qos_provider.get_writer_qos()
def __init__(self, sQualityOfServiceFile, sQualityOfServiceName, sDataStructureFile): self.__oQP = dds.QosProvider(sQualityOfServiceFile, sQualityOfServiceName) self.__oDP = dds.DomainParticipant( qos=self.__oQP.get_participant_qos()) self.__sDataStructureFile = sDataStructureFile self.__oTopics = None self.__oPub = None self.DataReceived = Event()
def start(self, qosxml, qosprofile): if qosxml and qosprofile: self._qosProfile = dds.QosProvider(qosxml, qosprofile) self._domainParticipant = dds.DomainParticipant( qos=self._qosProfile.get_participant_qos()) self._publisher = self._domainParticipant.create_publisher( qos=self._qosProfile.get_publisher_qos()) self._subscriber = self._domainParticipant.create_subscriber( qos=self._qosProfile.get_subscriber_qos()) else: self._domainParticipant = dds.DomainParticipant() self._publisher = self._domainParticipant.create_publisher() self._subscriber = self._domainParticipant.create_subscriber()