| 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 ;
 |