Advertisement
Guest User

Untitled

a guest
Dec 18th, 2013
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  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. $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";
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement