ロボット、千葉ロッテマリーンズについていいかげんなことを書きます。
×
[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
今日でプロジェクトページを作ってから一か月が経ちました。
予想通りコメントはありませんでした。そろそろ、なりすまし用の別アカウントを作りたいと思います。
まあそれは嘘ですけど。何の意味もないですから。
前の目標変更の記事を見てまさか本気でやると思った人はいないよなあとちょっと不安になってきました。
今回はとりあえず適当にWebブラウザでボタンを押すとRTCのサービスポートのサービスを実行するようなプログラムを作ってみます。
実装方法は違いますが、RTMコンテスト2013の作品のRobotControlBrowser RTCの劣化版ぐらいな感じで思ってくれていいです。
今回のプログラムはここからダウンロードできます。
使用方法は、
CGITestProvider.pyもサービスポートがあるだけで特に変わった所はないので説明は省略します。
cgi-bin\CGICompConsumer.pyだけを説明します。
まず、
value = form['value'].value
はCGIRTC\CGIRTC.jsのobj.send(str);で入力したデータを取得しています。
まず、以下のコードでサービスポートを作成しています。
適当な説明ですが今日はこれぐらいにしておきます。
RobotControlBrowser RTCの実装方法に比べて特に利点はないので、余程の理由がない限りはあちらの実装方法を参考にしてください。
次はOmniORB関連の事をやると思います。
にほんブログ村のロボットのカテゴリから
全然人が来ない・・・
予想通りコメントはありませんでした。そろそろ、なりすまし用の別アカウントを作りたいと思います。
まあそれは嘘ですけど。何の意味もないですから。
前の目標変更の記事を見てまさか本気でやると思った人はいないよなあとちょっと不安になってきました。
今回はとりあえず適当にWebブラウザでボタンを押すとRTCのサービスポートのサービスを実行するようなプログラムを作ってみます。
実装方法は違いますが、RTMコンテスト2013の作品のRobotControlBrowser RTCの劣化版ぐらいな感じで思ってくれていいです。
今回のプログラムはここからダウンロードできます。
使用方法は、
- testserver.pyを実行して簡易サーバーを起動する
- CGITest\CGITestProvider.pyを実行してRTCを起動する
- RTCをアクティブにする
- WebブラウザでURLにhttp://localhost:8000と入力する
- CGITest.set関数を呼び出す場合、テキストボックスに文字列を入力して入力ボタンを押す
- CGITest.get関数を呼び出す場合、取得ボタンを押す
CGITestProvider.pyもサービスポートがあるだけで特に変わった所はないので説明は省略します。
cgi-bin\CGICompConsumer.pyだけを説明します。
まず、
form = cgi.FieldStorage()
cmd = form['cmd'].value
・・・cmd = form['cmd'].value
value = form['value'].value
はCGIRTC\CGIRTC.jsのobj.send(str);で入力したデータを取得しています。
まず、以下のコードでサービスポートを作成しています。
_mycon = OpenRTM_aist.CorbaConsumer(interfaceType=CGITest.mCGITest)
_cpCon = OpenRTM_aist.CorbaPort("CGITest")
_cpCon.registerConsumer("mCGITest", "CGITest::mCGITest", _mycon)
そして、起動したCGITestProvider0.rtcをrtctreeにより取得しています。tree = rtctree.tree.RTCTree(servers='localhost', orb=orb)
rtc = tree.get_node(['/', 'localhost','CGITestProvider0.rtc'])
さらにサービスポートを接続しています。e_port = rtc.get_port_by_name("CGITest")._obj
conprof = RTC.ConnectorProfile("connector0", "", [e_port,_cpCon.getPortRef()], [])
ret = e_port.connect(conprof)
最後に以下のようにサービスを呼び出しています。if cmd == "set":
value = form['value'].value
_mycon._ptr().set(value)
elif cmd == "get":
value = _mycon._ptr().get()
適当な説明ですが今日はこれぐらいにしておきます。
RobotControlBrowser RTCの実装方法に比べて特に利点はないので、余程の理由がない限りはあちらの実装方法を参考にしてください。
次はOmniORB関連の事をやると思います。
にほんブログ村のロボットのカテゴリから
全然人が来ない・・・
PR
この記事にコメントする