Welcome To Our Shell

Mister Spy & Souheyl Bypass Shell

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
Upload File :
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;

bypass 1.0, Devloped By El Moujahidin (the source has been moved and devloped)
Email: contact@elmoujehidin.net bypass 1.0, Devloped By El Moujahidin (the source has been moved and devloped) Email: contact@elmoujehidin.net