Sirius -旧ブログ、更新されません-

<< 前のページ | 次のページ >>

2011年1月21日(金) 18:45

KURO-RS 用 daemon その4

KURO-RS が応答しなくなってしまうのは KURO-RS が送信や受信の待ち状態になっているようです。受信待ちをキャンセルする c コマンドがありますが、このコマンドで全ての状態を解除は出来ないようです。調べていくと LED を点灯させる i コマンドは、送信キャンセルコマンドも兼ねるようです。試しに、デバイスを開いた直後に i コマンドを使ってみたところ応答がなくなることはなくなりました。そこで、初期化処理として、i コマンドを使い、i コマンドが失敗した場合に c コマンドを使うようにしました。

written by sirius [KURO-RS] [この記事のURL] [コメントを書く] [コメント(0)] [TB(0)]

この記事へのトラックバックPingURL

2011年1月20日(木) 21:13

赤外線信号の解析その3

リモコン信号には製品付属のリモコンでは出せない保守用の信号や隠しコマンドが有る場合があるそうです。そこで KURO-RS を使い任意のデータを送信できるプログラムを作成しようと思います。HDUSF の信号を見るとデータの後にもパターンがあります。NEC フォーマットを見るとリピートが有ります。ちょっと形が違うようですがこれも含めて信号を作成したいと思います。

ついでなのでほかのリモコンの信号も調べてみました。ちょっと長くなりますが、信号をダンプしてみます。



・HDUSF の Power ボタン

11111111 11111111 11111111 11111111 11111111 11111111 11111111 11111111

11111111 11111111 11111111 11100000 00000000 00000000 00000000 00000000

00000000 11111100 00011111 10000000 00000000 00111111 00000111 11100000

00000000 00001111 10000001 11111000 00111111 00000011 11100000 01111100

00000000 00000001 11111000 00000000 00000011 11110000 00000000 00001111

11000000 11111000 00000000 00000011 11110000 00000000 00000111 11000000

00000000 00011111 10000000 00000000 00111110 00000000 00000000 11111100

00001111 10000001 11111000 00111111 00000111 11100000 01111100 00001111

11000000 00000000 00111111 00000011 11100000 00000000 00001111 11000000

00000000 00011111 00000000 00000000 01111110 00000000 00000000 11111100

00000000 00000011 11110000 00000000 00000111 11100000 11111100 00000000

00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

00000000 00000000 00000000 00000000 00000000 00000000 00000000 00111111

11111111 11111111 11111111 11111111 11111111 11111111 11111111 11111111

11111111 11111111 11110000 00000000 00000000 00011111 10000000 00000000

00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000



・HDMI セレクター (SDHSW-4SV) の Power ボタン

11111111 11111111 11111111 11111111 11111111 11111111 11111111 11111111

11111111 11111111 11111111 11000000 00000000 00000000 00000000 00000000

00000011 11110000 00000000 00001111 11000000 00000000 00011111 00000011

11110000 01111110 00001111 11000000 00000000 00111111 00000011 11100000

01111110 00000000 00000001 11111000 00111111 00000000 00000000 11111100

00001111 11000001 11111000 00111111 00000000 00000000 11111100 00001111

10000000 00000000 00111110 00000111 11100000 11111100 00011111 10000001

11110000 00111111 00000111 11100000 11111100 00011111 10000000 00000000

01111110 00000000 00000000 11111000 00000000 00000011 11110000 00000000

00001111 11000000 00000000 00111111 00000000 00000000 11111110 00000000

00000001 11111000 00000000 00000000 00000000 00000000 00000000 00000000

00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

00000000 00000000 00000000 00000000 00000000 00000111 11111111 11111111

11111111 11111111 11111111 11111111 11111111 11111111 11111111 11111111

11111110 00000000 00000000 00000111 11100000 00000000 00000000 00000000

00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000



・Buffalo LT-H91DTV の Power ボタン

11111111 11111111 11111111 11111111 11111111 11111111 11111111 11111111

11111111 11111111 11111111 11000000 00000000 00000000 00000000 00000000

00000001 11111000 00111111 00000111 11100000 00000000 00011111 10000000

00000000 00111110 00000111 11100000 11111100 00011111 10000011 11110000

00000000 00001111 11000000 00000000 00011111 00000011 11110000 01111110

00000000 00000001 11111000 00000000 00000111 11100000 00000000 00001111

10000001 11111000 00000000 00000111 11100000 11111100 00000000 00000011

11110000 00000000 00000111 11000000 11111100 00011111 10000011 11110000

00000000 00001111 11000001 11111000 00000000 00000011 11100000 01111110

00001111 11000000 00000000 00111111 00000000 00000000 11111100 00000000

00000001 11110000 00111110 00000000 00000000 00000000 00000000 00000000

00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

00000000 00000000 00000000 00000000 00000000 00000000 00111111 11111111

11111111 11111111 11111111 11111111 11111111 11111111 11111111 11111111

11111111 11100000 00000000 00000000 01111110 00000000 00000000 00000000

00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000



・Transcend のフォトフレーム PF720 の Power ボタン

11111111 11111111 11111111 11111111 11111111 11111111 11111111 11111111

11111111 11111111 11111111 11100000 00000000 00000000 00000000 00000000

00000001 11111000 00011111 10000011 11110000 01111110 00000111 11000000

11111100 00000000 00000011 11110000 00000000 00001111 11000000 11111100

00000000 00000011 11110000 00000000 00001111 11000000 00000000 00111111

10000000 00000000 01111110 00000000 00000001 11111000 00111111 00000011

11110000 00000000 00001111 11000001 11111000 00000000 00000111 11110000

01111110 00001111 11000001 11111000 00011111 10000011 11110000 01111110

00000000 00000001 11111100 00011111 10000000 00000000 01111110 00000000

00000001 11111000 00000000 00000011 11110000 00000000 00001111 11000000

00000000 00111111 00000000 00000000 11111110 00000000 00000000 00000000

00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

00000000 00000000 00000000 00000000 00000000 00000000 00011111 11111111

11111111 11111111 11111111 11111111 11111111 11111111 11111111 11111111

11111111 11111000 00000000 00000000 00011111 10000000 00000000 00000000

00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000



・カノープスの MTV シリーズ用のリモコン CRM-1 の Power ボタン

11111000 01111001 11100011 10001110 00001111 00011100 00000111 10000000

11100011 10000111 00011100 01110000 11100011 10000011 11000111 00011100

01110000 00000011 10000000 11110001 11000111 00000011 10001110 00000000

00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

00000000 00000000 00000000 00000000 00000000 11100000 11110001 11000111

00011100 00001110 00111000 00000111 00000001 11000111 10001110 00111000

11110001 11000111 00000011 10001110 00111000 11110000 00000111 00000000

11100011 10001110 00000111 00011100 00000000 00000000 00000000 00000000

00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000



・ビクター ホームシアターサウンドシステム TH-BA1 の Power ボタン

11111111 11111111 11111111 11111111 11111111 11111111 11111111 11111111

11111111 11111111 11111100 00000000 00000000 00000000 00000000 00000000

11111000 00000000 00001111 11000000 00000000 01111100 00001111 10000011

11100000 01111100 00000000 00000111 11100000 11111000 00000000 00000111

11000000 00000000 00111110 00000000 00000011 11110000 00000000 00011111

00000011 11100000 00000000 00111111 00000111 11000001 11111000 00111110

00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

00000000 00000000 01111100 00000000 00000011 11100000 00000000 00011111

00000111 11000000 11111000 00111110 00000000 00000001 11110000 01111110

00000000 00000011 11100000 00000000 00011111 00000000 00000000 11111000

00000000 00001111 11000001 11110000 00000000 00001111 10000011 11110000

01111100 00011111 10000000 00000000 00000000 00000000 00000000 00000000

00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

00000000 00000000 00000000 00000000 01111110 00000000 00000011 11110000

00000000 00011111 00000011 11100000 11111000 00011111 00000000 00000001

11111000 00111110 00000000 00000001 11110000 00000000 00011111 10000000

00000000 11111100 00000000 00000111 11000000 11111000 00000000 00001111

11000001 11110000 01111110 00001111 10000000 00000000 00000000 00000000

00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

00000000 00000000 00000000 00000000 00000000 00000000 00111110 00000000

00000001 11110000 00000000 00011111 10000011 11100000 01111100 00011111

00000000 00000000 11111000 00111111 00000000 00000001 11110000 00000000

00001111 10000000 00000000 01111100 00000000 00000111 11100000 11111000

00000000 00000111 11000001 11111000 00111110 00001111 11000000 00000000

00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000



・ユニデンの地デジチューナー DT-100HDMI の Power ボタン

11111111 11111111 11111111 00000000 00011111 00000011 11100000 00000000

00001111 11000000 11111000 00000000 00000011 11100000 01111110 00001111

11000000 11111000 00000000 00000011 11110000 01111110 00001111 11000000

00000000 00011111 00000011 11100000 01111110 00001111 11000000 11111000

00011111 00000000 00000000 00000000 00000000 00000000 00000000 00000000

00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

00000000 00000000 00000000 00000000 00000000 00000011 11111111 11111111

11110000 00000000 11111000 00011111 00000000 00000000 01111110 00000111

11000000 00000000 00011111 00000011 11110000 00111110 00000111 11000000

00000000 00011111 00000011 11110000 00111110 00000000 00000000 11111000

00011111 00000011 11110000 01111110 00000111 11000000 11111000 00000000

00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

00000000 00000000 00000000 00011111 11111111 11111111 10000000 00000111

11000000 11111100 00000000 00000011 11110000 00111110 00000000 00000000

11111100 00011111 10000011 11110000 00111110 00000000 00000000 11111100

00011111 10000011 11110000 00000000 00000111 11000000 11111100 00011111

10000001 11110000 00111110 00000111 11000000 00000000 00000000 00000000

00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

00000000 11111111 11111111 11111110 00000000 00111110 00000111 11000000

00000000 00011111 10000001 11110000 00000000 00000111 11000000 11111100

00011111 10000001 11110000 00000000 00000111 11100000 11111100 00011111

10000000 00000000 00111110 00000111 11100000 11111100 00001111 10000001

11110000 00111110 00000000 00000000 00000000 00000000 00000000 00000000

00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000



これらの中で、HDUSF、SDHSW-4SV、KT-H91DTV、PF720 はほぼ同形式に見えます。TH-BA1 はリーダ部は似ていますが、データがちょっと違うようです。CRM-1 はリーダ部も見つけられず、よく分かりません。

これらの中で、記録した信号を KURO-RS で送信しても相手が無反応なのが CRM-1 です。CRM-1 は KURO-RS では全く使えないようです。

また、以前作成したデコードプログラムを修正してもデコードできなかったのは、CRM-1 です。

TH-BA1 と DT-100HDMI は 16ビットのデータを繰り返し送っているようです。

プログラムは、NEC フォーマット と、TH-BA1 、DT-100HDMI の信号を作れるようにします。

written by sirius [KURO-RS] [この記事のURL] [コメントを書く] [コメント(0)] [TB(0)]

この記事へのトラックバックPingURL

2011年1月19日(水) 21:31

KURO-RS 用 daemon その3

赤外線信号とコマンドの対応は、設定ファイルの中に書くようにしました。こんな感じです。

--------------------ここから--------------------

[global]

device=/dev/ttyUSB0

ext_send_file=/tmp/kuro_rs_ext_send00.tmp

[macro]

base_dir=/usr/local/share/kuro_rs

ir_data=$base_dir/data

action_dir=$base_dir/bin

lt_h91dtv=$ir_data/Media_Player/LT-H91DTV

[1]

1=50ef8976,3,$th_ba1/Power

2=50ef49b6,2,$shdsw_4sv/Power

3=50efc936,1,$lt_h91dtv/Power

3=50efc936,3,$th_ba1/Digital-1

3=50efc936,2,$shdsw_4sv/1

4=50ef29d6,5,$action_dir/UpMediaPlayer.sh

4=50ef29d6,3,$th_ba1/Digital-2

4=50ef29d6,2,$shdsw_4sv/2

--------------------ここまで--------------------

設定をセクションで分けて、global セクションで全体の設定を指定します。

macro セクションは置き換えの定義をします。

数字のセクションがデータセクションでここに信号のハッシュ(データコード)とアクションタイプ、パラメータを指定します。

アクションは 1 〜 4 で対応するポートから赤外線信号の送出、5 がコマンドの実行、6 がセクションの切り替えが出来るようにします。

ひとつのボタンに複数のアクションをかけるようにします。

例えば、"3" のボタンでは、

・TH-BA1 の入力を Digital-1 に切り替える赤外線信号の送出。

・HDMIセレクタで入力を 1 番に切り替える赤外線信号の送出。

・メディアプレーヤーの電源を入れる赤外線信号の送出。

を行います。

現在設定ファイルを読み込む部分を作成中です。

written by sirius [KURO-RS] [この記事のURL] [コメントを書く] [コメント(0)] [TB(0)]

この記事へのトラックバックPingURL

2011年1月18日(火) 22:18

KURO-RS 用 daemon その2

KURO-RS を受信待ちにして受信した信号によってコマンドを実行する部分は、赤外線信号の解析がとりあえず出来たので動作はしています。

しかし、信号とコマンドのテーブルをソースに埋め込んでしまうと後からの修正が面倒になるのとほかの人が使えないので、信号とコマンドの対応は別ファイルにする予定です。どういった形式にするかを検討中です。コーディング量はこっちの方が多くなりそうな気がします。

あと、何度か試していると KURO-RS が応答しなくなってしまうことがあり、原因を探っています。

ある程度動くようになったら今度は、外部コマンドからの要求で赤外線信号を送ったり、受信したりする方法を考えます。

written by sirius [KURO-RS] [この記事のURL] [コメントを書く] [コメント(0)] [TB(0)]

この記事へのトラックバックPingURL

2011年1月17日(月) 21:57

KURO-RS 用 daemon その1

土曜日の夜に熱を出し寝込んでいました。



赤外線データの解析と平行して daemon プログラムを作成しています。まず、KURO-RS とやり取りする共通関数を製作しています。

次のような関数です。



・open_rs

KURO-RS デバイスを開きます。引数として、デバイスファイル、ブロックするかどうかが必要です。戻り値として KURO-RS 用構造体のポインタを返します。

・close_rs

KURO-RS デバイスを閉じます。引数として、KURO-RS 用構造体のポインタが必要です。

・send_command

KURO-RS へコマンドを送信します。引数として、KURO-RS 用構造体のポインタ、1文字のコマンドが必要です。

・send_data

リモコン信号を送信します。引数として、KURO-RS 用構造体のポインタ、送信ポート、送信データが必要です。

・recive_data

リモコン信号を受信します。引数として、KURO-RS 用構造体のポインタ、受信データ格納場所が必要です。

・send_irdata

リモコン信号を送信します。引数として、KURO-RS 用構造体のポインタ、送信ポート、送信データが必要です。

send_data との違いは、送信要求も含めてこの関数が行います。

・recive_irdata

リモコン信号を受信します。引数として、KURO-RS 用構造体のポインタ、受信データ格納場所が必要です。

recive_data との違いは、受信要求も含めてこの関数が行います。



上記関数は既に実装済みで、これらを使って送受信プログラムを作成してみました。

受信プログラム


----------------------ここから----------------------

#include <stdio.h>

#include <stdlib.h>

#include <signal.h>

#include <string.h>

#include <malloc.h>



#include "kuro_rs.h"

#include "kuro_rs_common.h"



int main(int argc,char *argv[])

{

    unsigned char buf[255];

    char *data_file = NULL;

    char *device = "/dev/ttyUSB0";

    FILE *fp;

    RS *rp;



    if( argc >= 2 && argv[1] && *argv[1] )

        data_file = argv[1];



    if( !data_file ) {

        printf("%s data file\n", argv[0]);

        exit(1);

    }



    if( !(rp = open_rs(device, 1)) ) {

        printf("device open error(%s)\n", device);

        exit(1);

    }

    if( recive_irdata(rp, buf) ) {

        printf("recive error\n");

        exit(1);

    }

    close_rs(rp);



    if( !(fp = fopen(data_file, "wb")) ) {

        printf("file open err(%s)\n", data_file);

        exit(1);

    } else {

        fwrite(buf, sizeof(unsigned char), REC_DATA_SIZE, fp);

        fclose(fp);

    }

    printf("Rec File : %s\n", data_file);

    exit(0);

}

----------------------ここまで----------------------


KURO-RS を開き、データを受信。最後に閉じます。



送信プログラム


----------------------ここから----------------------

#include <stdio.h>

#include <stdlib.h>

#include <signal.h>

#include <string.h>

#include <malloc.h>



#include "kuro_rs.h"

#include "kuro_rs_common.h"



int main(int argc,char *argv[])

{

    unsigned char buf[255];

    char *port = "1";

    char *data_file = NULL;

    char *device = "/dev/ttyUSB0";

    FILE *fp;

    RS *rp;



    if( argc >= 2 && argv[1] && *argv[1] )

        data_file = argv[1];

    if( argc >= 3 && argv[1] && *argv[2] )

        port = argv[2];



   if( !data_file ) {

        printf("%s data file [port]\n", argv[0]);

        exit(1);

    }



    if( !(fp = fopen(data_file, "rb")) ) {

        printf("file open err(%s)\n", data_file);

        exit(1);

    } else {

        fread(buf, sizeof(unsigned char), REC_DATA_SIZE, fp);

        fclose(fp);

    }



    if( !port || (*port < '1' || *port > '4') )

        *port = '1';



    if( !(rp = open_rs(device, 1)) ) {

        printf("device open error(%s)\n", device);

        exit(1);

    }

    if( send_irdata(rp, *port, buf) ) {

        printf("can't send data\n");

        exit(1);

    }

    close_rs(rp);

    printf("Send File : %s\n", data_file);



    exit(0);

}

----------------------ここまで----------------------


送信データを読み込んで、KURO-RS を開き、送信します。最後に KURO-RS を閉じます。



保存したファイルを指定して動かしてみました。リモコンデータの送信が行われました。

大丈夫なようです。

written by sirius [KURO-RS] [この記事のURL] [コメントを書く] [コメント(0)] [TB(0)]

この記事へのトラックバックPingURL

2011年1月15日(土) 18:50

サイズの eSATA鎌蔵3.5 RAID 壊しました

サイズの eSATA鎌蔵3.5 RAID を eSATA 接続で使っていると XP がブルースクリーンになったり書き込みエラーになったりするので、ファームウェアを書き換えようとして失敗し、壊してしまいました。中の HDD は無事ですが、パワーランプがつかないし、PC と接続してもうんともすんとも言いません。残念。

written by sirius [デジモノ] [この記事のURL] [コメントを書く] [コメント(0)] [TB(0)]

この記事へのトラックバックPingURL

2011年1月14日(金) 21:42

サイズの eSATA鎌蔵3.5 RAID SDB2UE

だいぶ前に サイズという会社の HDD ケース、SDB2UEを買って使っています。3.5inch の HDD を 2 台内蔵できるケースで、PC との接続は USB2.0 と eSATA で行います。ただし、eSATA 接続では、ポートマルチプライヤに対応していないとうまく認識してくれません。USB2.0 での接続は問題ありません。



ケースに内蔵した 2 台の HDD は、個別に使うことも、一台にまとめることも、RAID0 や RAID1 にすることが出来ます。ただ、残念なことに、RAID1 構成にした場合、HDD の故障を検知することは出来ないそうです。



このケースは RAID1 で使っています。故障の検知は出来ませんが、同時に 2 台に同じデータを書き込むケースとして使っています。

一度書き込んだらあまり更新しないデータの保存用です。今までは、1TB x 2 という構成で使ってきましたが、これを 2TB x 2 にしました。しばらく構成を変えていなかったので設定方法が分からず、はじめはうまく動きませんでした。構成を変えたときは裏のリセットスイッチを押さないとだめです。マニュアルもどこかにしまって見つからないので、サイズのホームページを探して PDF を見てやっと思い出しました。



eSATA 接続で約 1TB のデータをコピーするのに、FFC でベリファイをして 8 時間ほどかかりました。

written by sirius [デジモノ] [この記事のURL] [コメントを書く] [コメント(0)] [TB(0)]

この記事へのトラックバックPingURL

2011年1月13日(木) 22:12

赤外線信号の解析その2

HDUSF のリモコン信号の形式が NEC フォーマットのようなので、デコードするプログラムを考えてみました。

NEC フォーマットの詳細は、ルネサスのホームページを参照してください。


------------------------ここから------------------------

#include <stdio.h>

#include <stdlib.h>



#define bits(x) ((x) < 0 ? 0 : (buf[(x)/8]>>((x)%8))&0x1)

#define is_one(on, off)  ((on) >= 3 && (off) >= 10)

#define is_zero(on, off) ((on) >= 3 && (off) <= 9)



int main(int argc, char *argv[])

{

    FILE *fp;

    unsigned char buf[255];

    int i, on, off, count, leader, tailer;

    unsigned long code;



    if( argc != 2 ) exit(1);



    if( !(fp = fopen(argv[1], "rb")) ) exit(1);



    fread(buf, sizeof(unsigned char), 240, fp);

    fclose(fp);



    printf("%-14s ", argv[1]);

    on = off = code = count = leader = tailer = 0;

    for( i = 0 ; i < 240*8; i++ ) {

        if( bits(i) && bits(i-1) ) on++;

        else if( !bits(i) && !bits(i-1) ) {

            off++;

            if( off > 90 ) {

                tailer = 1;

                break;

            }

        } else if( !bits(i) &&  bits(i-1) ) off = 1;

        else if(  bits(i) && !bits(i-1) ) {

            if( on > 20 && off > 10 )  leader = 1;

            else if( is_one(on, off) )  code = (code<<1) + 1,count++;

            else if( is_zero(on, off) ) code = (code<<1), count++;

            on = 1;

        }

    }

    printf("code = %-8lx(%d bit) %s-%s ", code, count,

                leader ? "true " : "false", tailer ? "true " : "false");

    if( count == 32 ) {

        if( ((code>>16) & 0xff) != (~(code>>24) & 0xff) )

            printf("Vender = 0x%04x ", (code>>16)&0xffff);

        else

            printf("Vender = 0x%02x ", (code>>24)&0xff);

        if( (code & 0xff) == (~(code>>8) & 0xff) )

            printf("Data = 0x%02x\n", (code>>8)&0xff);

        else

            printf("data error\n");

    } else

        printf("\n");

}

------------------------ここまで------------------------


コードが 32bit の場合、前半 16bit がカスタムコード、後半 16bit がデータコードになります。

カスタムコードは、16bit の場合と、8bit + 反転 8bit のケースと二つあります。カスタムコードがベンダーを表します。

データコードは、8bit + 反転 8bit となります。データのエラーチェックをすることが出来ます。



実行した結果は次のようになります。


HDUS_Power     code = 50ef817e(32 bit) true -true  Vender = 0x50ef Data = 0x81


同じボタンを何回か記録して試しましたが全て同じ結果となりました。これで押されたボタンを識別できそうです。

written by sirius [KURO-RS] [この記事のURL] [コメントを書く] [コメント(0)] [TB(0)]

この記事へのトラックバックPingURL

2011年1月12日(水) 22:11

赤外線信号の解析その1

KURO-RS で保存したリモコンのデータをビット列で表示したところ、先頭の 1 のビット列がリーダのようです。

リモコンの赤外線信号がどのようなフォーマットになっているか調べたところ、いくつかの種類があるようです。

その中で、HDUSF のリモコン信号は、NEC フォーマットといわれるもののようです。次のようなページが見つかりました。



赤外線リモコンの利用

赤外線リモコンの製作 送信側



その他のフォーマットとしては、NEC フォーマットに似た SONY フォーマットと、マンチェスター符号化を利用した PHILIPS フォーマットがあるようです。上の二つのサイトの説明は NEC フォーマットのようです。詳しい形式については参考サイトを見てください。



同じビットが何個連続するかを表示するプログラムをつくり、実行してみました。




----------------------ここから----------------------

#include <stdio.h>

#include <stdlib.h>



#define bits(x) ((x) < 0 ? 0 : (buf[(x)/8]>>((x)%8))&0x1)

#define max(x, y) (((x) > (y)) ? (x) : (y))



int main(int argc, char *argv[])

{

    FILE *fp;

    unsigned char buf[255];

    int i, max_on, max_off, on, off, count;



    if( argc != 2 ) exit(1);



    if( !(fp = fopen(argv[1], "rb")) ) exit(1);



    fread(buf, sizeof(unsigned char), 240, fp);



    max_on = max_off = on = off = count = 0;

    for( i = 0; i < 240*8; i++ ) {

        if( bits(i) ) {

            if( bits(i-1) ) on++;

            else {

                if( i ) {

                    count++;

                    printf("%-3d, " , off);

                    if( (count % 8) == 7 ) printf("\n");

                } else count--;

                max_off = max(max_off, off);

                on = 1;

            }

        } else {

            if( bits(i-1) ) {

                count++;

                printf("%-3d, ", on);

                if( (count % 8) == 7 ) printf("\n");

                max_on = max(max_on, on);

                off = 1;

            } else off++;

        }

    }

    if( bits(i-2) == bits(i-1) ) {

        if( bits(i-1) ) {

             printf("%-3d\n", on);

             max_on = max(max_on, on);

        } else {

             printf("%-3d\n", off);

            max_off = max(max_off, off);

        }

    }

    printf("max on bit %d, off bit %d\n", max_on, max_off);

}



----------------------ここまで----------------------




実行した結果

91 , 45 , 6 , 5 , 6 , 17 , 6 , 5 ,

6 , 17 , 5 , 6 , 6 , 5 , 6 , 6 ,

5 , 6 , 5 , 17 , 6 , 17 , 6 , 16 ,

6 , 6 , 5 , 17 , 6 , 17 , 5 , 17 ,

6 , 17 , 5 , 17 , 6 , 6 , 5 , 6 ,

6 , 5 , 6 , 5 , 6 , 6 , 5 , 6 ,

6 , 16 , 6 , 6 , 5 , 17 , 6 , 17 ,

5 , 17 , 6 , 17 , 6 , 16 , 6 , 17 ,

6 , 5 , 6 , 388, 90 , 23 , 6 , 719

max on bit 91, off bit 719



最初のビットの並びは、1 が 91 個、次が 0 が 45 個です。KURO-RS は 0.1ms 毎にサンプリングするので、HIGH が 9ms、LOW が 4.5ms のリーダ部とぴったりマッチします。



データは、



1 -- 0.56 ms の HIGH 1.69 ms の LOW

0 -- 0.56 ms の HIGH 0.56 ms の LOW



となるそうです。また、データの最後には 0.56ms の HIGH があります。つまり、リーダ部以外では 0.56ms 以上の HIGH はこないということです。カウントした結果では、1 の連続は、5 〜 6 個、0 の連続が 5 〜 6 または 16 〜 17 個なのでこれもぴったり合います。

上の実行結果を色分けしてみます。リーダ部を赤、データ部を青、データの最後を緑色で表示しています。

91 , 45 , 6 , 5 , 6 , 17 , 6 , 5 ,

6 , 17 , 5 , 6 , 6 , 5 , 6 , 6 ,

5 , 6 , 5 , 17 , 6 , 17 , 6 , 16 ,

6 , 6 , 5 , 17 , 6 , 17 , 5 , 17 ,

6 , 17 , 5 , 17 , 6 , 6 , 5 , 6 ,

6 , 5 , 6 , 5 , 6 , 6 , 5 , 6 ,

6 , 16 , 6 , 6 , 5 , 17 , 6 , 17 ,

5 , 17 , 6 , 17 , 6 , 16 , 6 , 17 ,

6 , 5 ,
6 , 388, 90 , 23 , 6 , 719



データ部の 1 の連続 + 0 の連続のペアは 32 個です。リモコンのデータも 32bit だそうなのでこれもぴったりと合います。

これをもとにして信号をデコードできそうです。

written by sirius [KURO-RS] [この記事のURL] [コメントを書く] [コメント(0)] [TB(0)]

この記事へのトラックバックPingURL

2011年1月11日(火) 20:50

KURO-RS 用 daemo プログラムの作成

玄箱で KURO-RS が使えることが分かったので、サービスとして動き、リモコンでコントロールできるようなソフトを探してみました。しかし、自分の利用に合うようなものが見つからなかったので自分で作ってみることにしました。



自分が欲しい機能は、



1、登録しているリモコンのボタンで玄箱をコントロールする。

2、登録しているリモコンのボタンで KURO-RS から他の機器へリモコンの信号が送れる。

    このときボタンひとつで複数の機器へそれぞれリモコン信号を送れるようにする。

3、daemon として動き、daemon が動いていても、外部コマンドからの要求でリモコン信号の送出や学習が出来る。

4、KURO-RS とやり取りする標準的な関数群を作成し、再利用できるようにする。



リモコン信号の保存と送信は付属のソースをコンパイルして出来ますが、同時使用は当然出来ないでしょう。

また送られてきたリモコン信号と登録されている信号の比較をどうするかも考えないといけません。



まず、リモコンの信号と KURO-RS(PC-OPRS1) について検索してみると次のようなページにたどり着きました。



[PC-OP-RS1]SONYフォーマットを合成する(Perlで)

赤外線リモコンを Linux からコントロール



なるほど、KURO-RS は送られてきた信号 240 バイト分をそのまま記録してそのまま送出しているだけのようです。

この信号をちゃんとデコードできればいいのか。



まず、自分なりに保存したリモコンの信号を解析してみることにしました。

保存したデータをビット列で表示するプログラムを作成しました。

-------------------ここから-------------------


#include <stdio.h>

#include <stdlib.h>



int main(int argc, char *argv[])

{

    FILE *fp;

    int i, j;

    int msb, byte;

    unsigned char buf[255], c;



    if( argc != 3 ) exit(1);



    msb = byte = 0;

    if( *(argv[2]) == '1' ) msb = 1;

    if( *(argv[2]+1) == '1' ) byte = 1;



    if( !(fp = fopen(argv[1], "rb")) ) exit(1);



    fread(buf, sizeof(unsigned char), 240, fp);



    for( i = 0; i < 240; i++ ) {

        if( byte ) {

            if( i % 2 ) c = buf[i-1];

            else        c = buf[i+1];

        } else c = buf[i];

        for( j = 0; j < 8; j++ ) {

            if( msb ) printf("%d", (c>>j) &0x1);

            else      printf("%d", (c>>(7-j)) &0x1);

        }

        if( (i % 8) == 7 ) printf("\n");

        else               printf(" ");

    }

    printf("\n");

}


-------------------ここまで-------------------

最初の引数がリモコン信号を保存したファイル名、次の引数の最初の文字が最上位ビットの位置、次の文字がバイトスワップするかどうかを指定します。



PC 用の USB 接続地デジチューナー HDUSF のリモコンが余っていたので、この電源ボタンの信号を保存し、ビット列で表示してみました。

$ dump Power 00

11111111 11111111 11111111 11111111 11111111 11111111 11111111 11111111

11111111 11111111 11111111 00000111 00000000 00000000 00000000 00000000

00000000 00111111 11111000 00000001 00000000 11111100 11100000 00000111

00000000 11110000 10000001 00011111 11111100 11000000 00000111 00111110

00000000 10000000 00011111 00000000 11000000 00001111 00000000 11110000

00000011 00011111 00000000 11000000 00001111 00000000 11100000 00000011

00000000 11111000 00000001 00000000 01111100 00000000 00000000 00111111

11110000 10000001 00011111 11111100 11100000 00000111 00111110 11110000

00000011 00000000 11111100 11000000 00000111 00000000 11110000 00000011

00000000 11111000 00000000 00000000 01111110 00000000 00000000 00111111

00000000 11000000 00001111 00000000 11100000 00000111 00111111 00000000

00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

00000000 00000000 00000000 00000000 00000000 00000000 00000000 11111100

11111111 11111111 11111111 11111111 11111111 11111111 11111111 11111111

11111111 11111111 00001111 00000000 00000000 11111000 00000001 00000000

00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000



$ dump Power 10

11111111 11111111 11111111 11111111 11111111 11111111 11111111 11111111

11111111 11111111 11111111 11100000 00000000 00000000 00000000 00000000

00000000 11111100 00011111 10000000 00000000 00111111 00000111 11100000

00000000 00001111 10000001 11111000 00111111 00000011 11100000 01111100

00000000 00000001 11111000 00000000 00000011 11110000 00000000 00001111

11000000 11111000 00000000 00000011 11110000 00000000 00000111 11000000

00000000 00011111 10000000 00000000 00111110 00000000 00000000 11111100

00001111 10000001 11111000 00111111 00000111 11100000 01111100 00001111

11000000 00000000 00111111 00000011 11100000 00000000 00001111 11000000

00000000 00011111 00000000 00000000 01111110 00000000 00000000 11111100

00000000 00000011 11110000 00000000 00000111 11100000 11111100 00000000

00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

00000000 00000000 00000000 00000000 00000000 00000000 00000000 00111111

11111111 11111111 11111111 11111111 11111111 11111111 11111111 11111111

11111111 11111111 11110000 00000000 00000000 00011111 10000000 00000000

00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000



$ dump Power 01

11111111 11111111 11111111 11111111 11111111 11111111 11111111 11111111

11111111 11111111 00000111 11111111 00000000 00000000 00000000 00000000

00111111 00000000 00000001 11111000 11111100 00000000 00000111 11100000

11110000 00000000 00011111 10000001 11000000 11111100 00111110 00000111

10000000 00000000 00000000 00011111 00001111 11000000 11110000 00000000

00011111 00000011 11000000 00000000 00000000 00001111 00000011 11100000

11111000 00000000 00000000 00000001 00000000 01111100 00111111 00000000

10000001 11110000 11111100 00011111 00000111 11100000 11110000 00111110

00000000 00000011 11000000 11111100 00000000 00000111 00000011 11110000

11111000 00000000 00000000 00000000 00000000 01111110 00111111 00000000

11000000 00000000 00000000 00001111 00000111 11100000 00000000 00111111

00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

00000000 00000000 00000000 00000000 00000000 00000000 11111100 00000000

11111111 11111111 11111111 11111111 11111111 11111111 11111111 11111111

11111111 11111111 00000000 00001111 11111000 00000000 00000000 00000001

00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000



$ dump Power 11

11111111 11111111 11111111 11111111 11111111 11111111 11111111 11111111

11111111 11111111 11100000 11111111 00000000 00000000 00000000 00000000

11111100 00000000 10000000 00011111 00111111 00000000 11100000 00000111

00001111 00000000 11111000 10000001 00000011 00111111 01111100 11100000

00000001 00000000 00000000 11111000 11110000 00000011 00001111 00000000

11111000 11000000 00000011 00000000 00000000 11110000 11000000 00000111

00011111 00000000 00000000 10000000 00000000 00111110 11111100 00000000

10000001 00001111 00111111 11111000 11100000 00000111 00001111 01111100

00000000 11000000 00000011 00111111 00000000 11100000 11000000 00001111

00011111 00000000 00000000 00000000 00000000 01111110 11111100 00000000

00000011 00000000 00000000 11110000 11100000 00000111 00000000 11111100

00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

00000000 00000000 00000000 00000000 00000000 00000000 00111111 00000000

11111111 11111111 11111111 11111111 11111111 11111111 11111111 11111111

11111111 11111111 00000000 11110000 00011111 00000000 00000000 10000000

00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000



どうやら MSB でバイトスワップもしなくていいようです。そのままやればいいんですね。

written by sirius [KURO-RS] [この記事のURL] [コメントを書く] [コメント(0)] [TB(0)]

この記事へのトラックバックPingURL

2011年1月10日(月) 14:06

named の警告

ログに "named[1471]: the working directory is not writable" が出力されていました。

ログのとおりにディレクトリにアクセス権がないようだったので、書き込みの権限を与えました。

# chmod g+w /var/named



さらに、"zone 'xxxx' allows updates by IP address, which is insecure" というログも出力されていましたが、これは内部のみの DNS サーバなので気にしないことにしました。対処には、TSIG(Transaction Signature)というものを利用するようです。

written by sirius [玄箱] [この記事のURL] [コメントを書く] [コメント(0)] [TB(0)]

この記事へのトラックバックPingURL

2011年1月9日(日) 20:15

pcscd が自動起動しないことがある

カーネルを変えた所為かどうかわかりませんが、halt や reboot がきちんと動くようになりました。

何度か起動を切り返してみたのですが、カードサービスの pcscd が自動で起動したりしなかったりです。原因はわからないのですが、BonCasServer を動かしているので不用意に再起動できなくて不便です。そこで、BonCasServer を動かすシャルスクリプトの中で、pcscd を動かすようにしました。



bcs-start2.sh の内容を次のようにしました。

-------------------ここから-------------------

 #!/bin/sh

 PATH=/bin:/usr/bin:/usr/local/bin:/sbin:/usr/sbin:/usr/local/sbin

 sleep 50

 /etc/init.d/pcscd restart

 sleep 2

 perl /usr/local/bin/bcs-perl.pl > /dev/null 2>&1 &

-------------------ここまで-------------------

pcscd サービスは起動していることもあるので、再起動で動かすことにしました。

これで少し様子を見ます。

written by sirius [玄箱] [この記事のURL] [コメントを書く] [コメント(0)] [TB(0)]

この記事へのトラックバックPingURL

2011年1月7日(金) 20:16

KURO-RS のアプリケーション

玄箱が KURO-RS を認識するようになったので、アプリケーションをインストールしていきます。

まずはじめに、 KURO-RS 付属のアプリケーションをコンパイルして動かしてみます。

付属 CD 内の Linux/Linux.tgz を作業ディレクトリで展開します。

$ tar xvzf Linux.tgz

既にドライバは動いているので、必要なものはアプリケーションのソースだけです。

展開された中の Linux/LinuxApp にあります。

$ cd Linux/LinuxApp

バイナリファイルはそのまま使えるようですが、退避してコンパイルします。



rs_rec.c と rs_send.c は、#include <strings.h> を #include <string.h> に替えておきます。

$ mv rec rec.org

$ gcc -O2 -o rec rs_rec.c

$ mv send send.org

$ gcc -O2 -o send rs_send.c

send については起動時に動かすとうまく動かない不具合があるので、昔作ったパッチを当てようと探しましたがありませんでした。が、今回は特に修正しなくても大丈夫なようです。



コンパイルしたものを /usr/local/bin へコピーします。

# install -s rec /usr/local/bin/kuro-rs-rec

# install -s send /usr/local/bin/kuro-rs-send

USB デバイス (/device/ttyUSB0) へアクセスできる様に dialout グループへユーザを追加しておくと便利でしょう。



リモコンの信号を記録します。

$ kuro-rs-rec test

test - /dev/ttyUSB0

rec code waiting.........

Create Rec File : [test]



リモコン信号を送信します

$ kuro-rs-send test

test - 1 - /dev/ttyUSB0

Send File : [test]



うまく行ったようです。これで動作の確認が出来ました。

そろそろ Apache と PHP をきちんと設定して Web 経由で KURO-RS をコントロールできるようにしたいですね。

written by sirius [KURO-RS] [この記事のURL] [コメントを書く] [コメント(0)] [TB(0)]

この記事へのトラックバックPingURL

2011年1月6日(木) 23:57

Victor のホームシアターサウンドシステム購入

Victor の TH-BA1 を買いました。本当は YAMAHA の YSP-600 が HDMI でつなげられるので欲しかったのですが値段が値段なので買えません。



ビクターはもともと音響メーカーなので迷うことなく購入しました。以前購入したことがあるブラウン管テレビもついてきたスピーカーで十分に満足できる音を出してくれていました。

サブウーファーがついているので低音にも迫力がありますし、バー型のスピーカーだけでサラウンド効果も得られます。AAC や Dolby、DTS もそのまま再生できます。HDMI での入力がついてないのが残念ですが、光 x 2、アナログ x 1 の入力があるので何とかなります。



まあ、本格的なオーディオシステムに比べれば劣るのは当然ですが、自分の部屋で再生するのでそんなに金をかけても無駄でしょう。価格に対して満足しています。



ただ、低音が音のわりにお腹に響いてこないんです。サブウーファーが小さいせいでしょうか。

written by sirius [デジモノ] [この記事のURL] [コメントを書く] [コメント(0)] [TB(0)]

この記事へのトラックバックPingURL

2011年1月5日(水) 20:57

rc.local が実行されない

どうも rc.local が動いていないなと思ったら、firstboot が動いていました。

プロセスを見ると firstbootが動いてそこで止まってしまい、初期化処理が止まり、rc.local が実行されなくなっているようです。rc.local だけでなく、pcscd も動きませんでした。起動後に手動で実行すれば動きました。

firstboot は Fedora のインストールが終わり、最初の起動のときに動いてユーザの追加等の初期設定を行うものです。

一度 firstboot を実行してしまえば、次から実行しなくなるので、ssh でつないで実行しました。

コンソールがないから気づくのが遅れました。

written by sirius [玄箱] [この記事のURL] [コメントを書く] [コメント(0)] [TB(0)]

この記事へのトラックバックPingURL

<< 前のページ | 次のページ >>

Sirius -旧ブログ、更新されません-

MySketch 2.7.2 written by 夕雨