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