Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/perl
- use strict;
- use warnings;
- use Data::Dumper;
- use DateTime;
- use Date::Calc qw(Delta_Days);
- use bignum;
- # READ BYTE
- sub rb {
- my ($FH, $len) = @_;
- read($FH, my $b, $len ? $len : 1);
- unpack("W*", $b);
- }
- # READ INT
- sub ri {
- my $FH = shift;
- read($FH, my $i, 4);
- unpack("I", $i);
- }
- sub rs {
- my $FH = shift;
- read($FH, my $i, 2);
- unpack("s", $i);
- }
- sub rbs {
- my $FH = shift;
- my @arr = (rb($FH), rb($FH));
- my ($value, $i) = (0, 0);
- #print "----\n";
- foreach(@arr) {
- #print $_."<-hva\n";
- $value += ($_ & 0xff) << (8 * $i);
- $i++;
- }
- return $value;
- }
- open(my $CHANDAT, "<", 'getchannelsdat.html') or die $!;
- binmode($CHANDAT);
- my $length = rb($CHANDAT);
- my $string = rb($CHANDAT, 4);
- my $highVersion = rb($CHANDAT);
- my $lowVersion = rb($CHANDAT);
- my $tunerType = rb($CHANDAT) || 0;
- my $channelGroup = rb($CHANDAT);
- my $satModulationSystem = rb($CHANDAT);
- my $flags = rb($CHANDAT);
- my $frequency = ri($CHANDAT);
- my $Symbolrate = ri($CHANDAT);
- my $lnbLof = rs($CHANDAT);
- my $pmtPID = rs($CHANDAT);
- my $reserved1 = rs($CHANDAT);
- my $satModulation = rb($CHANDAT);
- my $avFormat = rb($CHANDAT);
- my $fec = rb($CHANDAT);
- my $reserved2 = rb($CHANDAT);
- my $reserved3 = rs($CHANDAT);
- my $polarity = rb($CHANDAT);
- my $reserved4 = rb($CHANDAT);
- my $orbitalPosition = rbs($CHANDAT);#rs($CHANDAT); # a2i
- my $tone = rb($CHANDAT);
- my $reserved5 = rb($CHANDAT);
- my $discCext = rs($CHANDAT);
- my $descq = rb($CHANDAT);
- my $reserved6 = rb($CHANDAT);
- my $reserved7 = rs($CHANDAT);
- my $audioPID = rbs($CHANDAT);#rs($CHANDAT); # a2i
- my $reserved8 = rs($CHANDAT);
- my $videoPID = rbs($CHANDAT);#rs($CHANDAT); # a2i
- my $transportStreamID = rbs($CHANDAT);#rs($CHANDAT); # a2i
- my $teletextPID = rs($CHANDAT);
- my $orginalNetworkID = rbs($CHANDAT);#rs($CHANDAT); # a2i
- my $serviceID = rbs($CHANDAT);#rs($CHANDAT); # a2i
- $orbitalPosition = 4.8;
- my $tvFlag = 1;
- my $sid = $serviceID;
- my $apid = $audioPID * (2**16);
- my $ttyp = (($tunerType + 1) * (2**29));
- my $tsid = $transportStreamID * (2**32);
- my $opo = ($orbitalPosition * 10) * (2**48);
- my $tfl = $tvFlag * (2**61);
- print "ServiceID: ".$serviceID."\n";
- print "AudioPID: ".$audioPID."\n";
- print "TunerType: ".$tunerType."\n";
- print "TransportStream: ".$transportStreamID."\n";
- print "Orbitpos: ".$orbitalPosition."\n";
- print "TVflag: ".$tvFlag."\n\n";
- print "--POWERED VALS--\n";
- print "ServiceID: ".$sid."\n";
- print "AudioPID: ".$apid."\n";
- print "TunerType: ".$ttyp."\n";
- print "TransportStream: ".$tsid."\n";
- print "Orbitpos: ".$opo."\n";
- print "TVflag: ".$tfl."\n\n";
- my $channelID = $sid+$apid+$ttyp+$tsid+$opo+$tfl;
- print "ChannelID: ".$channelID."\n";
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement