Skip to content

Commit daa9730

Browse files
authored
Merge pull request #261 from Nobu19800/feature/openspliceprop
OpenSpliceTransportのパラメータの情報を設定する
2 parents dc93552 + 5826b30 commit daa9730

6 files changed

Lines changed: 1296 additions & 97 deletions

File tree

OpenRTM_aist/ext/transport/OpenSplice/OpenSpliceInPort.py

Lines changed: 179 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -148,20 +148,22 @@ def init(self, prop):
148148

149149
self._properties = prop
150150

151-
qosxml = prop.getProperty("opensplice.QOSXML")
152-
qosprofile = prop.getProperty("opensplice.QOSPrfile")
153-
self._topicmgr = OpenSpliceTopicManager.instance(qosxml, qosprofile)
151+
self._topicmgr = OpenSpliceTopicManager.instance()
154152

155-
self._dataType = prop.getProperty("data_type", self._dataType)
153+
self._dataType = prop.getProperty("dataport.data_type", self._dataType)
156154

157155
self._topic = prop.getProperty("opensplice.topic", "chatter")
158156

159-
topic = self._topicmgr.createTopic(self._dataType, self._topic)
157+
topic = self._topicmgr.createTopic(self._dataType, self._topic, prop)
160158

161159
self._rtcout.RTC_VERBOSE("data type: %s", self._dataType)
162160
self._rtcout.RTC_VERBOSE("topic name: %s", self._topic)
163161

164-
self._reader = self._topicmgr.createReader(topic, SubListener(self))
162+
self._reader = self._topicmgr.createReader(
163+
topic, SubListener(self), prop.getNode("opensplice"))
164+
165+
if self._reader is None:
166+
raise MemoryError("Reader creation failed")
165167

166168
# virtual void setBuffer(BufferBase<cdrMemoryStream>* buffer);
167169

@@ -376,6 +378,172 @@ def on_data_available(self, entity):
376378
self._sub.put(sd)
377379

378380

381+
opensplice_sub_option = [
382+
"topic.__value__", "chatter",
383+
"topic.__widget__", "text",
384+
"topic.__constraint__", "none",
385+
"reader_qos.durability.kind.__value__", "TRANSIENT_DURABILITY_QOS",
386+
"reader_qos.durability.kind.__widget__", "radio",
387+
"reader_qos.durability.kind.__constraint__", "(VOLATILE_DURABILITY_QOS, TRANSIENT_LOCAL_DURABILITY_QOS, TRANSIENT_DURABILITY_QOS, PERSISTENT_DURABILITY_QOS)",
388+
"reader_qos.deadline.period.sec.__value__", "2147483647",
389+
"reader_qos.deadline.period.sec.__widget__", "spin",
390+
"reader_qos.deadline.period.sec.__constraint__", "0 <= x <= 2147483647",
391+
"reader_qos.deadline.period.nanosec.__value__", "2147483647",
392+
"reader_qos.deadline.period.nanosec.__widget__", "text",
393+
"reader_qos.deadline.period.nanosec.__constraint__", "0 <= x <= 2147483647",
394+
"reader_qos.latency_budget.duration.sec.__value__", "0",
395+
"reader_qos.latency_budget.duration.sec.__widget__", "spin",
396+
"reader_qos.latency_budget.duration.sec.__constraint__", "0 <= x <= 2147483647",
397+
"reader_qos.latency_budget.duration.nanosec.__value__", "0",
398+
"reader_qos.latency_budget.duration.nanosec.__widget__", "spin",
399+
"reader_qos.latency_budget.duration.nanosec.__constraint__", "0 <= x <= 2147483647",
400+
"reader_qos.liveliness.kind.__value__", "AUTOMATIC_LIVELINESS_QOS",
401+
"reader_qos.liveliness.kind.__widget__", "radio",
402+
"reader_qos.liveliness.kind.__constraint__", "(AUTOMATIC_LIVELINESS_QOS, MANUAL_BY_PARTICIPANT_LIVELINESS_QOS, MANUAL_BY_TOPIC_LIVELINESS_QOS)",
403+
"reader_qos.liveliness.lease_duration.sec.__value__", "2147483647",
404+
"reader_qos.liveliness.lease_duration.sec.__widget__", "spin",
405+
"reader_qos.liveliness.lease_duration.sec.__constraint__", "0 <= x <= 2147483647",
406+
"reader_qos.liveliness.lease_duration.nanosec.__value__", "2147483647",
407+
"reader_qos.liveliness.lease_duration.nanosec.__widget__", "spin",
408+
"reader_qos.liveliness.lease_duration.nanosec.__constraint__", "0 <= x <= 2147483647",
409+
"reader_qos.reliability.kind.__value__", "BEST_EFFORT_RELIABILITY_QOS",
410+
"reader_qos.reliability.kind.__widget__", "radio",
411+
"reader_qos.reliability.kind.__constraint__", "(BEST_EFFORT_RELIABILITY_QOS, RELIABLE_RELIABILITY_QOS)",
412+
"reader_qos.reliability.max_blocking_time.sec.__value__", "2147483647",
413+
"reader_qos.reliability.max_blocking_time.sec.__widget__", "spin",
414+
"reader_qos.reliability.max_blocking_time.sec.__constraint__", "0 <= x <= 2147483647",
415+
"reader_qos.reliability.max_blocking_time.nanosec.__value__", "2147483647",
416+
"reader_qos.reliability.max_blocking_time.nanosec.__widget__", "spin",
417+
"reader_qos.reliability.max_blocking_time.nanosec.__constraint__", "0 <= x <= 2147483647",
418+
"reader_qos.destination_order.kind.__value__", "BY_RECEPTION_TIMESTAMP_DESTINATIONORDER_QOS",
419+
"reader_qos.destination_order.kind.__widget__", "radio",
420+
"reader_qos.destination_order.kind.__constraint__", "(BY_RECEPTION_TIMESTAMP_DESTINATIONORDER_QOS, BY_SOURCE_TIMESTAMP_DESTINATIONORDER_QOS)",
421+
"reader_qos.history.kind.__value__", "KEEP_LAST_HISTORY_QOS",
422+
"reader_qos.history.kind.__widget__", "radio",
423+
"reader_qos.history.kind.__constraint__", "(KEEP_LAST_HISTORY_QOS, KEEP_ALL_HISTORY_QOS)",
424+
"reader_qos.history.depth.__value__", "1",
425+
"reader_qos.history.depth.__widget__", "spin",
426+
"reader_qos.history.depth.__constraint__", "0 <= x <= 2147483647",
427+
"reader_qos.resource_limits.max_samples.__value__", "-1",
428+
"reader_qos.resource_limits.max_samples.__widget__", "spin",
429+
"reader_qos.resource_limits.max_samples.__constraint__", "-1 <= x <= 2147483647",
430+
"reader_qos.resource_limits.max_instances.__value__", "-1",
431+
"reader_qos.resource_limits.max_instances.__widget__", "spin",
432+
"reader_qos.resource_limits.max_instances.__constraint__", "-1 <= x <= 2147483647",
433+
"reader_qos.resource_limits.max_samples_per_instance.__value__", "-1",
434+
"reader_qos.resource_limits.max_samples_per_instance.__widget__", "spin",
435+
"reader_qos.resource_limits.max_samples_per_instance.__constraint__", "-1 <= x <= 2147483647",
436+
"reader_qos.ownership.kind.__value__", "SHARED_OWNERSHIP_QOS",
437+
"reader_qos.ownership.kind.__widget__", "radio",
438+
"reader_qos.ownership.kind.__constraint__", "(SHARED_OWNERSHIP_QOS, EXCLUSIVE_OWNERSHIP_QOS)",
439+
"reader_qos.time_based_filter.minimum_separation.sec.__value__", "0",
440+
"reader_qos.time_based_filter.minimum_separation.sec.__widget__", "spin",
441+
"reader_qos.time_based_filter.minimum_separation.sec.__constraint__", "0 <= x <= 2147483647",
442+
"reader_qos.time_based_filter.minimum_separation.nanosec.__value__", "0",
443+
"reader_qos.time_based_filter.minimum_separation.nanosec.__widget__", "spin",
444+
"reader_qos.time_based_filter.minimum_separation.nanosec.__constraint__", "0 <= x <= 2147483647",
445+
"reader_qos.reader_data_lifecycle.autopurge_disposed_samples_delay.sec.__value__", "2147483647",
446+
"reader_qos.reader_data_lifecycle.autopurge_disposed_samples_delay.sec.__widget__", "spin",
447+
"reader_qos.reader_data_lifecycle.autopurge_disposed_samples_delay.sec.__constraint__", "0 <= x <= 2147483647",
448+
"reader_qos.reader_data_lifecycle.autopurge_disposed_samples_delay.nanosec.__value__", "2147483647",
449+
"reader_qos.reader_data_lifecycle.autopurge_disposed_samples_delay.nanosec.__widget__", "spin",
450+
"reader_qos.reader_data_lifecycle.autopurge_disposed_samples_delay.nanosec.__constraint__", "0 <= x <= 2147483647",
451+
"reader_qos.reader_data_lifecycle.autopurge_nowriter_samples_delay.sec.__value__", "2147483647",
452+
"reader_qos.reader_data_lifecycle.autopurge_nowriter_samples_delay.sec.__widget__", "spin",
453+
"reader_qos.reader_data_lifecycle.autopurge_nowriter_samples_delay.sec.__constraint__", "0 <= x <= 2147483647",
454+
"reader_qos.reader_data_lifecycle.autopurge_nowriter_samples_delay.nanosec.__value__", "2147483647",
455+
"reader_qos.reader_data_lifecycle.autopurge_nowriter_samples_delay.nanosec.__widget__", "spin",
456+
"reader_qos.reader_data_lifecycle.autopurge_nowriter_samples_delay.nanosec.__constraint__", "0 <= x <= 2147483647",
457+
"topic_qos.durability.kind.__value__", "TRANSIENT_DURABILITY_QOS",
458+
"topic_qos.durability.kind.__widget__", "radio",
459+
"topic_qos.durability.kind.__constraint__", "(VOLATILE_DURABILITY_QOS, TRANSIENT_LOCAL_DURABILITY_QOS, TRANSIENT_DURABILITY_QOS, PERSISTENT_DURABILITY_QOS)",
460+
"topic_qos.deadline.period.sec.__value__", "2147483647",
461+
"topic_qos.deadline.period.sec.__widget__", "spin",
462+
"topic_qos.deadline.period.sec.__constraint__", "0 <= x <= 2147483647",
463+
"topic_qos.deadline.period.nanosec.__value__", "2147483647",
464+
"topic_qos.deadline.period.nanosec.__widget__", "spin",
465+
"topic_qos.deadline.period.nanosec.__constraint__", "0 <= x <= 2147483647",
466+
"topic_qos.latency_budget.duration.sec.__value__", "0",
467+
"topic_qos.latency_budget.duration.sec.__widget__", "spin",
468+
"topic_qos.latency_budget.duration.sec.__constraint__", "0 <= x <= 2147483647",
469+
"topic_qos.latency_budget.duration.nanosec.__value__", "0",
470+
"topic_qos.latency_budget.duration.nanosec.__widget__", "spin",
471+
"topic_qos.latency_budget.duration.nanosec.__constraint__", "0 <= x <= 2147483647",
472+
"topic_qos.liveliness.kind.__value__", "AUTOMATIC_LIVELINESS_QOS",
473+
"topic_qos.liveliness.kind.__widget__", "radio",
474+
"topic_qos.liveliness.kind.__constraint__", "(AUTOMATIC_LIVELINESS_QOS, MANUAL_BY_PARTICIPANT_LIVELINESS_QOS, MANUAL_BY_TOPIC_LIVELINESS_QOS)",
475+
"topic_qos.liveliness.lease_duration.sec.__value__", "2147483647",
476+
"topic_qos.liveliness.lease_duration.sec.__widget__", "spin",
477+
"topic_qos.liveliness.lease_duration.sec.__constraint__", "0 <= x <= 2147483647",
478+
"topic_qos.liveliness.lease_duration.nanosec.__value__", "2147483647",
479+
"topic_qos.liveliness.lease_duration.nanosec.__widget__", "spin",
480+
"topic_qos.liveliness.lease_duration.nanosec.__constraint__", "0 <= x <= 2147483647",
481+
"topic_qos.reliability.kind.__value__", "RELIABLE_RELIABILITY_QOS",
482+
"topic_qos.reliability.kind.__widget__", "radio",
483+
"topic_qos.reliability.kind.__constraint__", "(BEST_EFFORT_RELIABILITY_QOS, RELIABLE_RELIABILITY_QOS)",
484+
"topic_qos.reliability.max_blocking_time.sec.__value__", "2147483647",
485+
"topic_qos.reliability.max_blocking_time.sec.__widget__", "spin",
486+
"topic_qos.reliability.max_blocking_time.sec.__constraint__", "0 <= x <= 2147483647",
487+
"topic_qos.reliability.max_blocking_time.nanosec.__value__", "2147483647",
488+
"topic_qos.reliability.max_blocking_time.nanosec.__widget__", "spin",
489+
"topic_qos.reliability.max_blocking_time.nanosec.__constraint__", "0 <= x <= 2147483647",
490+
"topic_qos.destination_order.kind.__value__", "BY_RECEPTION_TIMESTAMP_DESTINATIONORDER_QOS",
491+
"topic_qos.destination_order.kind.__widget__", "radio",
492+
"topic_qos.destination_order.kind.__constraint__", "(BY_RECEPTION_TIMESTAMP_DESTINATIONORDER_QOS, BY_SOURCE_TIMESTAMP_DESTINATIONORDER_QOS)",
493+
"topic_qos.history.kind.__value__", "KEEP_ALL_HISTORY_QOS",
494+
"topic_qos.history.kind.__widget__", "radio",
495+
"topic_qos.history.kind.__constraint__", "(KEEP_LAST_HISTORY_QOS, KEEP_ALL_HISTORY_QOS)",
496+
"topic_qos.history.depth.__value__", "1",
497+
"topic_qos.history.depth.__widget__", "spin",
498+
"topic_qos.history.depth.__constraint__", "0 <= x <= 2147483647",
499+
"topic_qos.resource_limits.max_samples.__value__", "-1",
500+
"topic_qos.resource_limits.max_samples.__widget__", "spin",
501+
"topic_qos.resource_limits.max_samples.__constraint__", "-1 <= x <= 2147483647",
502+
"topic_qos.resource_limits.max_instances.__value__", "-1",
503+
"topic_qos.resource_limits.max_instances.__widget__", "spin",
504+
"topic_qos.resource_limits.max_instances.__constraint__", "-1 <= x <= 2147483647",
505+
"topic_qos.resource_limits.max_samples_per_instance.__value__", "-1",
506+
"topic_qos.resource_limits.max_samples_per_instance.__widget__", "spin",
507+
"topic_qos.resource_limits.max_samples_per_instance.__constraint__", "-1 <= x <= 2147483647",
508+
"topic_qos.transport_priority.value.__value__", "0",
509+
"topic_qos.transport_priority.value.__widget__", "spin",
510+
"topic_qos.transport_priority.value.__constraint__", "0 <= x <= 2147483647",
511+
"topic_qos.lifespan.duration.sec.__value__", "2147483647",
512+
"topic_qos.lifespan.duration.sec.__widget__", "spin",
513+
"topic_qos.lifespan.duration.sec.__constraint__", "0 <= x <= 2147483647",
514+
"topic_qos.lifespan.duration.nanosec.__value__", "2147483647",
515+
"topic_qos.lifespan.duration.nanosec.__widget__", "spin",
516+
"topic_qos.lifespan.duration.nanosec.__constraint__", "0 <= x <= 2147483647",
517+
"topic_qos.ownership.kind.__value__", "SHARED_OWNERSHIP_QOS",
518+
"topic_qos.ownership.kind.__widget__", "radio",
519+
"topic_qos.ownership.kind.__constraint__", "(SHARED_OWNERSHIP_QOS, EXCLUSIVE_OWNERSHIP_QOS)",
520+
"topic_qos.transport_priority.value.__value__", "0",
521+
"topic_qos.transport_priority.value.__widget__", "spin",
522+
"topic_qos.transport_priority.value.__constraint__", "0 <= x <= 2147483647",
523+
"topic_qos.durability_service.history_depth.__value__", "1",
524+
"topic_qos.durability_service.history_depth.__widget__", "spin",
525+
"topic_qos.durability_service.history_depth.__constraint__", "0 <= x <= 2147483647",
526+
"topic_qos.durability_service.history_kind.__value__", "KEEP_LAST_HISTORY_QOS",
527+
"topic_qos.durability_service.history_kind.__widget__", "radio",
528+
"topic_qos.durability_service.history_kind.__constraint__", "(KEEP_LAST_HISTORY_QOS, KEEP_ALL_HISTORY_QOS)",
529+
"topic_qos.durability_service.max_instances.__value__", "-1",
530+
"topic_qos.durability_service.max_instances.__widget__", "spin",
531+
"topic_qos.durability_service.max_instances.__constraint__", "-1 <= x <= 2147483647",
532+
"topic_qos.durability_service.max_samples.__value__", "-1",
533+
"topic_qos.durability_service.max_samples.__widget__", "spin",
534+
"topic_qos.durability_service.max_samples.__constraint__", "-1 <= x <= 2147483647",
535+
"topic_qos.durability_service.max_samples_per_instance.__value__", "-1",
536+
"topic_qos.durability_service.max_samples_per_instance.__widget__", "spin",
537+
"topic_qos.durability_service.max_samples_per_instance.__constraint__", "-1 <= x <= 2147483647",
538+
"topic_qos.durability_service.service_cleanup_delay.sec.__value__", "0",
539+
"topic_qos.durability_service.service_cleanup_delay.sec.__widget__", "spin",
540+
"topic_qos.durability_service.service_cleanup_delay.sec.__constraint__", "0 <= x <= 2147483647",
541+
"topic_qos.durability_service.service_cleanup_delay.nanosec.__value__", "0",
542+
"topic_qos.durability_service.service_cleanup_delay.nanosec.__widget__", "spin",
543+
"topic_qos.durability_service.service_cleanup_delay.nanosec.__constraint__", "0 <= x <= 2147483647",
544+
""
545+
]
546+
379547
##
380548
# @if jp
381549
# @brief モジュール登録関数
@@ -387,7 +555,11 @@ def on_data_available(self, entity):
387555
#
388556
# @endif
389557
#
558+
559+
390560
def OpenSpliceInPortInit():
561+
prop = OpenRTM_aist.Properties(defaults_str=opensplice_sub_option)
391562
factory = OpenRTM_aist.InPortProviderFactory.instance()
392563
factory.addFactory("opensplice",
393-
OpenSpliceInPort)
564+
OpenSpliceInPort,
565+
prop)

0 commit comments

Comments
 (0)