ExcelRTCのチュートリアル(その2)

全体の手順

まず、RTCを起動する前にネームサービス、RTシステムエディタの起動を行います。その後RTCを起動します。次にデータポートの追加、各種設定を行い、サンプルコンポーネントを用いてDataInPortで読み込んだデータを数式で計算後DataOutPortから出力を行います。

前準備

このページに従ってネームサーバー、RTシステムエディタの起動を行ってください。

ExcelRTCの起動

チュートリアル1と同じExcelControlpy.py(もしくはdistフォルダ内のExcelControlpy.exe)を起動してください。

テスト用RTCの起動

ExcelRTCがどのような動作をするか確認するためにOpenRTM-aist付属のサンプルRTCを起動します。
ConsoleInComp.exeとConsoleOutComp.exeを起動してください。

OpenRTM-aist 1.1

ConsoleInはコンソールに入力された数値をDataOutPort(TimedLong型)から出力するRTCです。ConsoleOutはDataInPort(TimedLong型)で読み込んだデータをコンソールに表示するRTCです。

データポートとセルの関連付け

まず、それぞれのデータポートとセルを関連付けることでセルの値の入出力を行えるようにします。

まずはツリー表示ボタンを押してください。

そして表示されたツリーからConsoleIn0outを選択してください。
そして列の移動のチェックボックスのチェックを外して作成ボタンを押してください。
これでチュートリアル1のようにデータを入力するたびに列を移動することはなくなりました。

次にConsoleOut0のinを選択して行番号をCに、列を移動させるかのチェックボックスのチェックを外して作成ボタンを押してください。

最後にConsoleOut0のinを選択した状態でInPortコンボボックスよりConsoleIn0outを選択して関連付けボタンを押してください。

これで作成したデータポート同士が関連付けられて、DataInPortと接続したデータポートよりデータが書き込まれたときのみDataOutPortからのデータの出力を行うようになります。

ダイアログを閉じてください。Sheet1を見てみるとどのセルがデータポートと関連付けられたのか記入されています。

A2のセルはそのままでも構いませんが、C1のセルには数式を入力してください。とりあえず単純にA2のセルの値を2倍にするだけの数式を書いてみます。

今は計算できていませんが、DataInPortから数値を読み込んでA2のセルに書き込むと計算結果が正常に表示されるようになります。

RTSystemEditorでExcelControl0とConsoleIn0、ConsoleOut0をDiagramに表示してください。

次にRTCをアクティブにしてください。この時点では特に変化はありませんがConsoleInのコンソールより数値を入力するとセルの値が変化して、ConsoleOutのコンソールの入力した数値の2倍の値が表示されます

コネクタコールバックで処理しているためデータが書き込まれたときのみしか処理を行いません。

今回は簡単な数式でしたがより複雑な数式を用いることでシミュレーションなどに応用ができるかもしれません。