SHOW:
|
|
- or go back to the newest paste.
| 1 | #!/usr/bin/perl | |
| 2 | ||
| 3 | use strict; | |
| 4 | use warnings; | |
| 5 | use Data::Dumper; | |
| 6 | use DateTime; | |
| 7 | use Date::Calc qw(Delta_Days); | |
| 8 | use bignum; | |
| 9 | ||
| 10 | # READ BYTE | |
| 11 | sub rb {
| |
| 12 | my ($FH, $len) = @_; | |
| 13 | read($FH, my $b, $len ? $len : 1); | |
| 14 | unpack("W*", $b);
| |
| 15 | } | |
| 16 | ||
| 17 | # READ INT | |
| 18 | sub ri {
| |
| 19 | my $FH = shift; | |
| 20 | read($FH, my $i, 4); | |
| 21 | unpack("I", $i);
| |
| 22 | } | |
| 23 | ||
| 24 | sub rs {
| |
| 25 | my $FH = shift; | |
| 26 | read($FH, my $i, 2); | |
| 27 | unpack("s", $i);
| |
| 28 | } | |
| 29 | ||
| 30 | sub rbs {
| |
| 31 | my $FH = shift; | |
| 32 | my @arr = (rb($FH), rb($FH)); | |
| 33 | my ($value, $i) = (0, 0); | |
| 34 | #print "----\n"; | |
| 35 | foreach(@arr) {
| |
| 36 | #print $_."<-hva\n"; | |
| 37 | $value += ($_ & 0xff) << (8 * $i); | |
| 38 | $i++; | |
| 39 | } | |
| 40 | return $value; | |
| 41 | } | |
| 42 | ||
| 43 | open(my $CHANDAT, "<", 'getchannelsdat.html') or die $!; | |
| 44 | binmode($CHANDAT); | |
| 45 | ||
| 46 | my $length = rb($CHANDAT); | |
| 47 | my $string = rb($CHANDAT, 4); | |
| 48 | my $highVersion = rb($CHANDAT); | |
| 49 | my $lowVersion = rb($CHANDAT); | |
| 50 | ||
| 51 | my $tunerType = rb($CHANDAT) || 0; | |
| 52 | my $channelGroup = rb($CHANDAT); | |
| 53 | my $satModulationSystem = rb($CHANDAT); | |
| 54 | my $flags = rb($CHANDAT); | |
| 55 | my $frequency = ri($CHANDAT); | |
| 56 | my $Symbolrate = ri($CHANDAT); | |
| 57 | my $lnbLof = rs($CHANDAT); | |
| 58 | my $pmtPID = rs($CHANDAT); | |
| 59 | my $reserved1 = rs($CHANDAT); | |
| 60 | my $satModulation = rb($CHANDAT); | |
| 61 | my $avFormat = rb($CHANDAT); | |
| 62 | my $fec = rb($CHANDAT); | |
| 63 | my $reserved2 = rb($CHANDAT); | |
| 64 | my $reserved3 = rs($CHANDAT); | |
| 65 | my $polarity = rb($CHANDAT); | |
| 66 | my $reserved4 = rb($CHANDAT); | |
| 67 | my $orbitalPosition = rbs($CHANDAT);#rs($CHANDAT); # a2i | |
| 68 | my $tone = rb($CHANDAT); | |
| 69 | my $reserved5 = rb($CHANDAT); | |
| 70 | my $discCext = rs($CHANDAT); | |
| 71 | my $descq = rb($CHANDAT); | |
| 72 | my $reserved6 = rb($CHANDAT); | |
| 73 | my $reserved7 = rs($CHANDAT); | |
| 74 | my $audioPID = rbs($CHANDAT);#rs($CHANDAT); # a2i | |
| 75 | my $reserved8 = rs($CHANDAT); | |
| 76 | my $videoPID = rbs($CHANDAT);#rs($CHANDAT); # a2i | |
| 77 | my $transportStreamID = rbs($CHANDAT);#rs($CHANDAT); # a2i | |
| 78 | my $teletextPID = rs($CHANDAT); | |
| 79 | my $orginalNetworkID = rbs($CHANDAT);#rs($CHANDAT); # a2i | |
| 80 | my $serviceID = rbs($CHANDAT);#rs($CHANDAT); # a2i | |
| 81 | ||
| 82 | - | my $orbitalPosition = 4.8; |
| 82 | + | $orbitalPosition = 4.8; |
| 83 | ||
| 84 | my $tvFlag = 1; | |
| 85 | ||
| 86 | my $sid = $serviceID; | |
| 87 | my $apid = $audioPID * (2**16); | |
| 88 | my $ttyp = (($tunerType + 1) * (2**29)); | |
| 89 | my $tsid = $transportStreamID * (2**32); | |
| 90 | my $opo = ($orbitalPosition * 10) * (2**48); | |
| 91 | my $tfl = $tvFlag * (2**61); | |
| 92 | ||
| 93 | print "ServiceID: ".$serviceID."\n"; | |
| 94 | print "AudioPID: ".$audioPID."\n"; | |
| 95 | print "TunerType: ".$tunerType."\n"; | |
| 96 | print "TransportStream: ".$transportStreamID."\n"; | |
| 97 | print "Orbitpos: ".$orbitalPosition."\n"; | |
| 98 | print "TVflag: ".$tvFlag."\n\n"; | |
| 99 | print "--POWERED VALS--\n"; | |
| 100 | print "ServiceID: ".$sid."\n"; | |
| 101 | print "AudioPID: ".$apid."\n"; | |
| 102 | print "TunerType: ".$ttyp."\n"; | |
| 103 | print "TransportStream: ".$tsid."\n"; | |
| 104 | print "Orbitpos: ".$opo."\n"; | |
| 105 | print "TVflag: ".$tfl."\n\n"; | |
| 106 | ||
| 107 | my $channelID = $sid+$apid+$ttyp+$tsid+$opo+$tfl; | |
| 108 | print "ChannelID: ".$channelID."\n"; |