神谷と申します。 # こちらの ML には久しぶりにメールを書きます
現在、クロッサム2+USB を FreeBSD マシンに接続してエアコン、 コンポ等の制御にトライしているのですが、なかなかうまくいって いません。もし既に上記のデバイスを利用して家電の制御をされて いる方がいらっしゃれば、ぜひどのように使用されていらっしゃる かご教授いただきたく、メールを送信させていただきました。 ちなみに FreeBSD 5.5R を使用しております。 [既にできたこと] クロッサム2+USB の認識 ・usbdevs で認識できていることを確認しました クロッサム2+USB を手動で操作することによる対象機器の制御 [一部できたこと] tip を利用したクロッサム2+USB の操作 ・http://web.archive.org/web/20011218210738/http://www.halcorp.co.jp/hard/crossam/transe.htm を見て、そのとおりにコマンドを送信することで操作に成功 ・ただし、コマンド送信ごとに10秒程度の待ち時間が必要 ・/etc/remote には以下の行を追加 crossam:dv=/dev/ucom0:br#9600:pa=none:hd: [できないこと/やりたいこと] Perl を利用したクロッサム2+USB の操作 ・/dev/ucom0 に直接書き込む方法(1)や、Device::SerialPort を 利用した方法(2)を試すも、うんともすんとも・・・ 若干 ML 違いかもしれませんが、 ・うちではこんな方法で動かしている ・プログラムのここがおかしい 等々ございましたら、なにとぞよろしくお願いいたします。 (1) のソース: #!/usr/local/bin/perl open(crossam, "> /dev/ucom0"); print crossam "/c\r\n"; sleep(10); print crossam "/t5,40\r\n"; sleep(10); print crossam "/c\r\n"; close(crossam); (2) のソース: #!/usr/local/bin/perl use strict; use Device::SerialPort qw (:STAT); my $port_device = '/dev/ucom0'; my $sleep_time = 10; my $initcmd = "/c\r\n"; # initialize command my $port = Device::SerialPort->new($port_device) || die "Can't open $port_device: $^E\n"; # setup $port->baudrate(9600); $port->parity("none"); $port->databits(8); $port->stopbits(1); $port->handshake("none"); $port->write_settings || undef $port; # execute a command $port->write($initcmd); sleep($sleep_time); $port->write("/t5,40\r\n"); sleep($sleep_time); $port->write($initcmd); $port->close || die "failed to close"; undef $port; -- Yuki Kamiya <[EMAIL PROTECTED]>