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

InPort クラス [詳解]

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

公開メンバ関数

def __init__ (self, name, value, buffer=None, read_block=False, write_block=False, read_timeout=0, write_timeout=0)
 コンストラクタ [詳解]
 
def name (self)
 ポート名称を取得する。 [詳解]
 
def isNew (self)
 最新データか確認 [詳解]
 
def isEmpty (self)
 バッファが空かどうか確認する [詳解]
 
def read (self)
 DataPort から値を読み出す [詳解]
 
def update (self)
 バインドされた変数に InPort バッファの最新値を読み込む [詳解]
 
def setOnRead (self, on_read)
 InPort バッファへデータ読み込み時のコールバックの設定 [詳解]
 
def setOnReadConvert (self, on_rconvert)
 InPort バッファへデータ読み出し時のコールバックの設定 [詳解]
 
- 基底クラス OpenRTM_aist.InPortBase.InPortBase に属する継承公開メンバ関数
def __init__ (self, name, data_type)
 コンストラクタ [詳解]
 
def __del__ (self, PortBase=OpenRTM_aist.PortBase)
 デストラクタ [詳解]
 
def init (self, prop)
 プロパティの初期化 [詳解]
 
def read (self)
 RTObject_impl::readAll()から呼ばれる仮想関数 [詳解]
 
def properties (self)
 プロパティを取得する [詳解]
 
def connectors (self)
 Connector を取得 [詳解]
 
def getConnectorProfiles (self)
 ConnectorProfile を取得 [詳解]
 
def getConnectorIds (self)
 ConnectorId を取得 [詳解]
 
def getConnectorNames (self)
 Connectorの名前を取得 [詳解]
 
def getConnectorById (self, id)
 ConnectorProfileをIDで取得 [詳解]
 
def getConnectorByName (self, name)
 ConnectorProfileを名前で取得 [詳解]
 
def getConnectorProfileById (self, id, prof)
 ConnectorProfileをIDで取得 [詳解]
 
def getConnectorProfileByName (self, name, prof)
 ConnectorProfileを名前で取得 [詳解]
 
def connect (self, connector_profile)
 [CORBA interface] Port の接続を行う [詳解]
 
def activateInterfaces (self)
 InPortを activates する [詳解]
 
def deactivateInterfaces (self)
 全ての Port のインターフェースを deactivates する [詳解]
 
def addConnectorDataListener (self, listener_type, listener, autoclean=True)
 ConnectorDataListener リスナを追加する [詳解]
 
def removeConnectorDataListener (self, listener_type, listener)
 ConnectorDataListener リスナを削除する [詳解]
 
def addConnectorListener (self, listener_type, listener, autoclean=True)
 ConnectorListener リスナを追加する [詳解]
 
def removeConnectorListener (self, listener_type, listener)
 ConnectorDataListener リスナを削除する [詳解]
 
def publishInterfaces (self, cprof)
 Interface情報を公開する [詳解]
 
def subscribeInterfaces (self, cprof)
 Interfaceに接続する [詳解]
 
def unsubscribeInterfaces (self, connector_profile)
 Interfaceへの接続を解除する [詳解]
 
def initProviders (self)
 InPort provider の初期化void initProviders();.
 
def initConsumers (self)
 OutPort consumer の初期化void initConsumers();.
 
def createProvider (self, cprof, prop)
 InPort provider の生成 [詳解]
 
def createConsumer (self, cprof, prop)
 OutPort consumer の生成 [詳解]
 
def createConnector (self, cprof, prop, provider_=None, consumer_=None)
 InPortPushConnector の生成 [詳解]
 
- 基底クラス OpenRTM_aist.PortBase.PortBase に属する継承公開メンバ関数
def __init__ (self, name=None)
 コンストラクタ [詳解]
 
def __del__ (self)
 デストラクタ [詳解]
 
def get_port_profile (self)
 [CORBA interface] PortProfileを取得する [詳解]
 
def getPortProfile (self)
 PortProfile を取得する。 [詳解]
 
def get_connector_profiles (self)
 [CORBA interface] ConnectorProfileListを取得する [詳解]
 
def get_connector_profile (self, connector_id)
 [CORBA interface] ConnectorProfile を取得する [詳解]
 
def connect (self, connector_profile)
 [CORBA interface] Port の接続を行う [詳解]
 
def notify_connect (self, connector_profile)
 [CORBA interface] Port の接続通知を行う [詳解]
 
def disconnect (self, connector_id)
 [CORBA interface] Port の接続を解除する [詳解]
 
def notify_disconnect (self, connector_id)
 [CORBA interface] Port の接続解除通知を行う [詳解]
 
def disconnect_all (self)
 [CORBA interface] Port の全接続を解除する [詳解]
 
def setName (self, name)
 Port の名前を設定する [詳解]
 
def getName (self)
 Port の名前を取得するconst char* PortBase::getName() const.
 
def getProfile (self)
 PortProfileを取得する [詳解]
 
def setPortRef (self, port_ref)
 Port のオブジェクト参照を設定する [詳解]
 
def getPortRef (self)
 Port のオブジェクト参照を取得する [詳解]
 
def setOwner (self, owner)
 Port の owner の RTObject を指定する [詳解]
 
def setOnPublishInterfaces (self, on_publish)
 インターフェースを公開する際に呼ばれるコールバックをセットする [詳解]
 
def setOnSubscribeInterfaces (self, on_subscribe)
 インターフェースを取得する際に呼ばれるコールバックをセットする [詳解]
 
def setOnConnected (self, on_connected)
 接続完了時に呼ばれるコールバックをセットする [詳解]
 
def setOnUnsubscribeInterfaces (self, on_subscribe)
 インターフェースを解放する際に呼ばれるコールバックをセットする [詳解]
 
def setOnDisconnected (self, on_disconnected)
 接続解除に呼ばれるコールバックをセットする [詳解]
 
def setPortConnectListenerHolder (self, portconnListeners)
 PortConnectListeners のホルダをセットする [詳解]
 
def publishInterfaces (self, connector_profile)
 Interface 情報を公開する(サブクラス実装用) [詳解]
 
def connectNext (self, connector_profile)
 次の Port に対して notify_connect() をコールする [詳解]
 
def disconnectNext (self, connector_profile)
 次の Port に対して notify_disconnect() をコールする [詳解]
 
def subscribeInterfaces (self, connector_profile)
 Interface 情報を取得する(サブクラス実装用) [詳解]
 
def unsubscribeInterfaces (self, connector_profile)
 Interface の接続を解除する(サブクラス実装用) [詳解]
 
def setConnectionLimit (self, limit_value)
 接続の最大数を設定する。 [詳解]
 
def isEmptyId (self, connector_profile)
 ConnectorProfile の connector_id フィールドが空かどうか判定 [詳解]
 
def getUUID (self)
 UUIDを生成する [詳解]
 
def setUUID (self, connector_profile)
 UUIDを生成し ConnectorProfile にセットする [詳解]
 
def isExistingConnId (self, id_)
 id が既存の ConnectorProfile のものかどうか判定する [詳解]
 
def findConnProfile (self, id_)
 id を持つ ConnectorProfile を探す [詳解]
 
def findConnProfileIndex (self, id_)
 id を持つ ConnectorProfile を探す [詳解]
 
def updateConnectorProfile (self, connector_profile)
 ConnectorProfile の追加もしくは更新 [詳解]
 
def eraseConnectorProfile (self, id_)
 ConnectorProfile を削除する [詳解]
 
def appendInterface (self, instance_name, type_name, pol)
 PortInterfaceProfile に インターフェースを登録する [詳解]
 
def deleteInterface (self, name, pol)
 PortInterfaceProfile からインターフェース登録を削除する [詳解]
 
def addProperty (self, key, value)
 PortProfile の properties に NameValue 値を追加する [詳解]
 
def appendProperty (self, key, value)
 PortProfile の properties に NameValue 値を要素に追加する [詳解]
 
def updateConnectors (self)
 存在しないポートをdisconnectする。 [詳解]
 
def checkPorts (self, ports)
 ポートの存在を確認する。 [詳解]
 
- 基底クラス OpenRTM_aist.DataPortStatus.DataPortStatus に属する継承公開メンバ関数
def toString (status)
 DataPortStatus リターンコードを文字列に変換 [詳解]
 

その他の継承メンバ

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

詳解

InPort クラス

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

から
0.2.0

構築子と解体子

def OpenRTM_aist.InPort.InPort.__init__ (   self,
  name,
  value,
  buffer = None,
  read_block = False,
  write_block = False,
  read_timeout = 0,
  write_timeout = 0 
)

コンストラクタ

コンストラクタ。

引数
self
nameInPort 名。InPortBase:name() により参照される。
valueこの InPort にバインドされる変数
read_block読込ブロックフラグ。 データ読込時に未読データがない場合、次のデータ受信までブロックする かどうかを設定(デフォルト値:False)
write_block書込ブロックフラグ。 データ書込時にバッファがフルであった場合、バッファに空きができる までブロックするかどうかを設定(デフォルト値:False)
read_timeout読込ブロックを指定していない場合の、データ読取タイム アウト時間(ミリ秒)(デフォルト値:0)
write_timeout書込ブロックを指定していない場合の、データ書込タイム アウト時間(ミリ秒)(デフォルト値:0)

メソッド詳解

def OpenRTM_aist.InPort.InPort.isEmpty (   self)

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

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

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

bool isEmpty()

def OpenRTM_aist.InPort.InPort.isNew (   self)

最新データか確認

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

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

bool isNew()

def OpenRTM_aist.InPort.InPort.name (   self)

ポート名称を取得する。

ポート名称を取得する。

引数
self
戻り値
ポート名称

const char* name()

def OpenRTM_aist.InPort.InPort.read (   self)

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

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

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

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

引数
self
on_read設定対象コールバックオブジェクト
def OpenRTM_aist.InPort.InPort.setOnReadConvert (   self,
  on_rconvert 
)

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

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

引数
self
on_rconvert設定対象コールバックオブジェクト
def OpenRTM_aist.InPort.InPort.update (   self)

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

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

引数
self

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