5.1 CMake
ここまでの作業でConsoleOutFloatの雛型が生成されました。
次の作業としてCMakeを利用してビルド環境のConfigureを行います。
[3.1 CMake]と同じ手順でCMakeを行ってください。
5.2 ひな型作成時の宣言とプログラムの変数の関係
OpenRTPで設定したポート名と変数名は、C++のプログラムでは以下の変数名で定義されます。
InPort |
ポート名 |
m_変数名In |
変数名 |
m_変数名 |
OutPort |
ポート名 |
m_変数名Out |
変数名 |
m_変数名 |
ポート名はビルドビューで使用されます。
そのため、このプログラムでは以下の変数名で定義されています。
ポート名 |
m_infloatIn |
変数名 |
m_infloat |
今回OpenRTPで指定したポートの変数はRTC::TimedFloat型になります。
RTC::TimedFloat型は、以下の構造体で定義されています。
データ型 |
変数 |
意味 |
float |
data |
floatの値 |
RTC::time |
tm |
タイムスタンプ |
floatの値を代入するには、以下のように記述します。
5.3 VisualStudioでソースコードを編集
先ほど指定したbuildディレクトリの中のConsoleOutFloat.slnをダブルクリックしてVisual Studioを起動します。
起動後、ConsoleOutFloat.cppを開き、onActivated(), onDeactivated(), onExecute()を実装します。
onActivated()
RTC::ReturnCode_t ConsoleOutFloat::onActivated(RTC::UniqueId ec_id)
{
std::cout << "ConsoleOutFloat onActivated"<< std::endl;
return RTC::RTC_OK;
}
onDeactivated()
RTC::ReturnCode_t ConsoleOutFloat::onDeactivated(RTC::UniqueId ec_id)
{
std::cout << "ConsoleOutFloat onDeactivated" << std::endl;
return RTC::RTC_OK;
}
onExecute()
RTC::ReturnCode_t ConsoleOutFloat::onExecute(RTC::UniqueId ec_id)
{
if (m_infloatIn.isNew())
{
m_infloatIn.read();
std::cout << "float number :" << m_infloat.data << std::endl;
}
return RTC::RTC_OK;
}
編集を終えたら保存をしてください。
保存後、右クリックでコンポーネントのビルドをするか、画面上部の[BUILD]から[Build Solution]を選択してビルドをしてください。ビルドが終了すればコンポーネントが生成されます。
C:\rtcws\ConsoleOutFloat\build\src\Debug に生成されたConsoleOutFloatComp.exeをダブルクリックで起動させます。
問題なく起動できることを確認してください。