OpenRTM-aist-Python 1.1.2
|
PublisherNew クラス [詳解]
公開メンバ関数 | |
def | __init__ (self) |
コンストラクタ [詳解] | |
def | __del__ (self) |
デストラクタ [詳解] | |
def | setPushPolicy (self, prop) |
PushPolicy の設定void PublisherNew::setPushPolicy(const coil::Properties& prop) | |
def | createTask (self, prop) |
Task の設定bool PublisherNew::createTask(const coil::Properties& prop) | |
def | init (self, prop) |
初期化 [詳解] | |
def | setConsumer (self, consumer) |
InPortコンシューマのセット [詳解] | |
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) |
BufferStatus から DataPortStatus への変換 [詳解] | |
def | invokeListener (self, status, data) |
DataPortStatusに従ってリスナへ通知する関数を呼び出す。 [詳解] | |
def | onBufferWrite (self, data) |
ON_BUFFER_WRITEのリスナへ通知する。 [詳解] | |
def | onBufferFull (self, data) |
ON_BUFFER_FULLリスナへイベントを通知する。 [詳解] | |
def | onBufferWriteTimeout (self, data) |
ON_BUFFER_WRITE_TIMEOUTのリスナへ通知する。 [詳解] | |
def | onBufferWriteOverwrite (self, data) |
ON_BUFFER_OVERWRITEのリスナへ通知する。 [詳解] | |
def | onBufferRead (self, data) |
ON_BUFFER_READのリスナへ通知する。 [詳解] | |
def | onSend (self, data) |
ON_SENDのリスナへ通知する。 [詳解] | |
def | onReceived (self, data) |
ON_RECEIVEDのリスナへ通知する。 [詳解] | |
def | onReceiverFull (self, data) |
ON_RECEIVER_FULLのリスナへ通知する。 [詳解] | |
def | onReceiverTimeout (self, data) |
ON_RECEIVER_TIMEOUTのリスナへ通知する。 [詳解] | |
def | onReceiverError (self, data) |
ON_RECEIVER_ERRORのリスナへ通知する。 [詳解] | |
def | onSenderError (self) |
ON_SENDER_ERRORのリスナへ通知する。 [詳解] | |
基底クラス OpenRTM_aist.PublisherBase.PublisherBase に属する継承公開メンバ関数 | |
def | init (self, prop) |
設定初期化 [詳解] | |
def | setConsumer (self, consumer) |
virtual ReturnCode setConsumer(InPortConsumer* consumer) = 0; | |
def | setBuffer (self, buffer) |
virtual ReturnCode setBuffer(BufferBase<cdrMemoryStream>* buffer) = 0; | |
def | isActive (self) |
virtual bool isActive() = 0; | |
def | activate (self) |
virtual ReturnCode activate() = 0; | |
def | deactivate (self) |
virtual ReturnCode deactivate() = 0; | |
def | release (self) |
Publisher を破棄する。 [詳解] | |
基底クラス OpenRTM_aist.DataPortStatus.DataPortStatus に属する継承公開メンバ関数 | |
def | toString (status) |
DataPortStatus リターンコードを文字列に変換 [詳解] | |
その他の継承メンバ | |
基底クラス OpenRTM_aist.DataPortStatus.DataPortStatus に属する継承静的公開変数類 | |
int | PORT_OK = 0 |
brief DataPortStatus リターンコード [詳解] | |
PublisherNew クラス
バッファ内に新規データが格納されたタイミングで、その新規データを送信する。 データ送出タイミングを待つコンシューマを、送出する側とは異なるスレッドで 動作させる場合に使用。 Publisherの駆動は、データ送出のタイミングになるまでブロックされ、 送出タイミングの通知を受けると、即座にコンシューマの送出処理を呼び出す。
def OpenRTM_aist.PublisherNew.PublisherNew.__init__ | ( | self | ) |
コンストラクタ
コンストラクタ 本 Publisher 用新規スレッドを生成する。
self | |
consumer | データ送出を待つコンシューマ |
property | 本Publisherの駆動制御情報を設定したPropertyオブジェクト (本Publisherでは未使用) |
def OpenRTM_aist.PublisherNew.PublisherNew.__del__ | ( | self | ) |
デストラクタ
デストラクタ
self |
def OpenRTM_aist.PublisherNew.PublisherNew.activate | ( | self | ) |
アクティブ化する
Publisher をアクティブ化する。この関数を呼び出すことにより、 Publisherが持つ、データを送信するスレッドが動作を開始する。初期 化が行われていないなどにより、事前条件を満たさない場合、エラーコー ド PRECONDITION_NOT_MET を返す。
PublisherBase::ReturnCode PublisherNew::activate()
def OpenRTM_aist.PublisherNew.PublisherNew.convertReturn | ( | self, | |
status, | |||
data | |||
) |
BufferStatus から DataPortStatus への変換
バッファからの戻り値を DataPortStatus::Enum 型へ変換する関数。そ れぞれ、以下のように変換される。変換時にコールバックを呼ぶ場合、 コールバク関数も付記する。
status | BufferStatus |
data | cdrMemoryStream |
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
def OpenRTM_aist.PublisherNew.PublisherNew.deactivate | ( | self | ) |
非アクティブ化する
Publisher を非アクティブ化する。この関数を呼び出すことにより、 Publisherが持つ、データを送信するスレッドが動作を停止する。初期 化が行われていないなどにより、事前条件を満たさない場合、エラーコー ド PRECONDITION_NOT_MET を返す。
PublisherBase::ReturnCode PublisherNew::deactivate()
def OpenRTM_aist.PublisherNew.PublisherNew.init | ( | self, | |
prop | |||
) |
初期化
このクラスのオブジェクトを使用するのに先立ち、必ずこの関数を呼び 出す必要がある。引数には、このオブジェクトの各種設定情報を含む Properties を与える。データをプッシュする際のポリシーとして publisher.push_policy をキーとする値に、all, fifo, skip, new の いずれかを与えることができる。
以下のオプションを与えることができる。
property | 本Publisherの駆動制御情報を設定したPropertyオブジェクト |
PublisherBase::ReturnCode PublisherNew::init(coil::Properties& prop)
def OpenRTM_aist.PublisherNew.PublisherNew.invokeListener | ( | self, | |
status, | |||
data | |||
) |
DataPortStatusに従ってリスナへ通知する関数を呼び出す。
status | DataPortStatus |
data | cdrMemoryStream |
PublisherNew::ReturnCode PublisherNew::invokeListener(DataPortStatus::Enum status, const cdrMemoryStream& data)
def OpenRTM_aist.PublisherNew.PublisherNew.isActive | ( | self | ) |
アクティブ化確認
Publisher はデータポートと同期して activate/deactivate される。 activate() / deactivate() 関数によって、アクティブ状態と非アクティ ブ状態が切り替わる。この関数により、現在アクティブ状態か、非アク ティブ状態かを確認することができる。
def OpenRTM_aist.PublisherNew.PublisherNew.onBufferFull | ( | self, | |
data | |||
) |
ON_BUFFER_FULLリスナへイベントを通知する。
data | cdrMemoryStream |
inline void onBufferFull(const cdrMemoryStream& data)
def OpenRTM_aist.PublisherNew.PublisherNew.onBufferRead | ( | self, | |
data | |||
) |
ON_BUFFER_READのリスナへ通知する。
data | cdrMemoryStream |
inline void onBufferRead(const cdrMemoryStream& data)
def OpenRTM_aist.PublisherNew.PublisherNew.onBufferWrite | ( | self, | |
data | |||
) |
ON_BUFFER_WRITEのリスナへ通知する。
data | cdrMemoryStream |
inline void onBufferWrite(const cdrMemoryStream& data)
def OpenRTM_aist.PublisherNew.PublisherNew.onBufferWriteOverwrite | ( | self, | |
data | |||
) |
ON_BUFFER_OVERWRITEのリスナへ通知する。
data | cdrMemoryStream |
inline void onBufferWriteOverwrite(const cdrMemoryStream& data)
def OpenRTM_aist.PublisherNew.PublisherNew.onBufferWriteTimeout | ( | self, | |
data | |||
) |
ON_BUFFER_WRITE_TIMEOUTのリスナへ通知する。
data | cdrMemoryStream |
inline void onBufferWriteTimeout(const cdrMemoryStream& data)
def OpenRTM_aist.PublisherNew.PublisherNew.onReceived | ( | self, | |
data | |||
) |
ON_RECEIVEDのリスナへ通知する。
data | cdrMemoryStream |
inline void onReceived(const cdrMemoryStream& data)
def OpenRTM_aist.PublisherNew.PublisherNew.onReceiverError | ( | self, | |
data | |||
) |
ON_RECEIVER_ERRORのリスナへ通知する。
data | cdrMemoryStream |
inline void onReceiverError(const cdrMemoryStream& data)
def OpenRTM_aist.PublisherNew.PublisherNew.onReceiverFull | ( | self, | |
data | |||
) |
ON_RECEIVER_FULLのリスナへ通知する。
data | cdrMemoryStream |
inline void onReceiverFull(const cdrMemoryStream& data)
def OpenRTM_aist.PublisherNew.PublisherNew.onReceiverTimeout | ( | self, | |
data | |||
) |
ON_RECEIVER_TIMEOUTのリスナへ通知する。
data | cdrMemoryStream |
inline void onReceiverTimeout(const cdrMemoryStream& data)
def OpenRTM_aist.PublisherNew.PublisherNew.onSend | ( | self, | |
data | |||
) |
ON_SENDのリスナへ通知する。
data | cdrMemoryStream |
inline void onSend(const cdrMemoryStream& data)
def OpenRTM_aist.PublisherNew.PublisherNew.onSenderError | ( | self | ) |
def OpenRTM_aist.PublisherNew.PublisherNew.pushAll | ( | self | ) |
push all policy
PublisherNew::ReturnCode PublisherNew::pushAll()
def OpenRTM_aist.PublisherNew.PublisherNew.pushFifo | ( | self | ) |
push "fifo" policy
PublisherNew::ReturnCode PublisherNew::pushFifo()
def OpenRTM_aist.PublisherNew.PublisherNew.pushNew | ( | self | ) |
push "new" policy
PublisherNew::ReturnCode PublisherNew::pushNew()
def OpenRTM_aist.PublisherNew.PublisherNew.pushSkip | ( | self | ) |
push "skip" policy
PublisherNew::ReturnCode PublisherNew::pushSkip()
def OpenRTM_aist.PublisherNew.PublisherNew.setBuffer | ( | self, | |
buffer | |||
) |
バッファのセット
この関数では、この Publisher に関連付けられるバッファをセットする。 バッファオブジェクトがヌルポインタの場合、INVALID_ARGSが返される。 それ以外の場合は、PORT_OK が返される。
buffer | CDR buffer へのポインタ |
PublisherBase::ReturnCode PublisherNew::setBuffer(CdrBufferBase* buffer)
def OpenRTM_aist.PublisherNew.PublisherNew.setConsumer | ( | self, | |
consumer | |||
) |
InPortコンシューマのセット
この関数では、この Publisher に関連付けられるコンシューマをセットする。 コンシューマオブジェクトがヌルポインタの場合、INVALID_ARGSが返される。 それ以外の場合は、PORT_OK が返される。
consumer | Consumer へのポインタ |
PublisherBase::ReturnCode PublisherNew::setConsumer(InPortConsumer* consumer)
def OpenRTM_aist.PublisherNew.PublisherNew.setListener | ( | self, | |
info, | |||
listeners | |||
) |
リスナを設定する。
Publisher に対してリスナオブジェクト ConnectorListeners を設定する。 各種リスナオブジェクトを含む ConnectorListeners をセットすることで、 バッファの読み書き、データの送信時等にこれらのリスナをコールする。 ConnectorListeners オブジェクトの所有権はポートまたは RTObject が持ち Publisher 削除時に ConnectorListeners は削除されることはない。 ConnectorListeners がヌルポインタの場合 INVALID_ARGS を返す。
info | ConnectorProfile をローカル化したオブジェクト ConnectorInfo |
listeners | リスナを多数保持する ConnectorListeners オブジェクト |
virtual ReturnCode setListener(ConnectorInfo& info, ConnectorListeners* listeners);
def OpenRTM_aist.PublisherNew.PublisherNew.svc | ( | self | ) |
スレッド実行関数
coil::PeriodicTask により周期実行されるタスク実行関数。
int PublisherNew::svc(void)
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 | タイムアウト時間 |
PublisherBase::ReturnCode PublisherNew::write(const cdrMemoryStream& data, unsigned long sec, unsigned long usec)