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"; |