#!/usr/bin/perl #will pickup epg data for channels using sift use Device::SerialPort; if ($#ARGV < 0) { print("usage: siftepg channel channel channel ...\n"); exit(0); } $TP="/dev/ttyUSB0"; $sp = tie(*SPF, 'Device::SerialPort', $TP) || die "Can't open $TP!"; $sp->baudrate(115200) || die "fail setting baudrate"; $sp->parity("none") || die "fail setting parity"; $sp->databits(8) || die "fail setting databits"; $sp->stopbits(1) || die "fail setting stopbits"; $sp->handshake("none") || die "fail setting handshake"; $sp->read_char_time(0); $sp->read_const_time(500); foreach $argnum (0 .. $#ARGV) { $ch = $ARGV[$argnum]; if (!open(DFH,">$ch.epg")) { print "Error: file create";} $sp->write("*\r*\re$ch\r"); do { ($count,$sdata) = $sp->read(1024); syswrite(DFH, $sdata, $count); } while ($count != 0); $sp->write("#\r"); do { ($count,$sdata) = $sp->read(1024); syswrite(DFH, $sdata, $count); } while ($count != 0); close(DFH); sleep(1); } undef $sp;