プロジェクト

全般

プロフィール

バグ #3651

完了

実行周期を0に設定してもBAD_PARAMETERを返さない問題

n-miyamoto さんが約8年前に追加. 7年以上前に更新.

ステータス:
終了
優先度:
通常
担当者:
対象バージョン:
-
開始日:
2016/10/06
期日:
進捗率:

100%

予定工数:

説明

C++版の以下のチケット同じ問題

#3650

実行周期に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

他の形式にエクスポート: Atom PDF