From 53b99be30805ba864e29d8cc1c13b0ee62a6f311 Mon Sep 17 00:00:00 2001 From: Petr Baudis Date: Tue, 27 Dec 2011 23:05:17 +0100 Subject: [PATCH] Brm::Lasic: Fix serial I/O --- perl/Brm/Lasic.pm | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/perl/Brm/Lasic.pm b/perl/Brm/Lasic.pm index 65d22f9..83b9c40 100644 --- a/perl/Brm/Lasic.pm +++ b/perl/Brm/Lasic.pm @@ -91,6 +91,11 @@ sub BUILD { $self->port->stopbits(1); $self->port->handshake("none"); $self->port->write_settings(); + $self->port->read_const_time(500); + # Yes, output record separator != input record separator! + $self->port->output_record_separator("\n"); + $self->port->are_match("\r\n"); + sleep(3); } =item B @@ -168,10 +173,13 @@ sub msg { $self->seqid($self->seqid + 1); my $fd = $self->fd(); - print $fd join(' ', @args)."\r\n"; - my $msg = <$fd>; - chomp $msg; - print "(rep: $msg)\n"; + # print join(' ', @args)."\n"; + print $fd join(' ', @args); + my $msg; + do { + $msg = <$fd>; + } while (not $msg); + # print "(rep: $msg)\n"; } =back