#!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"); ##=============== 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);}; ##=============== 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 - show info\n"; print "Function? "; $function = ; chop $function; if ($function eq 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 eq 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 = ; chop $chart; if ($chart eq 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 eq 0) { $t->print("GRAPH $chart"); @line = $t->getline(Timeout => 1); } } elsif ($function eq 3) { #Switch to the multicast source and restart TSReader print "Multicast address to listen to? "; $multicast_address = ; chop $multicast_address; print "UDP port to listen to? "; $multicast_port = ; chop $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 eq 4) { $dont_send = 0; 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 eq 0) { $t->print("PLAY VLC1"); @line = $t->getline(Timeout => 1); print "Response to PLAY: @line"; } elsif ($function eq 5) { $dont_send = 0; $t->print("EXPORT"); } elsif ($function eq 6) { $dont_send = 0; $t->print("INFO"); @line = $t->getline(Timeout => 1); print "INFO"; } } #all done $t->print("quit");