freebsd8.2のシリアルポートが使えるかテストプログラム(perl)(2011/11/05) Last update:2011/11/09 Build:2011/11/09#!/usr/bin/perl -w # -w ワーニングを出す # データロガーから読み取るプログラム # 湿度センサーを使った、温湿度データロガー(2010/11/13製作) # /home/datalgr/datalgr-htm-rs232c-11105-cron.pl mod 755 # をもとに test-111105.pl # crontab用のperl # 一部修正し、データを10回採り、平均することとした # 2010/11/28 → 2010/12/10 完成 # 2011/11/05 flora T5500用にディバイス名を変更 cuad0 → cuau0 # 2011/11/05 エラーが出る。数値の合計がうまくとれない??? # 2011/11/05 単純なテストプログラム アナログ2でエラーがでる # use strict; # 宣言した変数以外を使えなくする $| = 1; # ゼロ以外が代入されると出力をバッファリングしなくなる。 my $file="/home/datalgr/log-data.txt"; my $sec; my $min; my $hour; my $mday; my $mon; my $year; my $wday; my $yday; my $isdst; my $tt; my $null=""; # 読み込み書き込みファイルオープン # 読み取り 書き込み 追加 新規作成 上書き # < filename ○ × × × × # > filename × ○ × ○ ○ # >> filename × ○ ○ ○ × # +< filename ○ ○ × × × # +> filename ○ ○ × ○ ○ # +>> filename ○ ○ ○ ○ × #open (COM2, "+</dev/cuad0") or die "ERROR /dev/cuad0 not open\n" ; # シリアルポートを入出力可能でオープン open (COM2, "+</dev/cuau0") or die "ERROR /dev/cuau0 not open\n" ; # シリアルポートを入出力可能でオープン #print "open serial port COM2 ok\n" ; my $inputd ; my $i ; # counter use strict; use warnings; use Time::HiRes; my $data2 ; # #print "0,2,3のどれかを入れてください" ; #print COM2 $inputd ; # アナログポートへインプットデータ出力 #my $data0 = <COM2> #print "input data=",$inputd ," output data=", $data0 ; #$data0 =~s/\0\n//; # 後ろ\0\nを除去 # ######################### シリアルポートCOM2から30回読み込む for ($i=1 ; $i<=30 ; $i++) { print COM2 "2"; # アナログポート2 $data2 = <COM2> ; print "data2=" , $data2 ; } ; close COM2 ; |