#!/usr/local/bin/perl use Tk; # Main Window my $mw = new MainWindow; $mw->Frame(-background => 'red')->pack(-ipadx =>50, -side => "left", -fill => "y"); #Making a text area my $txt = $mw -> Scrolled('Text',-width => 150, height => 40, -scrollbars=>'e', -font => "fixed 8 bold" ) -> pack (); $txt->insert('end', ""); #Declare that there is a menu my $mbar = $mw -> Menu(); $mw -> configure(-menu => $mbar); #The Main Buttons my $file = $mbar -> cascade(-label=>"File", -underline=>0, -tearoff => 0); my $tool= $mbar -> cascade(-label =>"Tools", -underline=>0, -tearoff => 0); my $parser = $mbar -> cascade(-label =>"RL Parser", -underline=>0, -tearoff => 0); my $help = $mbar -> cascade(-label =>"Help", -underline=>0, -tearoff => 0); ## File Menu ## $file -> command(-label => "Home", -underline=>0, -command=> \&home ); $file -> command(-label => "Check KPI definitions", -underline=>0, -command=> \&define ); $file -> checkbutton(-label =>"Check for faults", -underline => 0, -command => \&faults); $file -> separator(); $file -> command(-label =>"Exit", -underline => 1, -command => sub { exit } ); ## Tools Menu ## $tool -> command(-label => "Network planning", -underline=>0, -command=> \&nwplan ); $tool -> command(-label => " ", -underline=>0, -command=> \&optimize ); $tool -> separator(); $tool -> command(-label =>"Network Planning Rules", -underline =>1, -command => sub { $txt -> delete('1.0', 'end'); $txt->insert('end',"some text");}); ## Parse Menu ## $parser -> command(-label => "Parse the RL Dump", -underline=>0, -command=> \&parse ); ## Help Menu ## $help -> command(-label => "About", -underline=>0, -command=> \&help ); MainLoop; sub help { my ($opt) = @_; $mw->messageBox(-message=>"This function is not available yet"); } sub define { my $mw = new MainWindow; # Main Window my $frm_name = $mw -> Frame(); my $lab = $frm_name -> Label(-text=>"Enter KPI:"); my $ent = $frm_name -> Entry(); my $but = $mw -> Button(-text=>"Check", -command =>\&push_button1); my $textarea = $mw -> Frame(); #Creating Another Frame my $txt = $textarea -> Text(-width=>130, -height=>30, -font=> "fixed 10 bold"); my $srl_y = $textarea -> Scrollbar(-orient=>'v',-command=>[yview => $txt]); my $srl_x = $textarea -> Scrollbar(-orient=>'h',-command=>[xview => $txt]); $txt -> configure(-yscrollcommand=>['set', $srl_y], -xscrollcommand=>['set',$srl_x]); $lab -> grid(-row=>1,-column=>1); $ent -> grid(-row=>1,-column=>2); $frm_name -> grid(-row=>1,-column=>1,-columnspan=>2); $but -> grid(-row=>4,-column=>1,-columnspan=>2); $txt -> grid(-row=>1,-column=>1); $srl_y -> grid(-row=>1,-column=>2,-sticky=>"ns"); $srl_x -> grid(-row=>2,-column=>1,-sticky=>"ew"); $textarea -> grid(-row=>5,-column=>1,-columnspan=>2); $txt -> insert('end',"some points" ); MainLoop; #This function will be executed when the button is pushed sub push_button1 { my $name = $ent -> get(); if($name eq "TCH Traffic") {$txt -> delete('1.0', 'end'); $txt -> insert('end',"some text"); } elsif($name eq "SDCCH Drop") {$txt -> delete('1.0', 'end'); $txt -> insert('end',"some text");} elsif($name eq "TCH Assignment") {$txt -> delete('1.0', 'end'); $txt -> insert('end'," some text");} elsif($name eq "TCH Blocking") {$txt -> delete('1.0', 'end'); $txt -> insert('end'," some text");} elsif($name eq "TCH Drop") {$txt -> delete('1.0', 'end'); $txt -> insert('end'," some text");} elsif($name eq "HOSR") {$txt -> delete('1.0', 'end'); $txt -> insert('end'," some text");} elsif($name eq "SDCCH Blocking") {$txt -> delete('1.0', 'end'); $txt -> insert('end',"some text");} else {$txt -> delete('1.0', 'end'); $txt -> insert('end'," Wrong Keyword. Please Try Again"); } } } sub nwplan { use Tk; #Global Variables my $gender = "TCH Drop"; # Main Window my $mw = new MainWindow; my $frm_name = $mw -> Frame(); my $lab = $frm_name -> Label(-text=>"Name:"); my $ent = $frm_name -> Entry(); my $frm_a = $mw -> Frame(); my $laba = $frm_a -> Label(-text=>"Name:"); my $enta = $frm_a -> Entry(); my $frm_b = $mw -> Frame(); my $labb = $frm_b -> Label(-text=>"Name:"); my $entb = $frm_b -> Entry(); #Define KPI my $frm_job = $mw -> Frame(); @set = (61,62, 63, 64 ,65 ,66 ,67 ,68 ,69 ,70 ,71 ,72, 73, 74, 75); #Gender my $frm_gender = $mw -> Frame(); my $lbl_gender = $frm_gender -> Label(-text=>"Enter the ARFCN of adjacent cell 1"); my $ent = $frm_gender -> Entry(); my $frm_gendera = $mw -> Frame(); my $lbl_gendera = $frm_gendera -> Label(-text=>"Enter the ARFCN of adjacent cell 2"); my $enta = $frm_gendera -> Entry(); my $frm_genderb = $mw -> Frame(); my $lbl_genderb = $frm_genderb -> Label(-text=>"Enter the ARFCN of adjacent cell 3"); my $entb = $frm_genderb -> Entry(); my $but = $mw -> Button(-text=>"Check", -command =>\&push_button2); #Text Area my $textarea = $mw -> Frame(); my $txt = $textarea -> Text(-width=>130, -height=>30, -font=> "fixed 10 bold"); my $srl_y = $textarea -> Scrollbar(-orient=>'v',-command=>[yview => $txt]); my $srl_x = $textarea -> Scrollbar(-orient=>'h',-command=>[xview => $txt]); $txt -> configure(-yscrollcommand=>['set', $srl_y], -xscrollcommand=>['set',$srl_x]); #Geometry Management $lab -> grid(-row=>0,-column=>1); $ent -> grid(-row=>0,-column=>2); $lbl_gender -> grid(-row=>0,-column=>1); $frm_gender -> grid(-row=>2,-column=>1,-columnspan=>2); $laba -> grid(-row=>1,-column=>1); $enta -> grid(-row=>1,-column=>2); $lbl_gendera -> grid(-row=>1,-column=>1); $frm_gendera -> grid(-row=>3,-column=>1,-columnspan=>2); $labb -> grid(-row=>3,-column=>1); $entb -> grid(-row=>3,-column=>2); $lbl_genderb -> grid(-row=>3,-column=>1); $frm_genderb -> grid(-row=>4,-column=>1,-columnspan=>2); $but -> grid(-row=>4,-column=>2,-columnspan=>2); $txt -> grid(-row=>1,-column=>1); $srl_y -> grid(-row=>1,-column=>2,-sticky=>"ns"); $srl_x -> grid(-row=>2,-column=>1,-sticky=>"ew"); $textarea -> grid(-row=>5,-column=>1,-columnspan=>2); $txt -> insert('end'," some text"); MainLoop; ## Functions #This function will be executed when the button is pushed sub push_button2 { $gender = $ent ->get(); $gendera = $enta ->get(); $genderb = $entb ->get(); @list = (61,62,63,64,65,66,67,68,69,70,71,72,73,74,75 ); @final = (undef); @sum = (undef); if($gender >= 61 && $gender <= 75 && $gendera >= 61 && $gendera <= 75 && $genderb >= 61 && $genderb <= 75) { $d = $gender -$gendera; $e = $gendera-$genderb; $f = $genderb-$gender; if( $d == -1 || $d == 0 || $d == 1 || $e == -1 || $e == 0 || $e == 1 || $f== -1 || $f == 0 || $f == 1 ) { $txt -> delete('1.0', 'end'); $txt -> insert('end'," Incorrect Entries. Check the values entered Reason: Neigbor cell mismatch"); } else { foreach $key ( @list ) { $a = $gender -$key; $b = $gendera-$key; $c = $genderb-$key; if( $a == -1 || $a == 0 || $a == 1 || $b == -1 || $b == 0 || $b == 1 || $c== -1 || $c == 0 || $c == 1 ) { next; } else { push( @final, $key); $txt -> delete('1.0', 'end'); } } $size = @final; @gender = ($gender,$gendera,$genderb); $txt -> delete('1.0', 'end'); $txt -> insert('end'," The set of allowed frequencies are \n"); $txt -> insert('end'," \t @final"); $x = $size; @i= (undef); for($i=0; $i<$x; $i++) { for($j=0; $j<3; $j++) { $i[$j] = $gender[$j] - $final[$i]; if($i[$j]<0) { $i[$j] = (-1)*$i[$j];} else { $i[$j]=$i[$j]; } } $total =0; foreach $xyz(@i) { $total = $total + $xyz; } push(@sum, $total); } shift(@sum); shift(@sum); $txt-> insert('end'," \n The distance matrix is given as: \n \t@sum"); $txt-> insert('end'," some text"); } } else { $txt -> delete('1.0', 'end'); $txt -> insert('end'," Please Check the frequencies entered"); } } } sub faults { #Global Variables my $gender = "TCH Drop"; # Main Window my $mw = new MainWindow; #Define KPI my $frm_job = $mw -> Frame(); #Gender my $frm_gender = $mw -> Frame(); my $lbl_gender = $frm_gender -> Label(-text=>"KPI Affected "); my $ent = $frm_gender -> Entry(); my $rdb_m = $frm_gender -> Radiobutton(-text=>"TCH Drop", -value=>"TCH Drop", -variable=>\$gender); my $rdb_f = $frm_gender -> Radiobutton(-text=>"TCH Blocking", -value=>"TCH Blocking",-variable=>\$gender); my $rdb_j = $frm_gender -> Radiobutton(-text=>"TCH assignment", -value=>"TCH Assignment",-variable=>\$gender); my $rdb_k = $frm_gender -> Radiobutton(-text=>"SDCCH Blocking", -value=>"SDCCH Blocking",-variable=>\$gender); my $rdb_t = $frm_gender -> Radiobutton(-text=>"SDCCH Drop", -value=>"SDCCH Drop",-variable=>\$gender); my $rdb_l = $frm_gender -> Radiobutton(-text=>"HOSR", -value=>"HOSR",-variable=>\$gender); my $but = $mw -> Button(-text=>"Check", -command =>\&push_button); #Text Area my $textarea = $mw -> Frame(); my $txt = $textarea -> Text(-width=>130, -height=>30, -font=> "fixed 10 bold"); my $srl_y = $textarea -> Scrollbar(-orient=>'v',-command=>[yview => $txt]); my $srl_x = $textarea -> Scrollbar(-orient=>'h',-command=>[xview => $txt]); $txt -> configure(-yscrollcommand=>['set', $srl_y], -xscrollcommand=>['set',$srl_x]); #Geometry Management $lbl_gender -> grid(-row=>1,-column=>1); $rdb_m -> grid(-row=>1,-column=>2); $rdb_f -> grid(-row=>1,-column=>3); $rdb_j -> grid(-row=>1,-column=>4); $rdb_k -> grid(-row=>1,-column=>5); $rdb_l -> grid(-row=>1,-column=>6); $rdb_t -> grid(-row=>1,-column=>7); $frm_gender -> grid(-row=>3,-column=>1,-columnspan=>2); $but -> grid(-row=>4,-column=>1,-columnspan=>2); $txt -> grid(-row=>1,-column=>1); $srl_y -> grid(-row=>1,-column=>2,-sticky=>"ns"); $srl_x -> grid(-row=>2,-column=>1,-sticky=>"ew"); $textarea -> grid(-row=>5,-column=>1,-columnspan=>2); MainLoop; ## Functions #This function will be executed when the button is pushed sub push_button { if($gender eq "SDCCH Blocking") {$txt -> delete('1.0', 'end'); $txt -> insert('end',"*some text"); } elsif($gender eq "HOSR") { $txt -> delete('1.0', 'end'); $txt -> insert('end'," *some text"); } elsif($gender eq "SDCCH Drop") { $txt -> delete('1.0', 'end'); $txt -> insert('end',"*some text*"); } elsif($gender eq "TCH Blocking") {$txt -> delete('1.0', 'end'); $txt -> insert('end'," some text"); } elsif($gender eq "TCH Drop") {$txt -> delete('1.0', 'end'); $txt -> insert('end',"some text"); } elsif($gender eq "TCH Assignment") {$txt -> delete('1.0', 'end'); $txt -> insert('end',"some text"); } }} }