操作
バグ #3651
完了実行周期を0に設定してもBAD_PARAMETERを返さない問題
開始日:
2016/10/06
期日:
進捗率:
100%
予定工数:
説明
C++版の以下のチケット同じ問題
実行周期に0を指定した時にBAD_PARAMETERを返すようにする。
問題箇所はExecutionContextProfileクラスのsetRate関数、setPeriod関数
def setRate(self, rate):
self._rtcout.RTC_TRACE("setRate(%f)", rate)
if rate <= 0.0:
return RTC.BAD_PARAMETER
guard = OpenRTM_aist.ScopedLock(self._profileMutex)
self._profile.rate = rate
self._period = OpenRTM_aist.TimeValue(1.0 / rate)
return RTC.RTC_OK
def setPeriod(self, sec=None, tv=None):
if sec:
self._rtcout.RTC_TRACE("setPeriod(%f [sec])", sec)
if sec < 0.0:
return RTC.BAD_PARAMETER
guard = OpenRTM_aist.ScopedLock(self._profileMutex)
self._profile.rate = 1.0 / sec
self._period = OpenRTM_aist.TimeValue(sec)
del guard
return RTC.RTC_OK;
elif tv:
self._rtcout.RTC_TRACE("setPeriod(%f [sec])", tv.toDouble())
if tv.toDouble() < 0.0:
return RTC.BAD_PARAMETER
guard = OpenRTM_aist.ScopedLock(self._profileMutex)
self._profile.rate = 1.0 / tv.toDouble()
self._period = tv
del guard
return RTC.RTC_OK
return RTC.BAD_PARAMETER
操作