format output readable
[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
7 $|=1;
8
9 my $s = new Device::SerialPort( '/dev/ttyUSB0' ) || die $!;
10 $s->baudrate(2400);
11 $s->databits(8);
12 $s->parity('none');
13 $s->stopbits(1);
14 $s->handshake('none');
15 $s->read_char_time(2);
16 $s->read_const_time(3);
17
18 #$s->write('o');
19
20 while (1) {
21         my ($len, $string) = $s->read(255);
22
23         if ( $len > 0 ) {
24                 my $hex = unpack('H*',$string);
25                 $hex =~ s/(..)/$1 /g;
26                 printf "%s %2d  %s\n", time(), $len, $hex;
27         }
28 }
29
30 $s->close;