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

[詳解]

OpenRTM_aist.InPort.InPort の継承関係図
OpenRTM_aist.InPortBase.InPortBase OpenRTM_aist.PortBase.PortBase OpenRTM_aist.DataPortStatus.DataPortStatus

公開メンバ関数

 __init__ (self, name, value)
 
 __del__ (self, InPortBase=OpenRTM_aist.InPortBase)
 
 name (self)
 
 isNew (self, names=None)
 
 isEmpty (self, names=None)
 
 read (self, name=None)
 
 update (self)
 
 setOnRead (self, on_read)
 
 setOnReadConvert (self, on_rconvert)
 
 write (self, data)
 
- 基底クラス OpenRTM_aist.InPortBase.InPortBase に属する継承公開メンバ関数
 init (self, prop)
 
 properties (self)
 
 connectors (self)
 
 getConnectorProfiles (self)
 
 getConnectorIds (self)
 
 getConnectorNames (self)
 
 getConnectorById (self, id)
 
 getConnectorByName (self, name)
 
 getConnectorProfileById (self, id)
 
 getConnectorProfileByName (self, name)
 
 connect (self, connector_profile)
 
 notify_connect (self, connector_profile)
 
 activateInterfaces (self)
 
 deactivateInterfaces (self)
 
 addConnectorDataListener (self, listener_type, listener)
 
 removeConnectorDataListener (self, listener_type, listener)
 
 addConnectorListener (self, listener_type, listener)
 
 removeConnectorListener (self, listener_type, listener)
 
 publishInterfaces (self, cprof)
 
 subscribeInterfaces (self, cprof)
 
 unsubscribeInterfaces (self, connector_profile)
 
 initProviders (self)
 
 initConsumers (self)
 
 createProvider (self, cprof, prop)
 
 createConsumer (self, cprof, prop)
 
 createConnector (self, cprof, prop, provider_=None, consumer_=None)
 
 createDuplexConnector (self, cprof, prop, provider_)
 
 getLocalOutPort (self, profile)
 
- 基底クラス OpenRTM_aist.PortBase.PortBase に属する継承公開メンバ関数
 exit (self)
 
 get_port_profile (self)
 
 getPortProfile (self)
 
 get_connector_profiles (self)
 
 get_connector_profile (self, connector_id)
 
 disconnect (self, connector_id)
 
 notify_disconnect (self, connector_id)
 
 disconnect_all (self)
 
 setName (self, name)
 
 getName (self)
 
 getProfile (self)
 
 setPortRef (self, port_ref)
 
 getPortRef (self)
 
 setOwner (self, owner)
 
 setOnPublishInterfaces (self, on_publish)
 
 setOnSubscribeInterfaces (self, on_subscribe)
 
 setOnConnected (self, on_connected)
 
 setOnUnsubscribeInterfaces (self, on_subscribe)
 
 setOnDisconnected (self, on_disconnected)
 
 setPortConnectListenerHolder (self, portconnListeners)
 
 connectNext (self, connector_profile)
 
 disconnectNext (self, connector_profile)
 
 setConnectionLimit (self, limit_value)
 
 isEmptyId (self, connector_profile)
 
 getUUID (self)
 
 setUUID (self, connector_profile)
 
 isExistingConnId (self, id_)
 
 findConnProfile (self, id_)
 
 findConnProfileIndex (self, id_)
 
 updateConnectorProfile (self, connector_profile)
 
 eraseConnectorProfile (self, id_)
 
 appendInterface (self, instance_name, type_name, pol)
 
 deleteInterface (self, name, pol)
 
 addProperty (self, key, value)
 
 appendProperty (self, key, value)
 
 updateConnectors (self)
 
 checkPorts (self, ports)
 
 isExistingMarshalingType (self, con_prop)
 
- 基底クラス OpenRTM_aist.DataPortStatus.DataPortStatus に属する継承公開メンバ関数
 toString (status)
 

その他の継承メンバ

- 基底クラス OpenRTM_aist.DataPortStatus.DataPortStatus に属する継承静的公開変数類
int PORT_OK = 0
 brief DataPortStatus リターンコード
 
- 基底クラス OpenRTM_aist.PortBase.PortBase に属する継承限定公開メンバ関数
 _publishInterfaces (self)
 

詳解

InPort クラス

InPort の実装クラス。 InPort は内部にリングバッファを持ち、外部から送信されたデータを順次 このリングバッファに格納する。リングバッファのサイズはデフォルトで64と なっているが、コンストラクタ引数によりサイズを指定することができる。 データはフラグによって未読、既読状態が管理され、isNew(), getNewDataLen() getNewList(), getNewListReverse() 等のメソッドによりハンドリングすることが できる。

から
0.2.0

構築子と解体子

◆ __init__()

OpenRTM_aist.InPort.InPort.__init__ ( self,
name,
value )

コンストラクタ

コンストラクタ。

引数
self
nameInPort 名。InPortBase:name() により参照される。
valueこの InPort にバインドされる変数

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

◆ __del__()

OpenRTM_aist.InPort.InPort.__del__ ( self,
PortBase = OpenRTM_aist.InPortBase )

デストラクタ

デストラクタ

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

メソッド詳解

◆ isEmpty()

OpenRTM_aist.InPort.InPort.isEmpty ( self,
names = None )

バッファが空かどうか確認する

InPortのバッファが空かどうかを bool 値で返す。 空の場合は true, 未読データがある場合は false を返す。

戻り値
true バッファは空 false バッファに未読データがある

bool isEmpty()

◆ isNew()

OpenRTM_aist.InPort.InPort.isNew ( self,
names = None )

最新データか確認

現在のバッファ位置に格納されているデータが最新データか確認する。

引数
self
戻り値
最新データ確認結果 ( true:最新データ.データはまだ読み出されていない false:過去のデータ.データは既に読み出されている)

bool isNew()

◆ name()

OpenRTM_aist.InPort.InPort.name ( self)

ポート名称を取得する。

ポート名称を取得する。

引数
self
戻り値
ポート名称

const char* name()

◆ read()

OpenRTM_aist.InPort.InPort.read ( self,
name = None )

DataPort から値を読み出す

InPortに書き込まれたデータを読みだす。接続数が0、またはバッファに データが書き込まれていない状態で読みだした場合の戻り値は不定である。 バッファが空の状態のとき、 事前に設定されたモード (readback, do_nothing, block) に応じて、 以下のような動作をする。

  • readback: 最後の値を読みなおす。
  • do_nothing: 何もしない
  • block: ブロックする。タイムアウトが設定されている場合は、 タイムアウトするまで待つ。

バッファが空の状態では、InPortにバインドされた変数の値が返される。 したがって、初回読み出し時には不定値を返す可能性がある。 この関数を利用する際には、

  • isNew(), isEmpty() と併用し、事前にバッファ状態をチェックする。
  • 初回読み出し時に不定値を返さないようにバインド変数を事前に初期化する

各コールバック関数は以下のように呼び出される。

  • OnRead: read() 関数が呼ばれる際に必ず呼ばれる。
  • OnReadConvert: データの読み出しが成功した場合、読みだしたデータを 引数としてOnReadConvertが呼び出され、戻り値をread()が戻り値 として返す。
  • OnEmpty: バッファが空のためデータの読み出しに失敗した場合呼び出される。 OnEmpty の戻り値を read() の戻り値として返す。
  • OnBufferTimeout: データフロー型がPush型の場合に、読み出し タイムアウトのためにデータの読み出しに失敗した場合に呼ばれる。
  • OnRecvTimeout: データフロー型がPull型の場合に、読み出しタイムアウト のためにデータ読み出しに失敗した場合に呼ばれる。
  • OnReadError: 上記以外の理由で読みだしに失敗した場合に呼ばれる。 理由としては、バッファ設定の不整合、例外の発生などが考えられる が通常は起こりえないためバグの可能性がある。
戻り値
読み出したデータ

DataType read()

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

◆ setOnRead()

OpenRTM_aist.InPort.InPort.setOnRead ( self,
on_read )

InPort バッファへデータ読み込み時のコールバックの設定

InPort が持つバッファからデータが読み込まれる直前に呼ばれるコールバック オブジェクトを設定する。

引数
self
on_read設定対象コールバックオブジェクト

◆ setOnReadConvert()

OpenRTM_aist.InPort.InPort.setOnReadConvert ( self,
on_rconvert )

InPort バッファへデータ読み出し時のコールバックの設定

InPort が持つバッファからデータが読み出される際に呼ばれるコールバック オブジェクトを設定する。コールバックオブジェクトの戻り値がread()メソッド の呼出結果となる。

引数
self
on_rconvert設定対象コールバックオブジェクト

◆ update()

OpenRTM_aist.InPort.InPort.update ( self)

バインドされた変数に InPort バッファの最新値を読み込む

バインドされたデータに InPort の最新値を読み込む。 コンストラクタで変数と InPort がバインドされていなければならない。 このメソッドはポリモーフィックに使用される事を前提としているため、 型に依存しない引数、戻り値となっている。

引数
self

◆ write()

OpenRTM_aist.InPort.InPort.write ( self,
data )

データをダイレクトに書き込む

引数
self
data書き込むデータ

void write(const DataType& data)


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