Merge branch 'master' of mjesec.ffzg.hr:/git/vaillant-thermostat
[vaillant-thermostat] / serial.pl
1 #!/usr/bin/perl
2 use warnings;
3 use strict;
4 use Device::SerialPort;
5 use Data::Dump qw(dump);
6 use Time::HiRes qw(time);
7
8 my $read_len = 255;
9
10 $|=1;
11
12 my $s = new Device::SerialPort( '/dev/ttyUSB0' ) || die $!;
13 $s->baudrate(2400);
14 $s->databits(8);
15 $s->parity('none');
16 $s->stopbits(1);
17 $s->handshake('none');
18 $s->read_char_time(2);
19 $s->read_const_time(3);
20
21 #$s->write('o');
22
23 my $t = time();
24
25 while (1) {
26         my ($len, $string) = $s->read($read_len);
27         my $ts = time();
28
29         if ( $len > 0 ) {
30                 my $hex = unpack('H*',$string);
31                 $hex =~ s/(..)/$1 /g;
32                 #printf "%s %2d  %s\n", time(), $len, $hex;
33                 printf "%8.4f %0.4f %2d  %s\n", $ts, $ts - $t, $len, $hex;
34                 $t = time();
35         }
36 }
37
38 $s->close;