$mw->repeat(1000,sub{
print "@values"."\n";
});
####
share @values;
share $opened_port;
####
sub opening_port
{
require Win32::SerialPort;
$serial=Win32::SerialPort->new("COM6");
$serial->baudrate(9600) || die "Bad baudrate";
$serial->parity('none') || die "Bad parity";
$serial->databits(8) || die "Bad databits";
$serial->stopbits(1) || die "Bad stopbits";
#$serial->buffers(4096,4096) || die "Buffer error";
$serial->handshake("none") || die "Bad handshake method";
$serial->write_settings;
while(1)
{
print $opened_port;
if($opened_port) {
my @array;
my $string;
my $i=0;
do
{
$string=$serial->read(1); #Beolvass egy karakteret a sorosportról
if((ord($string) >= 0x09 && ord($string) <=0x7A) || $string eq '\t' || $string eq '\n') #megvizsgálja, hogy a beolvasott karakter megfelel-e az ASCII kritériumoknak
{
$array[$i]=$string; #elmenti a tömbbe i.-ik helyére az adott karaktert
$i++; #növeli az index értékét
}
}while($string ne "\n" ); #addig fut a program amíg nem \n a beolvasott karakter
$i=0;
$string = join('' , @array ) ; #ezután egy skalárba összefűzi a tömb elemeit, egymás után - nincs szeparátor
chomp($string); # leszedi a \r és \n karaktereket a string végéről
@values = split('\t',$string); #majd felbontja a skalárt a tabulárotok mentén
# az 1-es index tartalmazza a a hőmérsékleti adatokat, a 3-as index az időt
}
}
}