OpenRTM-aist-Python 2.0.0
公開メンバ関数 | 全メンバ一覧
OpenRTM_aist.PublisherPeriodic.PublisherPeriodic クラス

[詳解]

OpenRTM_aist.PublisherPeriodic.PublisherPeriodic の継承関係図
OpenRTM_aist.PublisherBase.PublisherBase OpenRTM_aist.DataPortStatus.DataPortStatus

公開メンバ関数

def __init__ (self)
 
def __del__ (self)
 
def exit (self)
 
def setPushPolicy (self, prop)
 
def createTask (self, prop)
 
def init (self, prop)
 
def setConsumer (self, consumer)
 
def setBuffer (self, buffer)
 
def setListener (self, info, listeners)
 
def write (self, data, sec, usec)
 
def isActive (self)
 
def activate (self)
 
def deactivate (self)
 
def svc (self)
 
def pushAll (self)
 push all policy [詳解]
 
def pushFifo (self)
 push "fifo" policy [詳解]
 
def pushSkip (self)
 push "skip" policy [詳解]
 
def pushNew (self)
 push "new" policy [詳解]
 
def convertReturn (self, status, data)
 
def invokeListener (self, status, data)
 
def onBufferWrite (self, data)
 
def onBufferFull (self, data)
 
def onBufferWriteTimeout (self, data)
 
def onBufferRead (self, data)
 
def onSend (self, data)
 
def onReceived (self, data)
 
def onReceiverFull (self, data)
 
def onReceiverTimeout (self, data)
 
def onReceiverError (self, data)
 
def onBufferEmpty (self)
 
def onSenderEmpty (self)
 
def onSenderError (self)
 
def bufferIsEmpty (self)
 
- 基底クラス OpenRTM_aist.PublisherBase.PublisherBase に属する継承公開メンバ関数
def init (self, prop)
 
def release (self)
 
- 基底クラス OpenRTM_aist.DataPortStatus.DataPortStatus に属する継承公開メンバ関数
def toString (status)
 

その他の継承メンバ

- 基底クラス OpenRTM_aist.DataPortStatus.DataPortStatus に属する継承静的公開変数類
int PORT_OK = 0
 brief DataPortStatus リターンコード [詳解]
 

詳解

PublisherPeriodic クラス

周期的にデータを送信するための Publisher クラス。このクラスは、通 常 Connector 内にあって、バッファおよびコンシューマに関連付けられ る。一定周期ごとにバッファからデータを取り出しコンシューマに対して データを送出する。

構築子と解体子

◆ __init__()

def OpenRTM_aist.PublisherPeriodic.PublisherPeriodic.__init__ (   self)

コンストラクタ

コンストラクタ 送出処理の呼び出し間隔を、Propertyオブジェクトのdataport.push_rateメンバ に設定しておく必要がある。送出間隔は、Hz単位の浮動小数文字列で指定。 たとえば、1000.0Hzの場合は、「1000.0」を設定。 上記プロパティが未設定の場合は、「1000Hz」を設定。

引数
self
consumerデータ送出を待つコンシューマ
property本Publisherの駆動制御情報を設定したPropertyオブジェクト

OpenRTM_aist.DataPortStatus.DataPortStatusを再実装しています。

◆ __del__()

def OpenRTM_aist.PublisherPeriodic.PublisherPeriodic.__del__ (   self)

デストラクタ

デストラクタ

引数
self

メソッド詳解

◆ activate()

def OpenRTM_aist.PublisherPeriodic.PublisherPeriodic.activate (   self)

アクティブ化する

Publisher をアクティブ化する。この関数を呼び出すことにより、 Publisherが持つ、データを送信するスレッドが動作を開始する。初期 化が行われていないなどにより、事前条件を満たさない場合、エラーコー ド PRECONDITION_NOT_MET を返す。

戻り値
PORT_OK 正常終了 PRECONDITION_NOT_MET 事前条件を満たさない

PublisherBase::ReturnCode PublisherPeriodic::activate()

OpenRTM_aist.PublisherBase.PublisherBaseを再実装しています。

◆ bufferIsEmpty()

def OpenRTM_aist.PublisherPeriodic.PublisherPeriodic.bufferIsEmpty (   self)

バッファが空かどうかをチェックする。x

bool bufferIsEmpty()

◆ convertReturn()

def OpenRTM_aist.PublisherPeriodic.PublisherPeriodic.convertReturn (   self,
  status,
  data 
)

BufferStatus から DataPortStatus への変換

バッファからの戻り値を DataPortStatus::Enum 型へ変換する関数。そ れぞれ、以下のように変換される。変換時にコールバックを呼ぶ場合、 コールバク関数も付記する。

  • BUFFER_OK: PORT_OK
    • None
  • BUFFER_ERROR: BUFFER_ERROR
    • None
  • BUFFER_FULL: BUFFER_FULL
  • NOT_SUPPORTED: PORT_ERROR
    • None
  • TIMEOUT: BUFFER_TIMEOUT
  • PRECONDITION_NOT_MET: PRECONDITION_NOT_MET
    • None
  • other: PORT_ERROR
    • None
引数
statusBufferStatus
datacdrMemoryStream
戻り値
DataPortStatu 型のリターンコード

PublisherBase::ReturnCodea PublisherPeriodic::convertReturn(BufferStatus::Enum status, const cdrMemoryStream& data)

◆ createTask()

def OpenRTM_aist.PublisherPeriodic.PublisherPeriodic.createTask (   self,
  prop 
)

Task の設定

bool PublisherNew::createTask(const coil::Properties& prop)

◆ deactivate()

def OpenRTM_aist.PublisherPeriodic.PublisherPeriodic.deactivate (   self)

非アクティブ化する

Publisher を非アクティブ化する。この関数を呼び出すことにより、 Publisherが持つ、データを送信するスレッドが動作を停止する。初期 化が行われていないなどにより、事前条件を満たさない場合、エラーコー ド PRECONDITION_NOT_MET を返す。

戻り値
PORT_OK 正常終了 PRECONDITION_NOT_MET 事前条件を満たさない

PublisherBase::ReturnCode PublisherPeriodic::deactivate()

OpenRTM_aist.PublisherBase.PublisherBaseを再実装しています。

◆ exit()

def OpenRTM_aist.PublisherPeriodic.PublisherPeriodic.exit (   self)

終了処理

引数
self

OpenRTM_aist.PublisherBase.PublisherBaseを再実装しています。

◆ init()

def OpenRTM_aist.PublisherPeriodic.PublisherPeriodic.init (   self,
  prop 
)

初期化

このクラスのオブジェクトを使用するのに先立ち、必ずこの関数を呼び 出す必要がある。引数には、このオブジェクトの各種設定情報を含む Properties を与える。少なくとも、送出処理の呼び出し周期を単位 Hz の数値として Propertyオブジェクトの publisher.push_rate をキー とする要素に設定する必要がある。周期 5ms すなわち、200Hzの場合、 200.0 を設定する。 dataport.publisher.push_rate が未設定の場合、 false が返される。データをプッシュする際のポリシーとして publisher.push_policy をキーとする値に、all, fifo, skip, new の いずれかを与えることができる。

以下のオプションを与えることができる。

  • publisher.thread_type: スレッドのタイプ (文字列、デフォルト: default)
  • publisher.push_rate: Publisherの送信周期 (数値)
  • publisher.push_policy: Pushポリシー (all, fifo, skip, new)
  • publisher.skip_count: 上記ポリシが skip のときのスキップ数
  • measurement.exec_time: タスク実行時間計測 (enable/disable)
  • measurement.exec_count: タスク関数実行時間計測周期 (数値, 回数)
  • measurement.period_time: タスク周期時間計測 (enable/disable)
  • measurement.period_count: タスク周期時間計測周期 (数値, 回数)
引数
property本Publisherの駆動制御情報を設定したPropertyオブジェクト
戻り値
ReturnCode PORT_OK 正常終了 INVALID_ARGS Properties が不正な値を含む

PublisherBase::ReturnCode PublisherPeriodic::init(coil::Properties& prop)

OpenRTM_aist.PublisherBase.PublisherBaseを再実装しています。

◆ invokeListener()

def OpenRTM_aist.PublisherPeriodic.PublisherPeriodic.invokeListener (   self,
  status,
  data 
)

DataPortStatusに従ってリスナへ通知する関数を呼び出す。

引数
statusDataPortStatus
datacdrMemoryStream
戻り値
リターンコード

PublisherPeriodic::ReturnCode PublisherPeriodic::invokeListener(DataPortStatus::Enum status, const cdrMemoryStream& data)

◆ isActive()

def OpenRTM_aist.PublisherPeriodic.PublisherPeriodic.isActive (   self)

アクティブ化確認

Publisher はデータポートと同期して activate/deactivate される。 activate() / deactivate() 関数によって、アクティブ状態と非アクティ ブ状態が切り替わる。この関数により、現在アクティブ状態か、非アク ティブ状態かを確認することができる。

戻り値
状態確認結果(アクティブ状態:true、非アクティブ状態:false)

bool PublisherPeriodic::isActive()

OpenRTM_aist.PublisherBase.PublisherBaseを再実装しています。

◆ onBufferEmpty()

def OpenRTM_aist.PublisherPeriodic.PublisherPeriodic.onBufferEmpty (   self)

ON_BUFFER_EMPTYのリスナへ通知する。

inline void onBufferEmpty()

◆ onBufferFull()

def OpenRTM_aist.PublisherPeriodic.PublisherPeriodic.onBufferFull (   self,
  data 
)

ON_BUFFER_FULLリスナへイベントを通知する。

引数
datacdrMemoryStream

inline void onBufferFull(const cdrMemoryStream& data)

◆ onBufferRead()

def OpenRTM_aist.PublisherPeriodic.PublisherPeriodic.onBufferRead (   self,
  data 
)

ON_BUFFER_READのリスナへ通知する。

引数
datacdrMemoryStream

inline void onBufferRead(const cdrMemoryStream& data)

◆ onBufferWrite()

def OpenRTM_aist.PublisherPeriodic.PublisherPeriodic.onBufferWrite (   self,
  data 
)

ON_BUFFER_WRITEのリスナへ通知する。

引数
datacdrMemoryStream

inline void onBufferWrite(const cdrMemoryStream& data)

◆ onBufferWriteTimeout()

def OpenRTM_aist.PublisherPeriodic.PublisherPeriodic.onBufferWriteTimeout (   self,
  data 
)

ON_BUFFER_WRITE_TIMEOUTのリスナへ通知する。

引数
datacdrMemoryStream

inline void onBufferWriteTimeout(const cdrMemoryStream& data)

◆ onReceived()

def OpenRTM_aist.PublisherPeriodic.PublisherPeriodic.onReceived (   self,
  data 
)

ON_RECEIVEDのリスナへ通知する。

引数
datacdrMemoryStream

inline void onReceived(const cdrMemoryStream& data)

◆ onReceiverError()

def OpenRTM_aist.PublisherPeriodic.PublisherPeriodic.onReceiverError (   self,
  data 
)

ON_RECEIVER_ERRORのリスナへ通知する。

引数
datacdrMemoryStream

inline void onReceiverError(const cdrMemoryStream& data)

◆ onReceiverFull()

def OpenRTM_aist.PublisherPeriodic.PublisherPeriodic.onReceiverFull (   self,
  data 
)

ON_RECEIVER_FULLのリスナへ通知する。

引数
datacdrMemoryStream

inline void onReceiverFull(const cdrMemoryStream& data)

◆ onReceiverTimeout()

def OpenRTM_aist.PublisherPeriodic.PublisherPeriodic.onReceiverTimeout (   self,
  data 
)

ON_RECEIVER_TIMEOUTのリスナへ通知する。

引数
datacdrMemoryStream

inline void onReceiverTimeout(const cdrMemoryStream& data)

◆ onSend()

def OpenRTM_aist.PublisherPeriodic.PublisherPeriodic.onSend (   self,
  data 
)

ON_SENDのリスナへ通知する。

引数
datacdrMemoryStream

inline void onSend(const cdrMemoryStream& data)

◆ onSenderEmpty()

def OpenRTM_aist.PublisherPeriodic.PublisherPeriodic.onSenderEmpty (   self)

ON_SENDER_EMPTYのリスナへ通知する。

inline void onSenderEmpty()

◆ onSenderError()

def OpenRTM_aist.PublisherPeriodic.PublisherPeriodic.onSenderError (   self)

ON_SENDER_ERRORのリスナへ通知する。

inline void onSenderError()

◆ pushAll()

def OpenRTM_aist.PublisherPeriodic.PublisherPeriodic.pushAll (   self)

push all policy

PublisherBase::ReturnCode PublisherPeriodic::pushAll()

◆ pushFifo()

def OpenRTM_aist.PublisherPeriodic.PublisherPeriodic.pushFifo (   self)

push "fifo" policy

PublisherBase::ReturnCode PublisherPeriodic::pushFifo()

◆ pushNew()

def OpenRTM_aist.PublisherPeriodic.PublisherPeriodic.pushNew (   self)

push "new" policy

PublisherBase::ReturnCode PublisherPeriodic::pushNew()

◆ pushSkip()

def OpenRTM_aist.PublisherPeriodic.PublisherPeriodic.pushSkip (   self)

push "skip" policy

PublisherBase::ReturnCode PublisherPeriodic::pushSkip()

◆ setBuffer()

def OpenRTM_aist.PublisherPeriodic.PublisherPeriodic.setBuffer (   self,
  buffer 
)

バッファのセット

この関数では、この Publisher に関連付けられるバッファをセットする。 バッファオブジェクトがヌルポインタの場合、INVALID_ARGSが返される。 それ以外の場合は、PORT_OK が返される。

引数
bufferCDR buffer へのポインタ
戻り値
ReturnCode PORT_OK 正常終了 INVALID_ARGS 引数に不正な値が含まれている

PublisherBase::ReturnCode PublisherPeriodic::setBuffer(CdrBufferBase* buffer)

OpenRTM_aist.PublisherBase.PublisherBaseを再実装しています。

◆ setConsumer()

def OpenRTM_aist.PublisherPeriodic.PublisherPeriodic.setConsumer (   self,
  consumer 
)

InPortコンシューマのセット

この関数では、この Publisher に関連付けられるコンシューマをセットする。 コンシューマオブジェクトがヌルポインタの場合、INVALID_ARGSが返される。 それ以外の場合は、PORT_OK が返される。

引数
consumerConsumer へのポインタ
戻り値
ReturnCode PORT_OK 正常終了 INVALID_ARGS 引数に不正な値が含まれている

PublisherBase::ReturnCode PublisherPeriodic::setConsumer(InPortConsumer* consumer)

OpenRTM_aist.PublisherBase.PublisherBaseを再実装しています。

◆ setListener()

def OpenRTM_aist.PublisherPeriodic.PublisherPeriodic.setListener (   self,
  info,
  listeners 
)

リスナを設定する。

Publisher に対してリスナオブジェクト ConnectorListeners を設定する。 各種リスナオブジェクトを含む ConnectorListeners をセットすることで、 バッファの読み書き、データの送信時等にこれらのリスナをコールする。 ConnectorListeners オブジェクトの所有権はポートまたは RTObject が持ち Publisher 削除時に ConnectorListeners は削除されることはない。 ConnectorListeners がヌルポインタの場合 INVALID_ARGS を返す。

引数
infoConnectorProfile をローカル化したオブジェクト ConnectorInfo
listenersリスナを多数保持する ConnectorListeners オブジェクト
戻り値
PORT_OK 正常終了 INVALID_ARGS 不正な引数

PublisherBase::ReturnCode PublisherPeriodic::setListener(ConnectorInfo& info, ConnectorListeners* listeners)

OpenRTM_aist.PublisherBase.PublisherBaseを再実装しています。

◆ setPushPolicy()

def OpenRTM_aist.PublisherPeriodic.PublisherPeriodic.setPushPolicy (   self,
  prop 
)

PushPolicy の設定

void PublisherNew::setPushPolicy(const coil::Properties& prop)

◆ svc()

def OpenRTM_aist.PublisherPeriodic.PublisherPeriodic.svc (   self)

スレッド実行関数

int PublisherPeriodic::svc(void)

◆ write()

def OpenRTM_aist.PublisherPeriodic.PublisherPeriodic.write (   self,
  data,
  sec,
  usec 
)

データを書き込む

Publisher が保持するバッファに対してデータを書き込む。コンシュー マ、バッファ、リスナ等が適切に設定されていない等、Publisher オブ ジェクトが正しく初期化されていない場合、この関数を呼び出すとエラー コード PRECONDITION_NOT_MET が返され、バッファへの書き込み等の操 作は一切行われない。

バッファへの書き込みと、InPortへのデータの送信は非同期的に行われ るため、この関数は、InPortへのデータ送信の結果を示す、 CONNECTION_LOST, BUFFER_FULL などのリターンコードを返すことがあ る。この場合、データのバッファへの書き込みは行われない。

バッファへの書き込みに対して、バッファがフル状態、バッファのエ ラー、バッファへの書き込みがタイムアウトした場合、バッファの事前 条件が満たされない場合にはそれぞれ、エラーコード BUFFER_FULL, BUFFER_ERROR, BUFFER_TIMEOUT, PRECONDITION_NOT_MET が返される。

これら以外のエラーの場合、PORT_ERROR が返される。

引数
data書き込むデータ
secタイムアウト時間
nsecタイムアウト時間
戻り値
PORT_OK 正常終了 PRECONDITION_NO_MET consumer, buffer, listener等が適切に設定 されていない等、このオブジェクトの事前条件 を満たさない場合。 CONNECTION_LOST 接続が切断されたことを検知した。 BUFFER_FULL バッファがフル状態である。 BUFFER_ERROR バッファに何らかのエラーが生じた場合。 NOT_SUPPORTED サポートされない操作が行われた。 TIMEOUT タイムアウトした。

PublisherBase::ReturnCode PublisherPeriodic::write(const cdrMemoryStream& data, unsigned long sec, unsigned long usec)

OpenRTM_aist.PublisherBase.PublisherBaseを再実装しています。


このクラス詳解は次のファイルから抽出されました: