init III
This commit is contained in:
115
Perl SnomControl/snomctrl.pl
Normal file
115
Perl SnomControl/snomctrl.pl
Normal file
@@ -0,0 +1,115 @@
|
||||
#!/bin/perl
|
||||
|
||||
# TK zur Fensterdarstellung verwenden
|
||||
use Tk;
|
||||
|
||||
use HTTP::Request::Common qw(POST);
|
||||
use LWP::UserAgent;
|
||||
|
||||
# Saubere Programmierung erzwingen
|
||||
use strict;
|
||||
|
||||
my $eingegeben;
|
||||
my @gewaehlt;
|
||||
|
||||
# Neues Fensterobjekt erzeugen
|
||||
my $main = new MainWindow(-title=>'SnomControl');
|
||||
|
||||
# Frameobjekt im Fensterobjekt mit verschiedenen Eigenschaften wird erzeugt
|
||||
# nimmt später Statuslabel, LetzteNachrichtLabel und Eingabezeile auf
|
||||
my $top_f=$main->Frame(-width=>200, -height=>200)->pack(-side=>'top', -padx=>5, -pady=>5);
|
||||
|
||||
# Ein weiteres Frameobjekt, das die Schaltflächen aufnimmt
|
||||
my $bottom_f=$main->Frame()->pack(-side=>'top', -padx=>5, -pady=>5);
|
||||
|
||||
# Configure Event des Fensters wird abgefangen und ein resize verhindert
|
||||
$main->bind('<Configure>' => sub {
|
||||
my $xe = $main->XEvent;
|
||||
$main->maxsize($xe->w, $xe->h);
|
||||
$main->minsize($xe->w, $xe->h);
|
||||
});
|
||||
|
||||
# Eingabeobjekt erzeugen und Variable $eingegeben wird referenziert, dadurch landen alle Eingaben in dieser globalen Variable
|
||||
my $eingabe = $top_f->Entry(-width=>50, -textvariable => \$eingegeben);
|
||||
|
||||
# Die Schaltflächen Dial,Hangup
|
||||
my $left1=$bottom_f->Frame()->pack(-side=>'left', -fill=>'none');
|
||||
my $left2=$bottom_f->Frame()->pack(-side=>'left', -fill=>'none');
|
||||
my $left3=$bottom_f->Frame()->pack(-side=>'left', -fill=>'none');
|
||||
my $left4=$bottom_f->Frame()->pack(-side=>'left', -fill=>'none');
|
||||
my $left5=$bottom_f->Frame()->pack(-side=>'left', -fill=>'none');
|
||||
|
||||
# Standardaktion bei <Return> wird definiert, selbe Aktion wie bei Betätigung der Senden Schaltfläche (Aufruf sub senden_click)
|
||||
$eingabe->bind('<Return>', \&dial_click );
|
||||
|
||||
# Senden Knopf wird definiert, Beschriftung und Aktion (Aufruf sub senden_click)
|
||||
my $dial_button = $left1->Button(
|
||||
'-text' => 'Dial/Accept',
|
||||
'-command' => \&dial_click,
|
||||
);
|
||||
|
||||
my $pickup_button = $left2->Button(
|
||||
'-text' => 'Pick up',
|
||||
'-command' => \&pickup_click,
|
||||
);
|
||||
|
||||
my $redial_button = $left3->Button(
|
||||
'-text' => 'Redial',
|
||||
'-command' => \&redial_click,
|
||||
);
|
||||
|
||||
my $hangup_button = $left4->Button(
|
||||
'-text' => 'Hang up',
|
||||
'-command' => \&hangup_click,
|
||||
);
|
||||
|
||||
my $history_button = $left5->Button(
|
||||
'-text' => 'History',
|
||||
'-command' => \&history_click,
|
||||
);
|
||||
|
||||
$eingabe->pack(-anchor => 'w');
|
||||
|
||||
# Knöpfe werden angezeigt
|
||||
$dial_button->pack;
|
||||
$pickup_button->pack;
|
||||
$redial_button->pack;
|
||||
$hangup_button->pack;
|
||||
$history_button->pack;
|
||||
|
||||
# MainLoop des TK
|
||||
MainLoop;
|
||||
|
||||
sub dial_click {
|
||||
# Wenn Text nicht leer ist
|
||||
if ($eingegeben ne "") {
|
||||
push @gewaehlt, $eingegeben;
|
||||
my $ua = LWP::UserAgent->new();
|
||||
my $req = POST 'http://fote98:K01v1kk0!@10.60.1.21/command.htm', [ number => "$eingegeben"];
|
||||
my $content = $ua->request($req)->as_string;
|
||||
$eingegeben="";
|
||||
}
|
||||
else {
|
||||
my $ua = LWP::UserAgent->new();
|
||||
my $req = POST 'http://fote98:K01v1kk0!@10.60.1.21/link?accept=-14';
|
||||
my $content = $ua->request($req)->as_string;
|
||||
}
|
||||
}
|
||||
|
||||
sub pickup_click {
|
||||
my $ua = LWP::UserAgent->new();
|
||||
my $req = POST 'http://fote98:K01v1kk0!@10.60.1.21/command.htm', [ number => "*8"];
|
||||
my $content = $ua->request($req)->as_string;
|
||||
}
|
||||
|
||||
sub redial_click {
|
||||
}
|
||||
|
||||
sub hangup_click {
|
||||
my $ua = LWP::UserAgent->new();
|
||||
my $req = POST 'http://fote98:K01v1kk0!@10.60.1.21/command.htm?key=cancel';
|
||||
my $content = $ua->request($req)->as_string;
|
||||
}
|
||||
|
||||
sub history_click {
|
||||
}
|
||||
Reference in New Issue
Block a user