#! perl -w # #will get temps from the qk145 kit use Win32::SerialPort 0.19; use constant ADJUST => 1; use constant INCR => 600; # 10 minute resolution my $line=0; my $iter=0; my $num=4000; my $ele = 0; my $cfgfile = "qk145.cfg"; ## my $tempdata="W:/dir/tpdt"; ($wdy, $mn, $dy, $tm, $yr) = split(' ',localtime()); my $time=localtime; my $t= ($wdy); #to clear feedback ## $PortObj = tie (*FH, 'Win32::SerialPort', $cfgfile) || die "Can't tie: $^E\n"; sleep 1; do { ############################################################################## while () { s/^\s+//; # Better than chomp because of funky s/\s+$//; # \n\r output next unless /^\d/; # Skip non-temps (e.g. status line) my ($line, $temp) = split; # Temp lines look like "1 0081.95" next unless $temp; # There weren't two fields (?) print ("T",$line); print ("="); print ($temp); print ("\n"); @tmp[$ele,$ele+1] = ($line,$temp) } $iter++; $ele=@tmp; } while ($iter < $num); # print ("@tmp\n"); undef $PortObj; open(TEMPDATA,">>$tempdata") || die "tempdata: $! \n"; print TEMPDATA ("$dy-$mn-$yr $tm\t"); print TEMPDATA "\t@tmp\t"; print TEMPDATA "\n"; close TEMPDATA;