#!C:\Perl\bin\perl ##=============== Fehlermeldungen/DEBUG ===============## use warnings; use strict; use diagnostics; ##=============== END ===============## ##=============== INI-Benötigte Befehle ===============## use Config::IniFiles; my $config = Config::IniFiles->new( -file => "tsreader.ini" ); my $port = $config->val( "port", "tsport" ); my $ip = $config->val( "ip", "tsip" ); my $pfad1 = $config->val( "pfad", "phtml1" ); my $pfad2 = $config->val( "pfad", "phtml2" ); my $freq1 = $config->val( "frequenz", "freq1" ); my $freq2 = $config->val( "frequenz", "freq2" ); ##=============== END ===============## ##=============== Variablen Declarieren ===============## my $t = ''; my $function = "Funktion:"; my $doit = ''; my $dont_send = ''; my $chart = ''; my $program_number = ''; my $multicast_address = ''; my $multicast_port = ''; my @line = ''; ##=============== END ===============## ##=============== Verbindung/Controll TSreader ===============## use Telnet (); ##=============== Connect to TSReader ===============## $t = new Net::Telnet( Timeout => 1, Port => $port ); eval { $t->open($ip); }; if($@){ # error handling.... } my $x = 100; for ( my $i = 1 ; $i < $x ; ) { ##=============== Display TSReader sent us===============## @line = $t->getline(); print "TSReader connected.\nResponse: @line\n"; ##=============== Display functions ===============## print "Functions supported are:\n"; print " 1 - print programs in mux\n"; print " 2 - display graph\n"; print " 3 - switch to a multicast UDP mux\n"; print " 4 - play channel via VLC\n"; print " 5 - export to HTML\n"; print " 6 - Exit\n"; print "Function? "; $function = ; chomp $function; if ( $function == 1 ) { #Get and print a list of programs $t->print("PROGRAM"); print "These programs are defined:\n"; $doit = 1; while ( $doit eq 1 ) { eval { @line = $t->getline( Timeout => 1 ); }; if ($@) { $doit = 0; } else { print @line; } } } elsif ( $function == 2 ) { #Draw a graph $dont_send = 0; print "Available graphs are:\n"; print " 0 - close any existing graph\n"; print " 1 - Active PIDs by rate\n"; print " 2 - Active PIDs by PID\n"; print " 3 - PID usage 2D pie\n"; print " 4 - PID usage 3D pie\n"; print " 5 - Mux usage stacked area\n"; print " 6 - Mux usage line\n"; print " 7 - Video rate area\n"; print " 8 - Video rate line\n"; print " 9 - Program usage\n"; print " 10 - Video composition\n"; print "Which chart? "; $chart = ; chomp $chart; if ( $chart == 10 ) { print "Program number? "; $program_number = ; chop $program_number; $t->print("PROGRAM $program_number"); @line = $t->getline( Timeout => 1 ); if ( @line = "~ /502/" ) { print("?Invalid program number!\n"); $dont_send = 1; } } if ( $dont_send == 0 ) { $t->print("GRAPH $chart"); @line = $t->getline( Timeout => 1 ); } } elsif ( $function == 3 ) { #Switch to the multicast source and restart TSReader print "Multicast address to listen to? "; $multicast_address = ; chomp $multicast_address; print "UDP port to listen to? "; $multicast_port = ; chomp $multicast_port; $t->print("SOURCE TSReader_UDPMulticast.dll"); @line = $t->getline( Timeout => 1 ); print "Response to SOURCE: @line"; $t->print("TUNE $multicast_address $multicast_port"); @line = $t->getline( Timeout => 1 ); print "Response to TUNE: line"; } elsif ( $function == 4 ) { $dont_send = 0; print "Program number? "; $program_number = ; chomp $program_number; $t->print("PROGRAM $program_number"); @line = $t->getline( Timeout => 1 ); if ( @line = "~ /502/" ) { print("?Invalid program number!\n"); $dont_send = 1; } if ( $dont_send eq 0 ) { $t->print("PLAY VLC1"); @line = $t->getline( Timeout => 1 ); print "Response to PLAY: @line"; } } elsif ( $function == 5 ) { $dont_send = 0; $t->print("TUNE $freq1"); print "Changed Tuner 1\n"; sleep(10); $t->print("EXPORT HTML $pfad1"); sleep(3); $dont_send = 0; $t->print("TUNE $freq2"); print "Changed Tuner2\n"; sleep(10); $t->print("EXPORT HTML $pfad2"); print "HTML-Seiten wurde erfolgreich Exportiert\n\n"; } } #all done $dont_send = 0; print "Beenden"; $function = ; if ( $function == 6 ) { $t->print(''); }