#!/usr/bin/perl -w use lib './blib/lib','../blib/lib'; # can run from here or distribution base ######################### We start with some black magic to print on failure. BEGIN { $| = 1; print "demo1.plx loaded "; } END {print "not ok 1\n" unless $loaded;} use Device::SerialPort 0.05; $loaded = 1; print "ok 1\n"; ######################### End of black magic. use strict; my $file = "/dev/ttyS0"; my $pass; my $fail; my $in; my $in2; my @opts; my $out; my $loc; my $e; my $tick; my $tock; # 2: Constructor and Basic Values my $ob = Device::SerialPort->new ($file) || die "Can't open $file: $!"; $ob->baudrate(9600) || die "fail setting baudrate"; $ob->parity("none") || die "fail setting parity"; $ob->databits(8) || die "fail setting databits"; $ob->stopbits(1) || die "fail setting stopbits"; $ob->handshake("none") || die "fail setting handshake"; $ob->write_settings || die "no settings"; # 3: Prints Prompts to Port and Main Screen $out= "\r\n\r\n++++++++++++++++++++++++++++++++++++++++++\r\n"; $tick= "Simple Serial Terminal with echo to STDOUT\r\n\r\n"; $tock= "type CONTROL-Z on serial terminal to quit\r\n"; $e="\r\n....Bye\r\n"; print $out, $tick, $tock; $pass=$ob->write($out); $pass=$ob->write($tick); $pass=$ob->write($tock); $ob->error_msg(1); # use built-in error messages $ob->user_msg(1); $in = 1; while ($in) { if (($loc = $ob->input) ne "") { $loc =~ s/\cM/\r\n/; $ob->write($loc); print $loc; } if ($loc =~ /\cZ/) { $in--; } if ($ob->reset_error) { $in--; } } print $e; $pass=$ob->write($e); sleep 1; undef $ob;