ロボット、千葉ロッテマリーンズについていいかげんなことを書きます。
×
[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
なんであんなに早く作品投稿してしまったんだろうか?
ずっと一人なのでそろそろ恥ずかしくなってきたのですが。
もしかしてまだ作品投稿してはいけなかったとか?
いやそれならメールを送ったときに指摘されると思うので違うか。
まだ先の話なのですが、発表当日は賞金の振り込みのために通帳の口座番号を控えておいてください。後でFAXを送る羽目になります。僕も一応準備はして行きます。ビギナー限定賞とかもらえるかもしれないので。
今回も特に書くことがありません。
とりあえずInPortでread関数を使わずにコネクタ取得→Buffer取得からのデータ取得をするプログラムを書いてみたので今回はこれで埋めます。
このRTCはTimedLong型のInPortを持っています。
onExecuteで、
関数の詳しい説明はC:\Python2X\Lib\site-packages\OpenRTM_aist\BufferBase.pyに書いてあるのでそちらを参考にしたほうが良いと思います。
まあでもデータは読みだしたいけど位置は進めたくないなんて状況はあまりなさそうなのでマメ知識ぐらいな感じで覚えておくぐらいで良いかもしれません。
にほんブログ村のロボットのカテゴリから
全然人が来ない・・・
ずっと一人なのでそろそろ恥ずかしくなってきたのですが。
もしかしてまだ作品投稿してはいけなかったとか?
いやそれならメールを送ったときに指摘されると思うので違うか。
まだ先の話なのですが、発表当日は賞金の振り込みのために通帳の口座番号を控えておいてください。後でFAXを送る羽目になります。僕も一応準備はして行きます。ビギナー限定賞とかもらえるかもしれないので。
今回も特に書くことがありません。
とりあえずInPortでread関数を使わずにコネクタ取得→Buffer取得からのデータ取得をするプログラムを書いてみたので今回はこれで埋めます。
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import sys
import OpenRTM_aist
import RTC
bufftest_spec = ["implementation_id", "BuffTest",
"type_name", "BuffTest",
"description", "Console input component",
"version", "1.0",
"vendor", "sample",
"category", "example",
"activity_type", "DataFlowComponent",
"max_instance", "10",
"language", "Python",
"lang_type", "script",
""]
class BuffTest(OpenRTM_aist.DataFlowComponentBase):
def __init__(self, manager):
OpenRTM_aist.DataFlowComponentBase.__init__(self, manager)
self._data = RTC.TimedLong(RTC.Time(0,0),0)
self._inport = OpenRTM_aist.InPort("in", self._data)
def onInitialize(self):
self.registerInPort("in", self._inport)
return RTC.RTC_OK
def onExecute(self, ec_id):
sys.stdin.readline()
print self._inport.connectors()[0].getBuffer().length()
print self._inport.connectors()[0].getBuffer().get()
self._inport.connectors()[0].getBuffer().advanceRptr(1)
#self._inport.connectors()[0].getBuffer().put(RTC.TimedLong(RTC.Time(0,0),34))
#value = [0]
#self._inport.connectors()[0].getBuffer().read(value)
#print value[0]
return RTC.RTC_OK
def MyModuleInit(manager):
profile = OpenRTM_aist.Properties(defaults_str=bufftest_spec)
manager.registerFactory(profile,
BuffTest,
OpenRTM_aist.Delete)
comp = manager.createComponent("BuffTest")
def main():
mgr = OpenRTM_aist.Manager.init(sys.argv)
mgr.setModuleInitProc(MyModuleInit)
mgr.activateManager()
mgr.runManager()
if __name__ == "__main__":
main()
このRTCはTimedLong型のInPortを持っています。
onExecuteで、
- Buffer長の表示(self._inport.connectors()[0].getBuffer().length())
- Bufferからデータを読みだして表示(self._inport.connectors()[0].getBuffer().get())
- Bufferの読み出し位置のポインタを1進める(self._inport.connectors()[0].getBuffer().advanceRptr(1))
関数の詳しい説明はC:\Python2X\Lib\site-packages\OpenRTM_aist\BufferBase.pyに書いてあるのでそちらを参考にしたほうが良いと思います。
まあでもデータは読みだしたいけど位置は進めたくないなんて状況はあまりなさそうなのでマメ知識ぐらいな感じで覚えておくぐらいで良いかもしれません。
にほんブログ村のロボットのカテゴリから
全然人が来ない・・・
PR
この記事にコメントする