PublisherPeriodic クラス. [詳細]
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オブジェクト |
def OpenRTM_aist.PublisherPeriodic.PublisherPeriodic.activate | ( | self | ) |
アクティブ化する
Publisher をアクティブ化する。この関数を呼び出すことにより、 Publisherが持つ、データを送信するスレッドが動作を開始する。初期 化が行われていないなどにより、事前条件を満たさない場合、エラーコー ド 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 型へ変換する関数。そ れぞれ、以下のように変換される。変換時にコールバックを呼ぶ場合、 コールバク関数も付記する。
status | BufferStatus | |
data | cdrMemoryStream |
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 を返す。
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 の いずれかを与えることができる。
以下のオプションを与えることができる。
property | 本Publisherの駆動制御情報を設定したPropertyオブジェクト |
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() 関数によって、アクティブ状態と非アクティ ブ状態が切り替わる。この関数により、現在アクティブ状態か、非アク ティブ状態かを確認することができる。
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 へのポインタ |
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 へのポインタ |
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 オブジェクト |
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 | タイムアウト時間 |
PublisherBase.ReturnCode PublisherPeriodic.write(const cdrMemoryStream& data, unsigned long sec, unsigned long usec)
OpenRTM_aist.PublisherBase.PublisherBaseを再定義しています。