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

[詳解]

OpenRTM_aist.PublisherNew.PublisherNew の継承関係図
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 onBufferWriteOverwrite (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 onSenderError (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 リターンコード [詳解]
 

詳解

PublisherNew クラス

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

構築子と解体子

◆ __init__()

def OpenRTM_aist.PublisherNew.PublisherNew.__init__ (   self)

コンストラクタ

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

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

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

◆ __del__()

def OpenRTM_aist.PublisherNew.PublisherNew.__del__ (   self)

デストラクタ

デストラクタ

引数
self

メソッド詳解

◆ activate()

def 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()

def 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)

BufferStatus -> DataPortStatus

BUFFER_OK -> PORT_OK BUFFER_ERROR -> BUFFER_ERROR BUFFER_FULL -> BUFFER_FULL NOT_SUPPORTED -> PORT_ERROR TIMEOUT -> BUFFER_TIMEOUT PRECONDITION_NOT_MET -> PRECONDITION_NOT_MET

◆ createTask()

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

Task の設定

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

◆ deactivate()

def 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()

def OpenRTM_aist.PublisherNew.PublisherNew.exit (   self)

終了処理

引数
self

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

◆ init()

def 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()

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

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

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

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

◆ isActive()

def OpenRTM_aist.PublisherNew.PublisherNew.isActive (   self)

アクティブ化確認

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

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

bool PublisherNew::isActive()

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

◆ onBufferFull()

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

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

引数
datacdrMemoryStream

inline void onBufferFull(const cdrMemoryStream& data)

◆ onBufferRead()

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

ON_BUFFER_READのリスナへ通知する。

引数
datacdrMemoryStream

inline void onBufferRead(const cdrMemoryStream& data)

◆ onBufferWrite()

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

ON_BUFFER_WRITEのリスナへ通知する。

引数
datacdrMemoryStream

inline void onBufferWrite(const cdrMemoryStream& data)

◆ onBufferWriteOverwrite()

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

ON_BUFFER_OVERWRITEのリスナへ通知する。

引数
datacdrMemoryStream

inline void onBufferWriteOverwrite(const cdrMemoryStream& data)

◆ onBufferWriteTimeout()

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

ON_BUFFER_WRITE_TIMEOUTのリスナへ通知する。

引数
datacdrMemoryStream

inline void onBufferWriteTimeout(const cdrMemoryStream& data)

◆ onReceived()

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

ON_RECEIVEDのリスナへ通知する。

引数
datacdrMemoryStream

inline void onReceived(const cdrMemoryStream& data)

◆ onReceiverError()

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

ON_RECEIVER_ERRORのリスナへ通知する。

引数
datacdrMemoryStream

inline void onReceiverError(const cdrMemoryStream& data)

◆ onReceiverFull()

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

ON_RECEIVER_FULLのリスナへ通知する。

引数
datacdrMemoryStream

inline void onReceiverFull(const cdrMemoryStream& data)

◆ onReceiverTimeout()

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

ON_RECEIVER_TIMEOUTのリスナへ通知する。

引数
datacdrMemoryStream

inline void onReceiverTimeout(const cdrMemoryStream& data)

◆ onSend()

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

ON_SENDのリスナへ通知する。

引数
datacdrMemoryStream

inline void onSend(const cdrMemoryStream& data)

◆ onSenderError()

def OpenRTM_aist.PublisherNew.PublisherNew.onSenderError (   self)

ON_SENDER_ERRORのリスナへ通知する。

引数
datacdrMemoryStream

inline void onSenderError()

◆ pushAll()

def OpenRTM_aist.PublisherNew.PublisherNew.pushAll (   self)

push all policy

PublisherNew::ReturnCode PublisherNew::pushAll()

◆ pushFifo()

def OpenRTM_aist.PublisherNew.PublisherNew.pushFifo (   self)

push "fifo" policy

PublisherNew::ReturnCode PublisherNew::pushFifo()

◆ pushNew()

def OpenRTM_aist.PublisherNew.PublisherNew.pushNew (   self)

push "new" policy

PublisherNew::ReturnCode PublisherNew::pushNew()

◆ pushSkip()

def OpenRTM_aist.PublisherNew.PublisherNew.pushSkip (   self)

push "skip" policy

PublisherNew::ReturnCode PublisherNew::pushSkip()

◆ setBuffer()

def 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()

def 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()

def 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()

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

PushPolicy の設定

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

◆ svc()

def OpenRTM_aist.PublisherNew.PublisherNew.svc (   self)

スレッド実行関数

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

int PublisherNew::svc(void)

◆ write()

def 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を再実装しています。


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