#!/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;

