#!/usr/bin/perl -w use Time::HiRes qw(gettimeofday tv_interval); use Event::Lib; use SCX::Reader; my ($portname, $logfile) = @ARGV; if (!defined $portname || !defined $logfile) { die "Usage: $0 /dev/ttyUSB0 logfile\n"; } my $reader = SCX::Reader->new({ portname => $portname, logfile => $logfile, callback => \&do_packet, }); sub stdin_read { my $event = shift; my $fh = $event->fh; my $data = <$fh>; chomp $data; print "===== ", $data, " =====\n"; $event->add; } sub tty_read { my $event = shift; $reader->read(); $event->add; } sub do_packet { print "do_packet\n"; } my $tty_reader = event_new($reader->fh, EV_READ, \&tty_read); my $stdin_reader = event_new(\*STDIN, EV_READ, \&stdin_read); $tty_reader->add; $stdin_reader->add; event_mainloop;