クラス OpenRTM_aist.InPort.InPort

InPort クラス. [詳細]

OpenRTM_aist.InPort.InPortに対する継承グラフ
OpenRTM_aist.InPortBase.InPortBase OpenRTM_aist.PortBase.PortBase OpenRTM_aist.DataPortStatus.DataPortStatus

すべてのメンバ一覧

Public メソッド

def __init__
 コンストラクタ
def __del__
def name
 ポート名称を取得する。
def isNew
 最新データか確認
def isEmpty
 バッファが空かどうか確認する
def read
 DataPort から値を読み出す.
def update
 バインドされた変数に InPort バッファの最新値を読み込む
def setOnRead
 InPort バッファへデータ読み込み時のコールバックの設定.
def setOnReadConvert
 InPort バッファへデータ読み出し時のコールバックの設定.

説明

InPort クラス.

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

から:
0.2.0

メソッド

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

デストラクタ

OpenRTM_aist.InPortBase.InPortBaseを再定義しています。

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

コンストラクタ

コンストラクタ。

引数:
self 
name InPort 名。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()

OpenRTM_aist.InPortBase.InPortBaseを再定義しています。

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 

このクラスの説明は次のファイルから生成されました:
OpenRTM-aist-1.1.0-Pythonに対してMon Mar 2 14:14:07 2015に生成されました。  doxygen 1.6.3