View difference between Paste ID: LT1qgfAH and p5FSFAKQ
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";