PC-OP-RS1 > Rubyからのコントロールをしよう

Last updated : 06/07/2008
Written by Yasuhiro ISHII(石井 康寛) [email protected]

はじめに・概要

赤外線学習リモコンを使用して、簡単なコードで動作シーケンスを組み、周囲のリモコン使用機器の制御自動化や、特定のシステムの動作検証を実施する事を目的としたライブラリを公開します。

ここでは、上記の目的を手軽に実現する為、Rubyのクラスライブラリとして実現させることにしました。

制御ドライバには、PC-OP-RS1-CONTROL.DLLを使用する為、Windowsベースシステム専用です。

ダウンロード

#ref error :ご指定のファイルが見つかりません。ファイル名を確認して、再度指定してください。 (pc-op-rs1-ruby.zip)

クラスライブラリ RemoController.rb

このスクリプトは、ユーザーがPC-OP-RS1を使用して自在に赤外線コマンドのシーケンスを組むために、Rubyを使用する際のインタフェースです。

サンプルコード

require 'RemoController'

# インスタンスの作成
remo = RemoController.new()

# モジュールのバージョン取得
v_maj,v_min = remo.GetModuleVersion
printf("DLLバージョン : %d.%d\n",v_maj,v_min)

# ポートのオープン(COM2)
remo.Open(2)

if(remo.Led() == RemoController::RET_OK) then
	printf("コール成功\n")
else
	printf("コール失敗\n")
end

# 格納用バッファを確保
buff = remo.GetIrBuff()

# リモコンコードを受信する
remo.Receive(buff)

# 送信をするループ
while(1)
	printf("Press any key to transmit")
	gets
	# Ch.0の出力ポートから出力する
	remo.Transmit(0,buff)
end
remo.Close()

RemoControllerメソッド一覧

Open

Led

Receive

GetModuleVersion

Close

SetTimeOut

Transmit

GetIrBuff

Ruby上で240バイト長のリモコンコマンドデータ格納用バッファを取得するインターフェースです。

戻り値一覧

全てのメソッドは以下の戻り値を持ちます。

RemoController::RET_OK		正常終了
RemoController::RET_ERR		異常終了
RemoController::RET_TIMEOUT		タイムアウト

サンプルコード

サンプルコードは、COM2を使用する事を前提にコーディングしています。
各自の環境に合わせてポート番号を変更して下さい。

sample01.rb リモコンのデータを受信し、その次にそのまま受信したバッファ内容を使用してリモコンコマンド送出を行います
sample02.rb リモコンのデータを受信し、その後データ列としてRubyソース中に埋め込む為のハッシュ定義形式にて表示する。この表示コードをソース中に張り付けることで、予め記録しておいた赤外線コマンドを任意のタイミングで送出する事ができます
sample03.rb sample02.rbを使用して取得したテーブルを元に、リモコンコードの送出を行う。サンプルでは、ソニーのDVDプレーヤーの電源を制御しています
sample04.rb 別なハッシュテーブルとして定義した、コイズミの照明器具とパナソニックのテレビをシーケンス制御するサンプルです

アクセスカウント(累計) : - アクセスカウント(本日) : - アクセスカウント(昨日) : -

最終更新:2014年01月31日 23:48