[openrtm-commit:02110] r738 - trunk/OpenRTM-aist-Python/OpenRTM_aist
openrtm @ openrtm.org
openrtm @ openrtm.org
2016年 11月 16日 (水) 18:23:09 JST
Author: miyamoto
Date: 2016-11-16 18:23:09 +0900 (Wed, 16 Nov 2016)
New Revision: 738
Modified:
trunk/OpenRTM-aist-Python/OpenRTM_aist/CORBA_RTCUtil.py
Log:
[compat,bugfix,->RELENG_1_2] fixed bug.
Modified: trunk/OpenRTM-aist-Python/OpenRTM_aist/CORBA_RTCUtil.py
===================================================================
--- trunk/OpenRTM-aist-Python/OpenRTM_aist/CORBA_RTCUtil.py 2016-11-14 04:26:21 UTC (rev 737)
+++ trunk/OpenRTM-aist-Python/OpenRTM_aist/CORBA_RTCUtil.py 2016-11-16 09:23:09 UTC (rev 738)
@@ -64,7 +64,6 @@
return True
except CORBA.SystemException, ex:
return False
- return False
##
@@ -129,7 +128,7 @@
if CORBA.is_nil(eclist[pec_id]):
return RTC.ExecutionContext._nil
return eclist[pec_id]
- return RTC.ExecutionContext._nil
+
@@ -153,6 +152,8 @@
def get_ec_id(rtc, ec):
if CORBA.is_nil(rtc):
return -1
+ if CORBA.is_nil(ec):
+ return -1
eclist_own = rtc.get_owned_contexts()
@@ -463,7 +464,7 @@
#
# @param localcomp 対象のRTコンポーネント
# @param othercomp 実行コンテキストに関連付けるRTコンポーネント
-# @return ecの取得に失敗した場合はRTC_ERRORを返す
+# @return ecの取得に失敗した場合はBAD_PARAMETERを返す
# そうでない場合はaddComponent関数の戻り値を返す。RTC_OKで接続成功。
#
# @else
@@ -473,9 +474,11 @@
#
# @endif
def add_rtc_to_default_ec(localcomp, othercomp):
+ if CORBA.is_nil(othercomp):
+ return RTC.BAD_PARAMETER
ec = get_actual_ec(localcomp)
if CORBA.is_nil(ec):
- return RTC.RTC_ERROR
+ return RTC.BAD_PARAMETER
return ec.add_component(othercomp)
@@ -487,7 +490,7 @@
#
# @param localcomp 対象のRTコンポーネント
# @param othercomp 実行コンテキストとの関連付けを解除するRTコンポーネント
-# @return ecの取得に失敗した場合はRTC_ERRORを返す
+# @return ecの取得に失敗した場合はBAD_PARAMETERを返す
# そうでない場合はremoveComponent関数の戻り値を返す。RTC_OKで接続成功。
#
# @else
@@ -497,9 +500,11 @@
#
# @endif
def remove_rtc_to_default_ec(localcomp, othercomp):
+ if CORBA.is_nil(othercomp):
+ return RTC.BAD_PARAMETER
ec = get_actual_ec(localcomp)
if CORBA.is_nil(ec):
- return RTC.RTC_ERROR
+ return RTC.BAD_PARAMETER
return ec.remove_component(othercomp)
@@ -904,11 +909,11 @@
# RTC::ReturnCode_t connect(const std::string name,const coil::Properties prop,const RTC::PortService_ptr port0,const RTC::PortService_ptr port1)
def connect(name, prop, port0, port1):
if CORBA.is_nil(port0):
- RTC.BAD_PARAMETER
+ return RTC.BAD_PARAMETER
if CORBA.is_nil(port1):
- RTC.BAD_PARAMETER
+ return RTC.BAD_PARAMETER
if port0._is_equivalent(port1):
- RTC.BAD_PARAMETER
+ return RTC.BAD_PARAMETER
cprof = create_connector(name, prop, port0, port1)
return port0.connect(cprof)[0]
@@ -925,7 +930,7 @@
# @param port0 対象のポート
# @param port1 対象のポートのリスト
# @return 全ての接続が成功した場合はRTC_OKを返す。
-# connect関数がRTC_OK以外を返した場合はRTC_ERRORを返す。
+# connect関数がRTC_OK以外を返した場合はBAD_PARAMETERを返す。
#
#
# @else
@@ -941,14 +946,17 @@
# RTC::ReturnCode_t connect_multi(const std::string name,const coil::Properties prop,const RTC::PortService_ptr port,RTC::PortServiceList_var& target_ports)
def connect_multi(name, prop, port, target_ports):
ret = RTC.RTC_OK
-
+ if CORBA.is_nil(port):
+ return RTC.BAD_PARAMETER
for p in target_ports:
+ if CORBA.is_nil(p):
+ continue
if p._is_equivalent(port):
continue
if already_connected(port, p):
continue
if RTC.RTC_OK != connect(name, prop, port, p):
- ret = RTC.RTC_ERROR
+ ret = RTC.BAD_PARAMETER
return ret
@@ -1256,8 +1264,9 @@
p = port_name.split(".")
if len(p) < 2:
return RTC.PortService._nil
- rtcs = nm.string_to_component(p[0])
+ rtcs = nm.string_to_component(port_name.rstrip("."+p[-1]))
+
if len(rtcs) < 1:
return RTC.PortService._nil
pn = port_name.split("/")
More information about the openrtm-commit
mailing list