[openrtm-commit:01754] r655 - trunk/OpenRTM-aist-Python/OpenRTM_aist
openrtm @ openrtm.org
openrtm @ openrtm.org
2016年 2月 25日 (木) 04:31:57 JST
Author: miyamoto
Date: 2016-02-25 04:31:57 +0900 (Thu, 25 Feb 2016)
New Revision: 655
Modified:
trunk/OpenRTM-aist-Python/OpenRTM_aist/CORBA_RTCUtil.py
Log:
[incompat,new_func,->RELENG_1_2] add disconnect_by_portref_connector_name() and disconnect_by_portref_connector_id(), disconnect_all_by_ref(). refs #3400
Modified: trunk/OpenRTM-aist-Python/OpenRTM_aist/CORBA_RTCUtil.py
===================================================================
--- trunk/OpenRTM-aist-Python/OpenRTM_aist/CORBA_RTCUtil.py 2016-02-23 08:01:22 UTC (rev 654)
+++ trunk/OpenRTM-aist-Python/OpenRTM_aist/CORBA_RTCUtil.py 2016-02-24 19:31:57 UTC (rev 655)
@@ -44,11 +44,11 @@
##
# @if jp
#
-# @brief コンポーネントが終了しているかを判定
+# @brief コンポーネントのオブジェクトリファレンスが存在しているかを判定
#
#
# @param rtc RTコンポーネント
-# @return True:終了済み False:生存
+# @return True:生存、False:終了済み
#
# @else
#
@@ -59,11 +59,12 @@
# @endif
def is_existing(rtc):
try:
- rtc._non_existent()
+ if rtc._non_existent():
+ return False
+ return True
+ except CORBA.SystemException, ex:
return False
- except CORBA.SystemException, ex:
- return True
- return True
+ return False
##
@@ -1010,7 +1011,7 @@
# @endif
def disconnect(connector_prof):
ports = connector_prof.ports
- return disconnect_by_connector_id(ports[0], connector_prof.connector_id)
+ return disconnect_by_portref_connector_id(ports[0], connector_prof.connector_id)
@@ -1020,7 +1021,7 @@
# @brief 対象のポートで指定した名前のコネクタを切断
#
#
-# @param port 対象のポート
+# @param port_ref 対象のポート
# @param name コネクタ名
# @return portがnilの場合はBAD_PARAMETERを返す
# nilではない場合はdisconnect関数の戻り値を返す。RTC_OKの場合は切断が成功
@@ -1028,13 +1029,15 @@
# @else
#
# @brief
-# @param
+# @param port_ref
+# @param name
+# @return
#
# @endif
-def disconnect_by_connector_name(port, name):
- if CORBA.is_nil(port):
+def disconnect_by_portref_connector_name(port_ref, name):
+ if CORBA.is_nil(port_ref):
return RTC.BAD_PARAMETER
- conprof = port.get_connector_profiles()
+ conprof = port_ref.get_connector_profiles()
for c in conprof:
if c.name == name:
return disconnect(c)
@@ -1042,7 +1045,28 @@
+##
+# @if jp
+#
+# @brief 対象の名前のポートで指定した名前のコネクタを切断
+#
+#
+# @param port_name 対象のポート名
+# @param name コネクタ名
+# @return portが存在しない場合はBAD_PARAMETERを返す
+# nilではない場合はdisconnect関数の戻り値を返す。RTC_OKの場合は切断が成功
+#
+# @else
+#
+# @brief
+# @param
+#
+# @endif
+def disconnect_by_portname_connector_name(port_name, name):
+
+ return RTC.BAD_PARAMETER
+
##
# @if jp
#
@@ -1060,15 +1084,63 @@
# @param
#
# @endif
-def disconnect_by_connector_id(port, id):
- if CORBA.is_nil(port):
+def disconnect_by_portref_connector_id(port_ref, id):
+ if CORBA.is_nil(port_ref):
return RTC.BAD_PARAMETER
- return port.disconnect(id)
+ return port_ref.disconnect(id)
##
# @if jp
#
+# @brief 対象の名前のポートで指定したIDのコネクタを切断
+#
+#
+# @param port_name 対象のポート名
+# @param name コネクタID
+# @return portがnilの場合はBAD_PARAMETERを返す
+# nilではない場合はdisconnect関数の戻り値を返す。RTC_OKの場合は切断が成功
+#
+# @else
+#
+# @brief
+# @param port_name
+# @param name
+# @return
+#
+# @endif
+def disconnect_by_portname_connector_id(port_name, id):
+
+ return RTC.BAD_PARAMETER
+
+
+##
+# @if jp
+#
+# @brief 対象のポートのコネクタを全て切断
+#
+#
+# @param port_ref ポートのオブジェクトリファレンス
+# @return portがnilの場合はBAD_PARAMETERを返す
+# 切断できた場合はRTC_OKを返す
+#
+# @else
+#
+# @brief
+# @param port
+# @return
+#
+# @endif
+def disconnect_all_by_ref(port_ref):
+ if CORBA.is_nil(port_ref):
+ return RTC.BAD_PARAMETER
+ return port_ref.disconnect_all()
+
+
+
+##
+# @if jp
+#
# @brief 対象ポートと接続しているポートで指定したポート名と一致した場合に切断
#
#
@@ -1103,25 +1175,29 @@
##
# @if jp
#
-# @brief 指定したRTコンポーネントのコンフィギュレーション取得
+# @brief 対象のRTコンポーネントの指定した名前のコンフィギュレーションセットをkey-valueで取得
#
#
# @param rtc 対象のRTコンポーネント
-# @return rtcがnilの場合はNoneを返す。
-# nilではない場合はコンフィギュレーションを返す。
+# @param conf_name コンフィギュレーションセット名
+# @return コンフィギュレーションセット
#
# @else
#
# @brief
-# @param
+# @param rtc
+# @param conf_name
# @return
#
# @endif
-def get_configuration(rtc):
- if CORBA.is_nil(rtc):
- return SDOPackage.Configuration._nil
+def get_configuration(rtc, conf_name):
+ conf = rtc.get_configuration()
- return rtc.get_configuration()
+ confset = conf.get_configuration_set(conf_name)
+ confData = confset.configuration_data
+ prop = OpenRTM_aist.Properties()
+ OpenRTM_aist.NVUtil.copyToProperties(prop, confData)
+ return prop
##
@@ -1138,7 +1214,7 @@
# @else
#
# @brief
-# @param rtc
+# @param conf
# @param confset_name
# @param value_name
# @param ret
@@ -1172,10 +1248,11 @@
# @else
#
# @brief
-# @param
+# @param rtc
+# @return
#
# @endif
-def get_current_configuration_name(rtc):
+def get_active_configuration_name(rtc):
conf = rtc.get_configuration()
confset = conf.get_active_configuration_set()
return confset.id
@@ -1183,7 +1260,7 @@
##
# @if jp
#
-# @brief アクティブなコンフィギュレーションセットを取得
+# @brief アクティブなコンフィギュレーションセットをkey-valueで取得する
#
#
# @param rtc 対象のRTコンポーネント
@@ -1214,7 +1291,8 @@
#
# @brief コンフィギュレーションパラメータを設定
#
-#
+#
+# @param rtc 対象のRTコンポーネント
# @param confset_name コンフィギュレーションセット名
# @param value_name パラメータ名
# @param value パラメータ
@@ -1222,7 +1300,8 @@
#
# @else
#
-# @brief
+# @brief
+# @param rtc
# @param confset_name
# @param value_name
# @param value
@@ -1233,6 +1312,66 @@
conf = rtc.get_configuration()
confset = conf.get_configuration_set(confset_name)
+
+ set_configuration_parameter(conf, confset, value_name, value)
+
+ conf.activate_configuration_set(confset_name)
+ return True
+
+
+##
+# @if jp
+#
+# @brief アクティブなコンフィギュレーションセットのパラメータを設定
+#
+#
+# @param rtc 対象のRTコンポーネント
+# @param value_name パラメータ名
+# @param value パラメータ
+# @return True:設定に成功、False:設定に失敗
+#
+# @else
+#
+# @brief
+# @param rtc
+# @param confset_name
+# @param value_name
+# @param value
+# @return
+#
+# @endif
+def set_active_configuration(rtc, value_name, value):
+ conf = rtc.get_configuration()
+
+ confset = conf.get_active_configuration_set()
+ set_configuration_parameter(conf, confset, value_name, value)
+
+ conf.activate_configuration_set(confset.id)
+ return True
+
+
+##
+# @if jp
+#
+# @brief アクティブなコンフィギュレーションセットのパラメータを設定
+#
+#
+# @param rtc 対象のRTコンポーネント
+# @param value_name パラメータ名
+# @param value パラメータ
+# @return True:設定に成功、False:設定に失敗
+#
+# @else
+#
+# @brief
+# @param rtc
+# @param confset_name
+# @param value_name
+# @param value
+# @return
+#
+# @endif
+def set_configuration_parameter(conf, confset, value_name, value):
confData = confset.configuration_data
prop = OpenRTM_aist.Properties()
OpenRTM_aist.NVUtil.copyToProperties(prop, confData)
@@ -1241,8 +1380,4 @@
confset.configuration_data = confData
conf.set_configuration_set_values(confset)
- conf.activate_configuration_set(confset_name)
- return True
-
-
-
\ No newline at end of file
+
\ No newline at end of file
More information about the openrtm-commit
mailing list