added retry
[vrDialog] / dialog.pl
index dbab70b..47bfe21 100755 (executable)
--- a/dialog.pl
+++ b/dialog.pl
@@ -12,8 +12,8 @@ $port->parity('none');
 $port->stopbits(1);
 $port->handshake('none');
 
-$port->read_char_time(1000);
-$port->read_const_time(3000);
+$port->read_char_time(500);
+$port->read_const_time(1000);
 
 sub as_hex {
        my @out;
@@ -36,20 +36,24 @@ sub v {
        my ($hex,$expect,$desc) = @_;
        my $bytes = hex2bytes( $hex );
        warn "# $desc\n";
+retry:
        warn ">> ",as_hex( $bytes );
        $port->write( $bytes );
 
        my $data = $port->read(1);
        warn "<< len: ",ord($data);
+
+       goto retry if ord($data) == 0;
+
        $data .= $port->read(ord($data) - 1);
        warn "<< ",as_hex($data);
        warn "?? $expect\n" if $expect;
 
 }
 
-#v '07 02 00 00 00 04 C4', "hardware version";
+v '07 02 00 00 00 04 C4', "hardware version";
 
-#v '07 0A 00 00 00 04 44', 'software version';
+v '07 0A 00 00 00 04 44', 'software version';
 
 v '07 00 01 00 06 0E EA', 'temperatures';