OpenRTM-aist-Python 2.0.2
OpenRTM_aist.PublisherNew.PublisherNew クラス

[詳解]

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

公開メンバ関数

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

その他の継承メンバ

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

詳解

PublisherNew クラス

バッファ内に新規データが格納されたタイミングで、その新規データを送信する。 データ送出タイミングを待つコンシューマを、送出する側とは異なるスレッドで 動作させる場合に使用。 Publisherの駆動は、データ送出のタイミングになるまでブロックされ、 送出タイミングの通知を受けると、即座にコンシューマの送出処理を呼び出す。

構築子と解体子

◆ __init__()

OpenRTM_aist.PublisherNew.PublisherNew.__init__ ( self)

コンストラクタ

コンストラクタ 本 Publisher 用新規スレッドを生成する。

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

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

◆ __del__()

OpenRTM_aist.PublisherNew.PublisherNew.__del__ ( self)

デストラクタ

デストラクタ

引数
self

メソッド詳解

◆ activate()

OpenRTM_aist.PublisherNew.PublisherNew.activate ( self)

アクティブ化する

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

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

PublisherBase.ReturnCode PublisherNew.activate()

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

◆ convertReturn()

OpenRTM_aist.PublisherNew.PublisherNew.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.ReturnCode PublisherNew.convertReturn(BufferStatus.Enum status, const cdrMemoryStream& data)

◆ createTask()

OpenRTM_aist.PublisherNew.PublisherNew.createTask ( self,
prop )

Task の設定

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

◆ deactivate()

OpenRTM_aist.PublisherNew.PublisherNew.deactivate ( self)

非アクティブ化する

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

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

PublisherBase.ReturnCode PublisherNew.deactivate()

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

◆ exit()

OpenRTM_aist.PublisherNew.PublisherNew.exit ( self)

終了処理

引数
self

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

◆ init()

OpenRTM_aist.PublisherNew.PublisherNew.init ( self,
prop )

初期化

このクラスのオブジェクトを使用するのに先立ち、必ずこの関数を呼び 出す必要がある。引数には、このオブジェクトの各種設定情報を含む Properties を与える。データをプッシュする際のポリシーとして publisher.push_policy をキーとする値に、all, fifo, skip, new の いずれかを与えることができる。

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

  • thread_type: スレッドのタイプ (文字列、デフォルト: default)
  • 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 PublisherNew.init(coil.Properties& prop)

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

◆ invokeListener()

OpenRTM_aist.PublisherNew.PublisherNew.invokeListener ( self,
status,
data )

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

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

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

◆ isActive()

OpenRTM_aist.PublisherNew.PublisherNew.isActive ( self)

アクティブ化確認

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

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

bool PublisherNew.isActive()

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

◆ onBufferFull()

OpenRTM_aist.PublisherNew.PublisherNew.onBufferFull ( self,
data )

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

引数
datacdrMemoryStream

inline void onBufferFull(const cdrMemoryStream& data)

◆ onBufferRead()

OpenRTM_aist.PublisherNew.PublisherNew.onBufferRead ( self,
data )

ON_BUFFER_READのリスナへ通知する。

引数
datacdrMemoryStream

inline void onBufferRead(const cdrMemoryStream& data)

◆ onBufferWrite()

OpenRTM_aist.PublisherNew.PublisherNew.onBufferWrite ( self,
data )

ON_BUFFER_WRITEのリスナへ通知する。

引数
datacdrMemoryStream

inline void onBufferWrite(const cdrMemoryStream& data)

◆ onBufferWriteOverwrite()

OpenRTM_aist.PublisherNew.PublisherNew.onBufferWriteOverwrite ( self,
data )

ON_BUFFER_OVERWRITEのリスナへ通知する。

引数
datacdrMemoryStream

inline void onBufferWriteOverwrite(const cdrMemoryStream& data)

◆ onBufferWriteTimeout()

OpenRTM_aist.PublisherNew.PublisherNew.onBufferWriteTimeout ( self,
data )

ON_BUFFER_WRITE_TIMEOUTのリスナへ通知する。

引数
datacdrMemoryStream

inline void onBufferWriteTimeout(const cdrMemoryStream& data)

◆ onReceived()

OpenRTM_aist.PublisherNew.PublisherNew.onReceived ( self,
data )

ON_RECEIVEDのリスナへ通知する。

引数
datacdrMemoryStream

inline void onReceived(const cdrMemoryStream& data)

◆ onReceiverError()

OpenRTM_aist.PublisherNew.PublisherNew.onReceiverError ( self,
data )

ON_RECEIVER_ERRORのリスナへ通知する。

引数
datacdrMemoryStream

inline void onReceiverError(const cdrMemoryStream& data)

◆ onReceiverFull()

OpenRTM_aist.PublisherNew.PublisherNew.onReceiverFull ( self,
data )

ON_RECEIVER_FULLのリスナへ通知する。

引数
datacdrMemoryStream

inline void onReceiverFull(const cdrMemoryStream& data)

◆ onReceiverTimeout()

OpenRTM_aist.PublisherNew.PublisherNew.onReceiverTimeout ( self,
data )

ON_RECEIVER_TIMEOUTのリスナへ通知する。

引数
datacdrMemoryStream

inline void onReceiverTimeout(const cdrMemoryStream& data)

◆ onSend()

OpenRTM_aist.PublisherNew.PublisherNew.onSend ( self,
data )

ON_SENDのリスナへ通知する。

引数
datacdrMemoryStream

inline void onSend(const cdrMemoryStream& data)

◆ onSenderError()

OpenRTM_aist.PublisherNew.PublisherNew.onSenderError ( self)

ON_SENDER_ERRORのリスナへ通知する。

引数
datacdrMemoryStream

inline void onSenderError()

◆ pushAll()

OpenRTM_aist.PublisherNew.PublisherNew.pushAll ( self)

push all policy

PublisherNew.ReturnCode PublisherNew.pushAll()

◆ pushFifo()

OpenRTM_aist.PublisherNew.PublisherNew.pushFifo ( self)

push "fifo" policy

PublisherNew.ReturnCode PublisherNew.pushFifo()

◆ pushNew()

OpenRTM_aist.PublisherNew.PublisherNew.pushNew ( self)

push "new" policy

PublisherNew.ReturnCode PublisherNew.pushNew()

◆ pushSkip()

OpenRTM_aist.PublisherNew.PublisherNew.pushSkip ( self)

push "skip" policy

PublisherNew.ReturnCode PublisherNew.pushSkip()

◆ setBuffer()

OpenRTM_aist.PublisherNew.PublisherNew.setBuffer ( self,
buffer )

バッファのセット

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

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

PublisherBase.ReturnCode PublisherNew.setBuffer(CdrBufferBase* buffer)

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

◆ setConsumer()

OpenRTM_aist.PublisherNew.PublisherNew.setConsumer ( self,
consumer )

InPortコンシューマのセット

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

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

PublisherBase.ReturnCode PublisherNew.setConsumer(InPortConsumer* consumer)

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

◆ setListener()

OpenRTM_aist.PublisherNew.PublisherNew.setListener ( self,
info,
listeners )

リスナを設定する。

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

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

virtual ReturnCode setListener(ConnectorInfo& info, ConnectorListeners* listeners);

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

◆ setPushPolicy()

OpenRTM_aist.PublisherNew.PublisherNew.setPushPolicy ( self,
prop )

PushPolicy の設定

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

◆ svc()

OpenRTM_aist.PublisherNew.PublisherNew.svc ( self)

スレッド実行関数

coil.PeriodicTask により周期実行されるタスク実行関数。

int PublisherNew.svc(void)

◆ write()

OpenRTM_aist.PublisherNew.PublisherNew.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 PublisherNew.write(const cdrMemoryStream& data, unsigned long sec, unsigned long usec)

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


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