操作
バグ #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
操作