クラス OpenRTM_aist.PublisherPeriodic.PublisherPeriodic

PublisherPeriodic クラス. [詳細]

OpenRTM_aist.PublisherPeriodic.PublisherPeriodicに対する継承グラフ
OpenRTM_aist.PublisherBase.PublisherBase OpenRTM_aist.DataPortStatus.DataPortStatus

すべてのメンバ一覧

Public メソッド

def __init__
 コンストラクタ
def __del__
 デストラクタ
def setPushPolicy
 PushPolicy の設定.
def createTask
 Task の設定.
def init
 初期化
def setConsumer
 InPortコンシューマのセット.
def setBuffer
 バッファのセット
def setListener
 リスナを設定する。
def write
 データを書き込む
def isActive
 アクティブ化確認
def activate
 アクティブ化する
def deactivate
 非アクティブ化する
def svc
 スレッド実行関数
def pushAll
 push all policy
def pushFifo
 push "fifo" policy
def pushSkip
 push "skip" policy
def pushNew
 push "new" policy
def convertReturn
 BufferStatus から DataPortStatus への変換.
def invokeListener
 DataPortStatusに従ってリスナへ通知する関数を呼び出す。.
def onBufferWrite
 ON_BUFFER_WRITEのリスナへ通知する。.
def onBufferFull
 ON_BUFFER_FULLリスナへイベントを通知する。.
def onBufferWriteTimeout
 ON_BUFFER_WRITE_TIMEOUTのリスナへ通知する。.
def onBufferRead
 ON_BUFFER_READのリスナへ通知する。.
def onSend
 ON_SENDのリスナへ通知する。.
def onReceived
 ON_RECEIVEDのリスナへ通知する。.
def onReceiverFull
 ON_RECEIVER_FULLのリスナへ通知する。.
def onReceiverTimeout
 ON_RECEIVER_TIMEOUTのリスナへ通知する。.
def onReceiverError
 ON_RECEIVER_ERRORのリスナへ通知する。.
def onBufferEmpty
 ON_BUFFER_EMPTYのリスナへ通知する。.
def onSenderEmpty
 ON_SENDER_EMPTYのリスナへ通知する。.
def onSenderError
 ON_SENDER_ERRORのリスナへ通知する。.
def bufferIsEmpty
 バッファが空かどうかをチェックする。x

説明

PublisherPeriodic クラス.

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


メソッド

def OpenRTM_aist.PublisherPeriodic.PublisherPeriodic.__del__ (   self  ) 

デストラクタ

デストラクタ

引数:
self 
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を再定義しています。

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を再定義しています。

def OpenRTM_aist.PublisherPeriodic.PublisherPeriodic.bufferIsEmpty (   self  ) 

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

bool bufferIsEmpty()

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
引数:
status BufferStatus
data cdrMemoryStream
戻り値:
DataPortStatu 型のリターンコード

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

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

Task の設定.

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

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を再定義しています。

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を再定義しています。

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

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

引数:
status DataPortStatus
data cdrMemoryStream
戻り値:
リターンコード

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

def OpenRTM_aist.PublisherPeriodic.PublisherPeriodic.isActive (   self  ) 

アクティブ化確認

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

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

bool PublisherPeriodic.isActive()

OpenRTM_aist.PublisherBase.PublisherBaseを再定義しています。

def OpenRTM_aist.PublisherPeriodic.PublisherPeriodic.onBufferEmpty (   self  ) 

ON_BUFFER_EMPTYのリスナへ通知する。.

inline void onBufferEmpty()

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

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

引数:
data cdrMemoryStream

inline void onBufferFull(const cdrMemoryStream& data)

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

ON_BUFFER_READのリスナへ通知する。.

引数:
data cdrMemoryStream

inline void onBufferRead(const cdrMemoryStream& data)

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

ON_BUFFER_WRITEのリスナへ通知する。.

引数:
data cdrMemoryStream

inline void onBufferWrite(const cdrMemoryStream& data)

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

ON_BUFFER_WRITE_TIMEOUTのリスナへ通知する。.

引数:
data cdrMemoryStream

inline void onBufferWriteTimeout(const cdrMemoryStream& data)

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

ON_RECEIVEDのリスナへ通知する。.

引数:
data cdrMemoryStream

inline void onReceived(const cdrMemoryStream& data)

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

ON_RECEIVER_ERRORのリスナへ通知する。.

引数:
data cdrMemoryStream

inline void onReceiverError(const cdrMemoryStream& data)

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

ON_RECEIVER_FULLのリスナへ通知する。.

引数:
data cdrMemoryStream

inline void onReceiverFull(const cdrMemoryStream& data)

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

ON_RECEIVER_TIMEOUTのリスナへ通知する。.

引数:
data cdrMemoryStream

inline void onReceiverTimeout(const cdrMemoryStream& data)

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

ON_SENDのリスナへ通知する。.

引数:
data cdrMemoryStream

inline void onSend(const cdrMemoryStream& data)

def OpenRTM_aist.PublisherPeriodic.PublisherPeriodic.onSenderEmpty (   self  ) 

ON_SENDER_EMPTYのリスナへ通知する。.

inline void onSenderEmpty()

def OpenRTM_aist.PublisherPeriodic.PublisherPeriodic.onSenderError (   self  ) 

ON_SENDER_ERRORのリスナへ通知する。.

inline void onSenderError()

def OpenRTM_aist.PublisherPeriodic.PublisherPeriodic.pushAll (   self  ) 

push all policy

PublisherBase.ReturnCode PublisherPeriodic.pushAll()

def OpenRTM_aist.PublisherPeriodic.PublisherPeriodic.pushFifo (   self  ) 

push "fifo" policy

PublisherBase.ReturnCode PublisherPeriodic.pushFifo()

def OpenRTM_aist.PublisherPeriodic.PublisherPeriodic.pushNew (   self  ) 

push "new" policy

PublisherBase.ReturnCode PublisherPeriodic.pushNew()

def OpenRTM_aist.PublisherPeriodic.PublisherPeriodic.pushSkip (   self  ) 

push "skip" policy

PublisherBase.ReturnCode PublisherPeriodic.pushSkip()

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

バッファのセット

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

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

PublisherBase.ReturnCode PublisherPeriodic.setBuffer(CdrBufferBase* buffer)

OpenRTM_aist.PublisherBase.PublisherBaseを再定義しています。

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

InPortコンシューマのセット.

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

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

PublisherBase.ReturnCode PublisherPeriodic.setConsumer(InPortConsumer* consumer)

OpenRTM_aist.PublisherBase.PublisherBaseを再定義しています。

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

リスナを設定する。

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

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

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

OpenRTM_aist.PublisherBase.PublisherBaseを再定義しています。

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

PushPolicy の設定.

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

def OpenRTM_aist.PublisherPeriodic.PublisherPeriodic.svc (   self  ) 

スレッド実行関数

int PublisherPeriodic.svc(void)

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を再定義しています。


このクラスの説明は次のファイルから生成されました:
OpenRTM-aist-1.1.0-Pythonに対してMon Mar 2 14:14:09 2015に生成されました。  doxygen 1.6.3