
| Current Path : /var/www/web-klick.de/dsh/90_akt/PPLTest.old/ |
Linux ift1.ift-informatik.de 5.4.0-216-generic #236-Ubuntu SMP Fri Apr 11 19:53:21 UTC 2025 x86_64 |
| Current File : /var/www/web-klick.de/dsh/90_akt/PPLTest.old/MMIStatus2.pm |
package PPLTest::MMIStatus;
use strict;
use Server::BlackBoard;
use PPLTest::Buffer_Semantic;
use Data::Dumper;
use MIME::Base64;
use Time::HiRes qw(usleep);
#********************************************************************
sub new {
my $class = shift;
my $self = {};
bless($self,$class);
return($self);
}
#********************************************************************
sub event {
print "procedure event\n";
my $self = shift;
my $v = shift;
my $t = shift;
my $o; my $o1; my $o2; my $VAR1;
my $erg = "";
my $semantic = PPLTest::Buffer_Semantic->new($v->{'data'});
my $out = Server::BlackBoard->new($PAR::in_db->{$v->{'data'}});
my $in = Server::BlackBoard->new($PAR::out_db->{$v->{'data'}});
if ($v->{'socket_exists'} == 0) {
$erg = "___INTERACTIVE___";
}
elsif ($t =~ /^sync$/i) {
$out->msg("getbytes");
}
elsif ($t =~ /^KeyPressShort/i) {
my $bytefolge = $semantic->send($t);
$out->msg($bytefolge);
# $out->msg("getbytes");
}
elsif ($t =~ /^SoftKey.(.*)$/i) {
my $mmi = $v->{'mmi'};
$t = $mmi->{'matrix'}->{$1};
my $bytefolge = $semantic->send($t);
$out->msg($bytefolge);
# $out->msg("getbytes");
}
elsif ($t =~ /^display$/i) {
$out->msg("getbytes");
my $in = Server::BlackBoard->new($PAR::out_db->{$v->{'data'}},
$v->{'dblast'});
my $messages = $in->get();
$v->{'dblast'} = $in->last();
foreach $o (reverse @$messages) {
print "BUFFER MESSAGE $o->[1]\n";
if ($o->[1] =~ /^(05|1A)..(..)(.+)$/i) {
$erg = int(hex($3)) . "-" . int(hex($2)) . "-" . $o->[0]; # processdescr - statedescr - eingangszeit
last;
}
}
}
print "Ergebnis: $erg\n";
return($erg);
}
#********************************************************************
sub status {
my $self = shift;
my $v = shift;
my $t = shift;
my $e = shift; # Ergebnis
my $z = shift;
if (!$z) { $z = time(); }
my $mmi = $v->{'mmi'};
unshift(@{$mmi->{'trace'}},[$t,$e,$z]);
if (!($mmi->{'screen'})) {
print "Init\n";
$mmi->{'screen'} = { 'name' => "ausgeschaltet" };
$mmi->{'eib'} = 1;
$mmi->{'partition'} = "basispartition";
}
my $screen; my $fkt;
print "Screen: $mmi->{'screen'}->{'name'}\n";
print "Taste: $t\n";
print "Zeit: $z\n";
while (0 == 0) {
$screen = $mmi->{'screen'};
$fkt = $v->{'data'} . "_" . $mmi->{'screen'}->{'name'};
eval("\$self->$fkt(\$v,\$mmi,\$screen,\$t,\$e,\$z)");
if ($@) {
$fkt = "common_" . $mmi->{'screen'}->{'name'};
eval("\$self->$fkt(\$v,\$mmi,\$screen,\$t,\$e,\$z)");
if ($@) { print "Function not found!\n";}
}
last if (!($screen->{'redirect'}));
print "REDIRECT-SCREEN: $screen->{'redirect'}\n";
$mmi->{'screen'} = $screen->{'redirect'};
delete ($screen->{'redirect'});
$mmi->{'screen'}->{'zeit'} = $z;
}
$screen->{'zeit'} = $z;
my $mmi1 = {%$mmi};
delete ($mmi1->{'trace'});
$v->{'log'} = $v->{'log'} . Dumper($mmi1);
}
#********************************************************************
sub display {
my $self = shift;
my $title = shift;
my $partition = shift;
my $e = shift;
my $v = shift;
my $ist;
my $soll;
my $semantic = PPLTest::Buffer_Semantic->new($v->{'data'});
my $var_map = $semantic->var_map();
$soll = int($var_map->{$title}) . "-" . int($var_map->{$partition});
print "Sollwert: $soll -> $title-$partition\n";
if ($e =~ /^(.*\-.*)\-(.*)$/) {
$ist = $1;
print "Istwert: $ist\n";
if (lc($ist) ne lc $soll) {
$v->{'result'} = 1009;
}
}
elsif ($e =~ /^(.*\-.*)$/) {
$ist = $1;
if (lc($ist) ne lc($title . "-" . $partition)) {
$v->{'result'} = 1009;
}
}
elsif ($e !~ /^OK$/i) {
$v->{'result'} = 1009;
}
if ($v->{'result'} == 1009) {
$v->{'remark'} = "Wrong screen";
$v->{'weight'} = 50;
$v->{'log'} = "ERROR: Wrong screen:\nIST: " . $ist .
"\nSOLL: " . $title . "-" . $partition . "\n\n\n" .
$v->{'log'};
}
}
#********************************************************************
sub rotate {
my $self = shift;
my $o1 = shift;
my $liste = [@$o1];
my $o2 = shift(@$liste);
push(@$liste,$o2);
my $decessor = {};
while (@$liste) {
$o1 = $o2;
$o2 = shift(@$liste);
$decessor->{$o1} = $o2;
$decessor->{".".$o2} = $o1;
}
print Dumper($decessor);
return($decessor);
}
#********************************************************************
# AUSGESCHALTET
#********************************************************************
sub common_ausgeschaltet {
my $self = shift;
my ($v,$mmi,$screen,$t,$e,$z) = @_;
# erstinbetriebnahme
if ($t eq "KeyPressShort.EINAUS") {
if ($mmi->{'eib'} == 1){
$mmi->{'screen'} = { 'name' => 'willkommensAnzeige' };
}
else {
$mmi->{'screen'} = { 'name' => 'getraenkWaehlen' };
}
}
elsif ($t eq "DISPLAY") {
$self->display("OFF_MODE","BASISPARTITION",$e,$v);
}
print "OFF_MODE\n";
}
#********************************************************************
# ERSTINBETRIEBNAHME
#********************************************************************
sub common_willkommensAnzeige {
my $self = shift;
my ($v,$mmi,$screen,$t,$e,$z) = @_;
if ($z - $screen->{'zeit'} > 3){
$mmi->{'screen'}->{'redirect'} = { 'name' => 'sprachAuswahl' };
}
elsif ($t eq "DISPLAY") {
$self->display("VDE0_WILLKOMMEN","BASISPARTITION",$e,$v);
}
print "WILLKOMMEN\n";
}
#********************************************************************
sub common_anzeigeEib {
my $self = shift;
my ($v,$mmi,$screen,$t,$e,$z) = @_;
if ($t eq "KeyPressShort.OK") {
$mmi->{'screen'} = { 'name' => 'energieverbrauchEib' };
}
elsif ($t eq "DISPLAY") {
$self->display("TZ_ANZEIGE_ERSTINBETRIEBNAHME","BASISPARTITION",$e,$v);
}
print "TZ_ANZEIGE_ERSTINBETRIEBNAHME\n";
}
#********************************************************************
sub common_energieverbrauchEib {
my $self = shift;
my ($v,$mmi,$screen,$t,$e,$z) = @_;
if ($t eq "KeyPressShort.OK") {
$mmi->{'screen'} = { 'name' => 'erfolgEib' };
}
elsif ($t eq "DISPLAY") {
$self->display("MLDG_ERSTINBETRIEBNAHME_ENERGIEVERBRAUCH_GERING","BASISPARTITION",$e,$v);
}
print "MLDG_ERSTINBETRIEBNAHME_ENERGIEVERBRAUCH_GERING\n";
}
#********************************************************************
sub common_erfolgEib {
my $self = shift;
my ($v,$mmi,$screen,$t,$e,$z) = @_;
if ($t eq "KeyPressShort.OK") {
$mmi->{'screen'} = { 'name' => 'getraenkWaehlen' };
$mmi->{'eib'} = 0;
}
elsif ($t eq "DISPLAY") {
$self->display("MLDG_ERSTINBETRIEBNAHME_ERFOLG","BASISPARTITION",$e,$v);
}
print "MLDG_ERSTINBETRIEBNAHME_ERFOLG\n";
}
#********************************************************************
# GETRAENK WAEHLEN
#********************************************************************
sub common_getraenkWaehlen {
my $self = shift;
my ($v,$mmi,$screen,$t,$e,$z) = @_;
if ($t eq "KeyPressShort.MENU") {
$mmi->{'screen'} = { 'name' => 'einstellungenAuswahl' };
}
elsif($t eq "KeyPressShort.ESPRESSO"){
$mmi->{'screen'} = { 'name' => 'espresso' };
}
elsif($t eq "KeyPressShort.ITEM1"){
$mmi->{'screen'} = { 'name' => 'kaffee' };
}
elsif($t eq "KeyPressShort.CAPPUCCINO"){
$mmi->{'screen'} = { 'name' => 'cappucino' };
}
elsif($t eq "KeyPressShort.LATTE_MACCHIATO"){
$mmi->{'screen'} = { 'name' => 'latteMachiato' };
}
elsif($t eq "KeyPressShort.CAFFEE_LATTE"){
$mmi->{'screen'} = { 'name' => 'caffeeLatte' };
}
elsif($t eq "KeyPressShort.WEITERE"){
$mmi->{'screen'} = { 'name' => 'weitere' };
}
elsif ($t eq "DISPLAY") {
$self->display("BITTE_GETRAENK_WAEHLEN","BASISPARTITION",$e,$v);
}
print "BITTE_GETRAENK_WAEHLEN\n";
}
#********************************************************************
# EINSTELLUNGEN
#********************************************************************
sub common_einstellungenAuswahl {
my $self = shift;
my ($v,$mmi,$screen,$t,$e,$z) = @_;
my $einstellungenliste = $self->rotate([qw(sprachAuswahl tageszeitAuswahl timerAuswahl komfortmodusAnzeige dampfsystemAnzeige beleuchtungAuswahl infoAuswahl inbetriebnahmesperreAuswahl WasserhaerteAuswahl displayAuswahl lautstaerkeAuswahl geschirrwaermerAuswahl festwasserAuswahl haendlerAuswahl werkseinstellungAuswahl)]);
if ($z - $screen->{'zeit'} > 10) {
$screen->{'redirect'} = { 'name' => 'getraenkWaehlen' };
}
elsif ($t eq "KeyPressShort.ZURUECK") {
$mmi->{'screen'} = { 'name' => 'getraenkWaehlen' };
}
elsif ($t eq "KeyPressShort.OK") {
$mmi->{'einstellungen'} = $screen->{'einstellungen'};
$mmi->{'screen'} = { 'name' => $screen->{'einstellungen'} };
}
elsif ($t eq "KeyPressShort.AUF") {
$screen->{'einstellungen'} = $einstellungenliste->{$screen->{'einstellungen'}};
}
elsif ($t eq "KeyPressShort.AB") {
$screen->{'einstellungen'} = $einstellungenliste->{".".$screen->{'einstellungen'}};
}
elsif ($t eq "DISPLAY") {
$self->display("BITTE_GETRAENK_WAEHLEN","BASISPARTITION",$e,$v);
}
}
#********************************************************************
# SPRACHE
#********************************************************************
sub common_sprachAuswahl {
my $self = shift;
my ($v,$mmi,$screen,$t,$e,$z) = @_;
$screen->{'sprache'} ||= $mmi->{'sprache'} || 'deutsch';
my $sprachliste = $self->rotate([keys %{$PAR::sprache->{$v->{'data'}}}]);
if (($z - $screen->{'zeit'} > 10) && ($mmi->{'eib'} == 0)){
$screen->{'redirect'} = { 'name' => 'einstellungenAuswahl' };
}
elsif ($t eq "KeyPressShort.ZURUECK") {
$mmi->{'screen'} = { 'name' => 'einstellungenAuswahl' };
}
elsif ($t eq "KeyPressShort.OK") {
$mmi->{'sprache'} = $screen->{'sprache'};
if ($mmi->{'eib'} == 1) {
$mmi->{'screen'} = { 'name' => 'tageszeitAnzeige' };
}
if ($mmi->{'eib'} == 0){
$mmi->{'screen'} = { 'name' => 'einstellungenAuswahl' };
}
}
elsif ($t eq "KeyPressShort.AUF") {
$screen->{'sprache'} = $sprachliste->{$screen->{'sprache'}};
}
elsif ($t eq "KeyPressShort.AB") {
$screen->{'sprache'} = $sprachliste->{".".$screen->{'sprache'}};
}
elsif ($t eq "SoftKey.Item1") {
$mmi->{'screen'} = { 'name' => 'cappucino' };
if ($mmi->{'eib'} == 1) {
$self->display("SPRACHE_ERSTINBETRIEBNAHME","BASISPARTITION",$e,$v);
}
if ($mmi->{'eib'} == 0){
$self->display("SPRACHE","BASISPARTITION",$e,$v);
}
}
elsif ($t eq "DISPLAY") {
if ($mmi->{'eib'} == 1) {
$self->display("SPRACHE_ERSTINBETRIEBNAHME","BASISPARTITION",$e,$v);
}
if ($mmi->{'eib'} == 0){
$self->display("SPRACHE","BASISPARTITION",$e,$v);
}
}
print "SPRACHE / SPRACHE_ERSTINBETRIEBNAHME\n";
}
#********************************************************************
# TAGESZEIT
#********************************************************************
sub common_tageszeitAuswahl {
my $self = shift;
my ($v,$mmi,$screen,$t,$e,$z) = @_;
my $tageszeitliste = $self->rotate([qw(tageszeitAnzeige tageszeitDarstellung tageszeitHintergrund tageszeitZeitformat tageszeitEinstellen tageszeitSynchronisieren)]);
if (($z - $screen->{'zeit'} > 10) && ($mmi->{'eib'} == 0)){
$screen->{'redirect'} = { 'name' => 'einstellungenAuswahl' };
}
elsif ($t eq "KeyPressShort.OK") {
$mmi->{'tageszeit'} = $screen->{'tageszeit'};
$mmi->{'screen'} = { 'name' => $screen->{'anzeigeEib'} };
}
elsif ($t eq "KeyPressShort.AUF") {
$screen->{'tageszeit'} = $tageszeitliste->{$screen->{'tageszeit'}};
}
elsif ($t eq "KeyPressShort.AB") {
$screen->{'tageszeit'} = $tageszeitliste->{".".$screen->{'tageszeit'}};
}
elsif ($t eq "KeyPressShort.ZURUECK") {
$mmi->{'screen'} = { 'name' => 'einstellungenAuswahl' };
}
elsif ($t eq "DISPLAY") {
$self->display("TAGESZEIT","BASISPARTITION",$e,$v);
}
print "TAGESZEIT\n";
}
#********************************************************************
sub common_tageszeitAnzeige {
my $self = shift;
my ($v,$mmi,$screen,$t,$e,$z) = @_;
$screen->{'cursor'} ||= 0;
if (($z - $screen->{'zeit'} > 10) && ($mmi->{'eib'} == 0)) {
$screen->{'redirect'} = { 'name' => 'tageszeitAuswahl' };
}
elsif ($t eq "KeyPressShort.ZURUECK") {
$mmi->{'screen'} = { 'name' => 'tageszeitAuswahl' };
}
elsif ($t eq "KeyPressShort.OK") {
print "Curser: $screen->{'cursor'} \n";
if ($screen->{'cursor'} == 1) {
$mmi->{'screen'} = { 'name' => 'anzeigeEib' };
} else {
$screen->{'cursor'} = $screen->{'cursor'} + 1;
}
}
elsif ($t eq "DISPLAY") {
if ($mmi->{'eib'} == 1) {
$self->display("TZ_ANZEIGE_ERSTINBETRIEBNAHME","BASISPARTITION",$e,$v);
}
if ($mmi->{'eib'} == 0){
$self->display("ANZEIGE","BASISPARTITION",$e,$v);
}
}
print "ANZEIGE / ZEITFORMAT_ERSTINBETRIEBNAHME\n";
}
#********************************************************************
sub common_tageszeitDarstellung {
my $self = shift;
my ($v,$mmi,$screen,$t,$e,$z) = @_;
if ($z - $screen->{'zeit'} > 10) {
$screen->{'redirect'} = { 'name' => 'tageszeitAuswahl' };
}
elsif (($t eq "KeyPressShort.OK") || ($t eq "KeyPressShort.ZURUECK")){
$mmi->{'screen'} = { 'name' => 'tageszeitAuswahl' };
}
elsif ($t eq "DISPLAY") {
$self->display("DARSTELLUNG","BASISPARTITION",$e,$v);
}
}
#********************************************************************
sub common_tageszeitHintergrund {
my $self = shift;
my ($v,$mmi,$screen,$t,$e,$z) = @_;
if ($z - $screen->{'zeit'} > 10) {
$screen->{'redirect'} = { 'name' => 'tageszeitAuswahl' };
}
elsif (($t eq "KeyPressShort.OK") || ($t eq "KeyPressShort.ZURUECK")){
$mmi->{'screen'} = { 'name' => 'tageszeitAuswahl' };
}
elsif ($t eq "DISPLAY") {
$self->display("HINTERGRUND","BASISPARTITION",$e,$v);
}
}
#********************************************************************
sub common_tageszeitZeitformat {
my $self = shift;
my ($v,$mmi,$screen,$t,$e,$z) = @_;
if ($z - $screen->{'zeit'} > 10) {
$screen->{'redirect'} = { 'name' => 'tageszeitAuswahl' };
}
elsif (($t eq "KeyPressShort.OK") || ($t eq "KeyPressShort.ZURUECK")){
$mmi->{'screen'} = { 'name' => 'tageszeitAuswahl' };
}
elsif ($t eq "DISPLAY") {
$self->display("ZEITFORMAT","BASISPARTITION",$e,$v);
}
}
#********************************************************************
sub common_tageszeitEinstellen {
my $self = shift;
my ($v,$mmi,$screen,$t,$e,$z) = @_;
if ($z - $screen->{'zeit'} > 10) {
$screen->{'redirect'} = { 'name' => 'tageszeitAuswahl' };
}
elsif (($t eq "KeyPressShort.OK") || ($t eq "KeyPressShort.ZURUECK")){
$mmi->{'screen'} = { 'name' => 'tageszeitAuswahl' };
}
elsif ($t eq "DISPLAY") {
$self->display("EINSTELLEN","BASISPARTITION",$e,$v);
}
}
#********************************************************************
sub common_tageszeitSynchronisieren {
my $self = shift;
my ($v,$mmi,$screen,$t,$e,$z) = @_;
if ($z - $screen->{'zeit'} > 10) {
$screen->{'redirect'} = { 'name' => 'tageszeitAuswahl' };
}
elsif (($t eq "KeyPressShort.OK") || ($t eq "KeyPressShort.ZURUECK")){
$mmi->{'screen'} = { 'name' => 'tageszeitAuswahl' };
}
elsif ($t eq "DISPLAY") {
$self->display("SYNCHRONISIEREN","BASISPARTITION",$e,$v);
}
}
#********************************************************************
# TIMER
#********************************************************************
sub common_timerAuswahl {
my $self = shift;
my ($v,$mmi,$screen,$t,$e,$z) = @_;
my $timerliste = $self->rotate([qw(timer1Anzeige timer2Anzeige)]);
if ($z - $screen->{'zeit'} > 10) {
$screen->{'redirect'} = { 'name' => 'einstellungenAuswahl' };
}
elsif ($t eq "KeyPressShort.ZURUECK"){
$mmi->{'screen'} = { 'name' => 'einstellungenAuswahl' };
}
elsif ($t eq "KeyPressShort.OK") {
$mmi->{'timer'} = $screen->{'timer'};
$mmi->{'screen'} = { 'name' => $screen->{'timer'} };
}
elsif ($t eq "KeyPressShort.AUF") {
$screen->{'timer'} = $timerliste->{$screen->{'timer'}};
}
elsif ($t eq "KeyPressShort.AB") {
$screen->{'timer'} = $timerliste->{".".$screen->{'timer'}};
}
elsif ($t eq "DISPLAY") {
$self->display("TIMER","BASISPARTITION",$e,$v);
}
}
#********************************************************************
sub common_timer1Anzeige {
my $self = shift;
my ($v,$mmi,$screen,$t,$e,$z) = @_;
if ($z - $screen->{'zeit'} > 10) {
$screen->{'redirect'} = { 'name' => 'timerAuswahl' };
}
elsif (($t eq "KeyPressShort.OK") || ($t eq "KeyPressShort.ZURUECK")){
$mmi->{'screen'} = { 'name' => 'timerAuswahl' };
}
elsif ($t eq "DISPLAY") {
$self->display("TIMER1","BASISPARTITION",$e,$v);
}
}
#********************************************************************
sub common_timer2Anzeige {
my $self = shift;
my ($v,$mmi,$screen,$t,$e,$z) = @_;
if ($z - $screen->{'zeit'} > 10) {
$screen->{'redirect'} = { 'name' => 'timerAuswahl' };
}
elsif (($t eq "KeyPressShort.OK") || ($t eq "KeyPressShort.ZURUECK")){
$mmi->{'screen'} = { 'name' => 'timerAuswahl' };
}
elsif ($t eq "DISPLAY") {
$self->display("TIMER2","BASISPARTITION",$e,$v);
}
}
#********************************************************************
# KOMFORTMODUS
#********************************************************************
sub common_komfortmodusAnzeige {
my $self = shift;
my ($v,$mmi,$screen,$t,$e,$z) = @_;
if ($z - $screen->{'zeit'} > 10) {
$screen->{'redirect'} = { 'name' => 'einstellungenAuswahl' };
}
elsif (($t eq "KeyPressShort.OK") || ($t eq "KeyPressShort.ZURUECK")){
$mmi->{'screen'} = { 'name' => 'einstellungenAuswahl' };
}
elsif ($t eq "DISPLAY") {
$self->display("KOMFORTMODUS","BASISPARTITION",$e,$v);
}
}
#********************************************************************
# DAMPFSYSTEM
#********************************************************************
sub common_dampfsystemAnzeige {
my $self = shift;
my ($v,$mmi,$screen,$t,$e,$z) = @_;
if ($z - $screen->{'zeit'} > 10) {
$screen->{'redirect'} = { 'name' => 'einstellungenAuswahl' };
}
elsif (($t eq "KeyPressShort.OK") || ($t eq "KeyPressShort.ZURUECK")){
$mmi->{'screen'} = { 'name' => 'einstellungenAuswahl' };
}
elsif ($t eq "DISPLAY") {
$self->display("DAMPFSYSTEM","BASISPARTITION",$e,$v);
}
}
#********************************************************************
# BELEUCHTUNG
#********************************************************************
sub common_beleuchtungAuswahl {
my $self = shift;
my ($v,$mmi,$screen,$t,$e,$z) = @_;
my $beleuchtungliste = $self->rotate([qw(beleuchtungHelligkeit beleuchtungAbschaltenNach)]);
if ($z - $screen->{'zeit'} > 10) {
$screen->{'redirect'} = { 'name' => 'einstellungenAuswahl' };
}
elsif ($t eq "KeyPressShort.ZURUECK") {
$mmi->{'screen'} = { 'name' => 'einstellungenAuswahl' };
}
elsif ($t eq "KeyPressShort.OK") {
$mmi->{'beleuchtung'} = $screen->{'beleuchtung'};
$mmi->{'screen'} = { 'name' => $screen->{'beleuchtung'} };
}
elsif ($t eq "KeyPressShort.AUF") {
$screen->{'beleuchtung'} = $beleuchtungliste->{$screen->{'beleuchtung'}};
}
elsif ($t eq "KeyPressShort.AB") {
$screen->{'beleuchtung'} = $beleuchtungliste->{".".$screen->{'beleuchtung'}};
}
elsif ($t eq "DISPLAY") {
$self->display("BELEUCHTUNG","BASISPARTITION",$e,$v);
}
}
#********************************************************************
sub common_beleuchtungHelligkeit {
my $self = shift;
my ($v,$mmi,$screen,$t,$e,$z) = @_;
if ($z - $screen->{'zeit'} > 10) {
$screen->{'redirect'} = { 'name' => 'beleuchtungAuswahl' };
}
elsif (($t eq "KeyPressShort.ZURUECK") || ($t eq "KeyPressShort.OK")){
$mmi->{'screen'} = { 'name' => 'beleuchtungAuswahl' };
}
elsif ($t eq "DISPLAY") {
$self->display("HELLIGKEIT","BASISPARTITION",$e,$v);
}
}
#********************************************************************
sub common_beleuchtungAbschaltenNach {
my $self = shift;
my ($v,$mmi,$screen,$t,$e,$z) = @_;
if ($z - $screen->{'zeit'} > 10) {
$screen->{'redirect'} = { 'name' => 'beleuchtungAuswahl' };
}
elsif (($t eq "KeyPressShort.ZURUECK") || ($t eq "KeyPressShort.OK")){
$mmi->{'screen'} = { 'name' => 'beleuchtungAuswahl' };
}
elsif ($t eq "DISPLAY") {
$self->display("ABSCHALTEN_NACH","BASISPARTITION",$e,$v);
}
}
#********************************************************************
# INFO
#********************************************************************
sub common_infoAuswahl {
my $self = shift;
my ($v,$mmi,$screen,$t,$e,$z) = @_;
my $infoliste = $self->rotate([qw(beleuchtungHelligkeit beleuchtungAbschaltenNach)]);
if ($z - $screen->{'zeit'} > 10) {
$screen->{'redirect'} = { 'name' => 'einstellungenAuswahl' };
}
elsif ($t eq "KeyPressShort.ZURUECK") {
$mmi->{'screen'} = { 'name' => 'einstellungenAuswahl' };
}
elsif ($t eq "KeyPressShort.OK") {
$mmi->{'info'} = $screen->{'info'};
$mmi->{'screen'} = { 'name' => $screen->{'info'} };
}
elsif ($t eq "KeyPressShort.AUF") {
$screen->{'info'} = $infoliste->{$screen->{'info'}};
}
elsif ($t eq "KeyPressShort.AB") {
$screen->{'info'} = $infoliste->{".".$screen->{'info'}};
}
elsif ($t eq "DISPLAY") {
$self->display("INFO","BASISPARTITION",$e,$v);
}
}
#********************************************************************
sub common_infoGetraenkebezuege {
my $self = shift;
my ($v,$mmi,$screen,$t,$e,$z) = @_;
if ($z - $screen->{'zeit'} > 10) {
$screen->{'redirect'} = { 'name' => 'infoAuswahl' };
}
elsif (($t eq "KeyPressShort.ZURUECK") || ($t eq "KeyPressShort.OK")){
$mmi->{'screen'} = { 'name' => 'infoAuswahl' };
}
elsif ($t eq "DISPLAY") {
$self->display("GETRAENKEBEZUEGE","BASISPARTITION",$e,$v);
}
}
#********************************************************************
sub common_infoBezuegeBis {
my $self = shift;
my ($v,$mmi,$screen,$t,$e,$z) = @_;
if ($z - $screen->{'zeit'} > 10) {
$screen->{'redirect'} = { 'name' => 'infoAuswahl' };
}
elsif (($t eq "KeyPressShort.ZURUECK") || ($t eq "KeyPressShort.OK")){
$mmi->{'screen'} = { 'name' => 'infoAuswahl' };
}
elsif ($t eq "DISPLAY") {
$self->display("BEZUEGE_BIS","BASISPARTITION",$e,$v);
}
}
#********************************************************************
# INBETRIEBNAHMESPERRE
#********************************************************************
sub common_inbetriebnahmesperreAuswahl {
my $self = shift;
my ($v,$mmi,$screen,$t,$e,$z) = @_;
if ($z - $screen->{'zeit'} > 10) {
$screen->{'redirect'} = { 'name' => 'einstellungenAuswahl' };
}
elsif (($t eq "KeyPressShort.OK") || ($t eq "KeyPressShort.ZURUECK")){
$mmi->{'screen'} = { 'name' => 'einstellungenAuswahl' };
}
elsif ($t eq "DISPLAY") {
$self->display("INBETRIEBNAHMESPERRE","BASISPARTITION",$e,$v);
}
}
#********************************************************************
# WASSERHAERTE
#********************************************************************
sub common_wasserhaerteAuswahl {
my $self = shift;
my ($v,$mmi,$screen,$t,$e,$z) = @_;
if ($z - $screen->{'zeit'} > 10) {
$screen->{'redirect'} = { 'name' => 'einstellungenAuswahl' };
}
elsif (($t eq "KeyPressShort.OK") || ($t eq "KeyPressShort.ZURUECK")){
$mmi->{'screen'} = { 'name' => 'einstellungenAuswahl' };
}
elsif ($t eq "DISPLAY") {
$self->display("WASSERHAERTE","BASISPARTITION",$e,$v);
}
}
#********************************************************************
# DISPLAY
#********************************************************************
sub common_displayAuswahl {
my $self = shift;
my ($v,$mmi,$screen,$t,$e,$z) = @_;
my $infoliste = $self->rotate([qw(displayKontrast displayHelligkeit)]);
if ($z - $screen->{'zeit'} > 10) {
$screen->{'redirect'} = { 'name' => 'einstellungenAuswahl' };
}
elsif ($t eq "KeyPressShort.ZURUECK") {
$mmi->{'screen'} = { 'name' => 'einstellungenAuswahl' };
}
elsif ($t eq "KeyPressShort.OK") {
$mmi->{'info'} = $screen->{'info'};
$mmi->{'screen'} = { 'name' => $screen->{'info'} };
}
elsif ($t eq "KeyPressShort.AUF") {
$screen->{'info'} = $infoliste->{$screen->{'info'}};
}
elsif ($t eq "KeyPressShort.AB") {
$screen->{'info'} = $infoliste->{".".$screen->{'info'}};
}
elsif ($t eq "DISPLAY") {
$self->display("INFO","BASISPARTITION",$e,$v);
}
}
#********************************************************************
sub common_displayKontrast {
my $self = shift;
my ($v,$mmi,$screen,$t,$e,$z) = @_;
if ($z - $screen->{'zeit'} > 10) {
$screen->{'redirect'} = { 'name' => 'displayAuswahl' };
}
elsif (($t eq "KeyPressShort.ZURUECK") || ($t eq "KeyPressShort.OK")){
$mmi->{'screen'} = { 'name' => 'displayAuswahl' };
}
elsif ($t eq "DISPLAY") {
$self->display("KONTRAST","BASISPARTITION",$e,$v);
}
}
#********************************************************************
sub common_displayHelligkeit {
my $self = shift;
my ($v,$mmi,$screen,$t,$e,$z) = @_;
if ($z - $screen->{'zeit'} > 10) {
$screen->{'redirect'} = { 'name' => 'displayAuswahl' };
}
elsif (($t eq "KeyPressShort.ZURUECK") || ($t eq "KeyPressShort.OK")){
$mmi->{'screen'} = { 'name' => 'displayAuswahl' };
}
elsif ($t eq "DISPLAY") {
$self->display("HELLIGKEIT2","BASISPARTITION",$e,$v);
}
}
#********************************************************************
# LAUTSTAERKE
#********************************************************************
sub common_lautstaerkeAuswahl {
my $self = shift;
my ($v,$mmi,$screen,$t,$e,$z) = @_;
my $lautstaerkeliste = $self->rotate([qw(lautstaerkeSignaltoene lautstaerkeTastenton)]);
if ($z - $screen->{'zeit'} > 10) {
$screen->{'redirect'} = { 'name' => 'einstellungenAuswahl' };
}
elsif ($t eq "KeyPressShort.ZURUECK") {
$mmi->{'screen'} = { 'name' => 'einstellungenAuswahl' };
}
elsif ($t eq "KeyPressShort.OK") {
$mmi->{'lautstaerke'} = $screen->{'lautstaerke'};
$mmi->{'screen'} = { 'name' => $screen->{'lautstaerke'} };
}
elsif ($t eq "KeyPressShort.AUF") {
$screen->{'lautstaerke'} = $lautstaerkeliste->{$screen->{'lautstaerke'}};
}
elsif ($t eq "KeyPressShort.AB") {
$screen->{'lautstaerke'} = $lautstaerkeliste->{".".$screen->{'lautstaerke'}};
}
elsif ($t eq "DISPLAY") {
$self->display("LAUTSTAERKE","BASISPARTITION",$e,$v);
}
}
#********************************************************************
sub common_lautstaerkeSignaltoene {
my $self = shift;
my ($v,$mmi,$screen,$t,$e,$z) = @_;
if ($z - $screen->{'zeit'} > 10) {
$screen->{'redirect'} = { 'name' => 'lautstaerkeAuswahl' };
}
elsif (($t eq "KeyPressShort.OK") || ($t eq "KeyPressShort.ZURUECK")) {
$mmi->{'screen'} = { 'name' => 'lautstaerkeAuswahl' };
}
elsif ($t eq "DISPLAY") {
$self->display("SIGNALTOENE","BASISPARTITION",$e,$v);
}
}
#********************************************************************
sub common_lautstaerkeTastenton {
my $self = shift;
my ($v,$mmi,$screen,$t,$e,$z) = @_;
if ($z - $screen->{'zeit'} > 10) {
$screen->{'redirect'} = { 'name' => 'lautstaerkeAuswahl' };
}
elsif (($t eq "KeyPressShort.OK") || ($t eq "KeyPressShort.ZURUECK")) {
$mmi->{'screen'} = { 'name' => 'lautstaerkeAuswahl' };
}
elsif ($t eq "DISPLAY") {
$self->display("TASTENTON","BASISPARTITION",$e,$v);
}
}
#********************************************************************
# GESCHIRRWAERMER
#********************************************************************
sub common_geschirrwaermerAuswahl {
my $self = shift;
my ($v,$mmi,$screen,$t,$e,$z) = @_;
if ($z - $screen->{'zeit'} > 10) {
$screen->{'redirect'} = { 'name' => 'einstellungenAuswahl' };
}
elsif (($t eq "KeyPressShort.OK") || ($t eq "KeyPressShort.ZURUECK")){
$mmi->{'screen'} = { 'name' => 'einstellungenAuswahl' };
}
elsif ($t eq "DISPLAY") {
$self->display("GESCHIRRWAERMER","BASISPARTITION",$e,$v);
}
}
#********************************************************************
# FESTWASSER
#********************************************************************
sub common_festwasserAuswahl {
my $self = shift;
my ($v,$mmi,$screen,$t,$e,$z) = @_;
if ($z - $screen->{'zeit'} > 10) {
$screen->{'redirect'} = { 'name' => 'einstellungenAuswahl' };
}
elsif (($t eq "KeyPressShort.OK") || ($t eq "KeyPressShort.ZURUECK")){
$mmi->{'screen'} = { 'name' => 'einstellungenAuswahl' };
}
elsif ($t eq "DISPLAY") {
$self->display("FESTWASSER","BASISPARTITION",$e,$v);
}
}
#********************************************************************
# HAENDLER
#********************************************************************
sub common_haendlerAuswahl {
my $self = shift;
my ($v,$mmi,$screen,$t,$e,$z) = @_;
my $haendlerliste = $self->rotate([qw(haendlerName haendlerMesseschaltung)]);
if ($z - $screen->{'zeit'} > 10) {
$screen->{'redirect'} = { 'name' => 'einstellungenAuswahl' };
}
elsif ($t eq "KeyPressShort.ZURUECK") {
$mmi->{'screen'} = { 'name' => 'einstellungenAuswahl' };
}
elsif ($t eq "KeyPressShort.OK") {
$mmi->{'haendler'} = $screen->{'haendler'};
$mmi->{'screen'} = { 'name' => $screen->{'haendler'} };
}
elsif ($t eq "KeyPressShort.AUF") {
$screen->{'haendler'} = $haendlerliste->{$screen->{'haendler'}};
}
elsif ($t eq "KeyPressShort.AB") {
$screen->{'haendler'} = $haendlerliste->{".".$screen->{'haendler'}};
}
elsif ($t eq "DISPLAY") {
$self->display("HAENDLER","BASISPARTITION",$e,$v);
}
}
#********************************************************************
sub common_haendlerName {
my $self = shift;
my ($v,$mmi,$screen,$t,$e,$z) = @_;
if ($z - $screen->{'zeit'} > 10) {
$screen->{'redirect'} = { 'name' => 'haendlerAuswahl' };
}
elsif (($t eq "KeyPressShort.OK") || ($t eq "KeyPressShort.ZURUECK")) {
$mmi->{'screen'} = { 'name' => 'haendlerAuswahl' };
}
elsif ($t eq "DISPLAY") {
$self->display("HAENDLERNAME","BASISPARTITION",$e,$v);
}
}
#********************************************************************
sub common_haendlerMesseschaltung {
my $self = shift;
my ($v,$mmi,$screen,$t,$e,$z) = @_;
if ($z - $screen->{'zeit'} > 10) {
$screen->{'redirect'} = { 'name' => 'haendlerAuswahl' };
}
elsif (($t eq "KeyPressShort.OK") || ($t eq "KeyPressShort.ZURUECK")) {
$mmi->{'screen'} = { 'name' => 'haendlerAuswahl' };
}
elsif ($t eq "DISPLAY") {
$self->display("MESSESCHALTUNG","BASISPARTITION",$e,$v);
}
}
#********************************************************************
# WERKSEINSTELLUNG
#********************************************************************
sub common_werkseinstellungAuswahl {
my $self = shift;
my ($v,$mmi,$screen,$t,$e,$z) = @_;
if ($z - $screen->{'zeit'} > 10) {
$screen->{'redirect'} = { 'name' => 'einstellungenAuswahl' };
}
elsif (($t eq "KeyPressShort.OK") || ($t eq "KeyPressShort.ZURUECK")){
$mmi->{'screen'} = { 'name' => 'einstellungenAuswahl' };
}
elsif ($t eq "DISPLAY") {
$self->display("WERKSEINSTELLUNG","BASISPARTITION",$e,$v);
}
}
#********************************************************************
# FERNSTEUERUNG
#********************************************************************
sub common_fernsteuerungAuswahl {
my $self = shift;
my ($v,$mmi,$screen,$t,$e,$z) = @_;
if ($z - $screen->{'zeit'} > 10) {
$screen->{'redirect'} = { 'name' => 'einstellungenAuswahl' };
}
elsif (($t eq "KeyPressShort.OK") || ($t eq "KeyPressShort.ZURUECK")){
$mmi->{'screen'} = { 'name' => 'einstellungenAuswahl' };
}
elsif ($t eq "DISPLAY") {
$self->display("FERNSTEUERUNG","BASISPARTITION",$e,$v);
}
}
#********************************************************************
# KAFFETASTEN
#********************************************************************
sub cvam_espresso{
my $self = shift;
my ($v,$mmi,$screen,$t,$e,$z) = @_;
if ($z - $screen->{'zeit'} > 10){
$screen->{'redirect'} = { 'name' => 'getraenkWaehlen' };
}
elsif ($t eq "DISPLAY") {
$self->display("ESPRESSO","BASISPARTITION",$e,$v);
}
}
#********************************************************************
sub cvam_kaffee {
my $self = shift;
my ($v,$mmi,$screen,$t,$e,$z) = @_;
if ($z - $screen->{'zeit'} > 10){
$screen->{'redirect'} = { 'name' => 'getraenkWaehlen' };
}
elsif ($t eq "DISPLAY") {
$self->display("KAFFEE","BASISPARTITION",$e,$v);
}
}
#********************************************************************
sub cvam_cappucino {
my $self = shift;
my ($v,$mmi,$screen,$t,$e,$z) = @_;
if ($z - $screen->{'zeit'} > 10){
$screen->{'redirect'} = { 'name' => 'getraenkWaehlen' };
}
elsif ($t eq "DISPLAY") {
$self->display("CAPPUCINO","BASISPARTITION",$e,$v);
}
}
#********************************************************************
sub cvam_latteMachiato {
my $self = shift;
my ($v,$mmi,$screen,$t,$e,$z) = @_;
if ($z - $screen->{'zeit'} > 10){
$screen->{'redirect'} = { 'name' => 'getraenkWaehlen' };
}
elsif ($t eq "DISPLAY") {
$self->display("LATTE_MACHIATO","BASISPARTITION",$e,$v);
}
}
#********************************************************************
sub cvam_caffeeLatte {
my $self = shift;
my ($v,$mmi,$screen,$t,$e,$z) = @_;
if ($z - $screen->{'zeit'} > 10){
$screen->{'redirect'} = { 'name' => 'getraenkWaehlen' };
}
elsif ($t eq "DISPLAY") {
$self->display("CAFFEE_LATTE","BASISPARTITION",$e,$v);
}
}
#********************************************************************
# WEITERE
#********************************************************************
sub cvam_weitere {
my $self = shift;
my ($v,$mmi,$screen,$t,$e,$z) = @_;
my $weitereliste = $self->rotate([qw(kaffeeLang caffeLatte heisseMilch milchschaum heisswasser kaffeekanne pflege geraetEntkalken)]);
if ($z - $screen->{'zeit'} > 10) {
$screen->{'redirect'} = { 'name' => 'getraenkWaehlen' };
}
elsif ($t eq "KeyPressShort.ZURUECK") {
$mmi->{'screen'} = { 'name' => 'getraenkWaehlen' };
}
elsif ($t eq "KeyPressShort.OK") {
$mmi->{'weitere'} = $screen->{'weitere'};
$mmi->{'weitere'} = { 'name' => $screen->{'weitere'} };
}
elsif ($t eq "KeyPressShort.AUF") {
$screen->{'weitere'} = $weitereliste->{$screen->{'weitere'}};
}
elsif ($t eq "KeyPressShort.AB") {
$screen->{'weitere'} = $weitereliste->{".".$screen->{'weitere'}};
}
elsif ($t eq "DISPLAY") {
$self->display("WEITERE","BASISPARTITION",$e,$v);
}
}
#********************************************************************
sub cvam_kaffeeLang {
my $self = shift;
my ($v,$mmi,$screen,$t,$e,$z) = @_;
if ($z - $screen->{'zeit'} > 10) {
$screen->{'redirect'} = { 'name' => 'getraenkWaehlen' };
}
elsif ($t eq "KeyPressShort.ZURUECK") {
$mmi->{'screen'} = { 'name' => 'getraenkWaehlen' };
}
elsif ($t eq "DISPLAY") {
$self->display("KAFFEE_LANG","BASISPARTITION",$e,$v);
}
}
#********************************************************************
sub cvam_heisseMilch {
my $self = shift;
my ($v,$mmi,$screen,$t,$e,$z) = @_;
if ($z - $screen->{'zeit'} > 10) {
$screen->{'redirect'} = { 'name' => 'getraenkWaehlen' };
}
elsif ($t eq "KeyPressShort.ZURUECK") {
$mmi->{'screen'} = { 'name' => 'getraenkWaehlen' };
}
elsif ($t eq "DISPLAY") {
$self->display("HEISSE_MILCH","BASISPARTITION",$e,$v);
}
}
#********************************************************************
sub cvam_milchschaum {
my $self = shift;
my ($v,$mmi,$screen,$t,$e,$z) = @_;
if ($z - $screen->{'zeit'} > 10) {
$screen->{'redirect'} = { 'name' => 'getraenkWaehlen' };
}
elsif ($t eq "KeyPressShort.ZURUECK") {
$mmi->{'screen'} = { 'name' => 'getraenkWaehlen' };
}
elsif ($t eq "DISPLAY") {
$self->display("MILCHSCHAUM","BASISPARTITION",$e,$v);
}
}
#********************************************************************
sub cvam_heisswasser {
my $self = shift;
my ($v,$mmi,$screen,$t,$e,$z) = @_;
if ($z - $screen->{'zeit'} > 10) {
$screen->{'redirect'} = { 'name' => 'getraenkWaehlen' };
}
elsif ($t eq "KeyPressShort.ZURUECK") {
$mmi->{'screen'} = { 'name' => 'getraenkWaehlen' };
}
elsif ($t eq "DISPLAY") {
$self->display("HEISSWASSER","BASISPARTITION",$e,$v);
}
}
#********************************************************************
sub cvam_kaffeekanne {
my $self = shift;
my ($v,$mmi,$screen,$t,$e,$z) = @_;
if ($z - $screen->{'zeit'} > 10) {
$screen->{'redirect'} = { 'name' => 'getraenkWaehlen' };
}
elsif ($t eq "KeyPressShort.ZURUECK") {
$mmi->{'screen'} = { 'name' => 'getraenkWaehlen' };
}
elsif ($t eq "DISPLAY") {
$self->display("KAFFEEKANNE","BASISPARTITION",$e,$v);
}
}
#********************************************************************
sub cvam_pflege {
my $self = shift;
my ($v,$mmi,$screen,$t,$e,$z) = @_;
if ($z - $screen->{'zeit'} > 10) {
$screen->{'redirect'} = { 'name' => 'getraenkWaehlen' };
}
elsif ($t eq "KeyPressShort.ZURUECK") {
$mmi->{'screen'} = { 'name' => 'getraenkWaehlen' };
}
elsif ($t eq "DISPLAY") {
$self->display("PFLEGE","BASISPARTITION",$e,$v);
}
}
#********************************************************************
sub cvam_geraetEntkalken {
my $self = shift;
my ($v,$mmi,$screen,$t,$e,$z) = @_;
if ($z - $screen->{'zeit'} > 10) {
$screen->{'redirect'} = { 'name' => 'getraenkWaehlen' };
}
elsif ($t eq "KeyPressShort.ZURUECK") {
$mmi->{'screen'} = { 'name' => 'getraenkWaehlen' };
}
elsif ($t eq "DISPLAY") {
$self->display("GERAET_ENTKALKEN","BASISPARTITION",$e,$v);
}
}
1;