RTC_OmniWheelの起動方法
2009/02/19 初版　清水正晴＠fuRo

RTCの起動の仕方には2通りあります

１）RTC_OmniWheelCompを実行する方法
と
２）rtcdでRTC_OmniWheelをロードしてクリエートする方法
です

１）RTC_OmniWheelCompを実行する方法
./RTC_OmniWheelComp -f rtc.conf
-f rtc.confは読み込む設定ファイルがrtc.confの場合は省略できますが
それ以外のファイル名の場合は-f rtc.conf.rtのように指定してやる必要があります

RTC_OmniWheelCompはリアルタイム処理をするようにコンパイルしているため
ソースを変更しない限りリアルタイム処理を止めることができません
これをコンパイルなしにリアルタイム処理の有効化・無効化を選択できる方法が
２）のrtcdを利用する方法です

２）rtcdでRTC_OmniWheelをロードしてクリエートする方法
rtcdというマネージャのみの実行するデーモンがあります
これはrtc.confに記述されている

manager.modules.abs_path_allowed: yes
manager.modules.load_path: ./ 
manager.modules.preload: RTC_OmniWheel.so, PosixRealTimeExecutionContext.so
manager.components.precreate: RTC_OmniWheel

の設定から
manager.modules.preload:
で設定したモジュールをロードして
manager.components.precreate:
で設定したコンポーネントを生成してくれます

さらに
manager.modules.preload: RTC_OmniWheel.so, PosixRealTimeExecutionContext.so
のようにPosixRealTimeExecutionContext.soを追加し
exec_cxt.periodic.type: PosixRealTimeExecutionContext
を指定するとリアルタイム処理を有効化してくれます
逆にコメントアウトするとリアルタイム処理を無効化ができます

上記のようにリアルタイム処理を行うモジュールも選択的にロードできます
manager.modules.preload: RTC_OmniWheel.so, PosixRealTimeExecutionContext.so
とか
manager.modules.preload: RTC_OmniWheel.so, PosixRealTimeExecutionContext.so.Nomlock
ですね

PosixRealTimeExecutionContext.so.Nomlock
は、mlockall関数を省略したバージョンでこちらを選択するとルートになって実行する
必要がなくなります（sudoの必要なし）

以上をまとめると

A.　mlockallが有効でリアルタイム処理を行う場合

$sudo ./RTC_OmniWheelComp -f rtc.conf.rt

rtc.confの内容で下記を記述し
#下記オプションのコメントアウトでリアルタイム処理無効
exec_cxt.periodic.type: PosixRealTimeExecutionContext
#PosixRealTimeExecutionContext.so.Nomlockの有効化でsudoの必要無し
manager.modules.preload: RTC_OmniWheel.so, PosixRealTimeExecutionContext.so
manager.components.precreate: RTC_OmniWheel

$sudo rtcd

B.　mlockallを無効でリアルタイム処理を行う場合(ルート権限がいらないのでおすすめ)

rtc.confの内容で下記を記述し
#下記オプションのコメントアウトでリアルタイム処理無効
exec_cxt.periodic.type: PosixRealTimeExecutionContext
#PosixRealTimeExecutionContext.so.Nomlockの有効化でsudoの必要無し
manager.modules.preload: RTC_OmniWheel.so, PosixRealTimeExecutionContext.so.Nomlock
manager.components.precreate: RTC_OmniWheel

$rtcd

C. リアルタイム処理自体を無効にして実行する場合

rtc.confの内容で下記を記述し
#下記オプションのコメントアウトでリアルタイム処理無効
#exec_cxt.periodic.type: PosixRealTimeExecutionContext
#PosixRealTimeExecutionContext.so.Nomlockの有効化でsudoの必要無し
manager.modules.preload: RTC_OmniWheel.so, PosixRealTimeExecutionContext.so.Nomlock
manager.components.precreate: RTC_OmniWheel

$rtcd

となります
