IP-Symcon Module Library  v1.0

EDIP Display vom Type EDIP240. Mehr ...

Klassendiagramm für EDIP240:
EDIP

Aufstellung aller Elemente

Öffentliche Methoden

 RefreshDisplay ()
 Refresh der Anzeige.
 ReceiveText ($string, $useEvents=true)
 Empfang von Daten.
 SendText ($string)
 Senden von Daten.

Geschützte Methoden

 AddMessageHeader ()
 AddMessageCategories ()
 AddMessageVariables ()
 AddMessageValueEdit ()

Geschützte Attribute

 $instanceId = 0
 $rootId = 0
 $currentId = 0
 $objectIdsId = 0
 $objectValuesId = 0
 $objectCmdsId = 0
 $objectEditId = 0
 $messageArray = array()
 $objectList = array()

Ausführliche Beschreibung

EDIP Display vom Type EDIP240.

Autor:
Andreas Brauneis

Definiert in Zeile 801 der Datei IPSEDIP.class.php.


Dokumentation der Elementfunktionen

EDIP::ReceiveText ( string,
useEvents = true 
) [inherited]

Empfang von Daten.

Parameter:
string$string- Empfangene Daten vom Display
boolean$useEvents- Anlegen von Events für jede visualisierte Variable

Definiert in Zeile 481 der Datei IPSEDIP.class.php.

Benutzt EDIP\RefreshDisplay().

                                                            {
         if ($useEvents) {
            $this->DropEvents();
         }
         if (substr($string,0,1)==chr(27)) {
            switch(substr($string,1,1)) {
               case 'A': // Button Code received
                  $cmd = ord(substr($string,3));
                  $object = $this->GetObjectDataByCmd($cmd);
                  if ($object===false) {
                     $this->ReceiveCodeSpecial($cmd);
                     break;
                  }

                  $objectData = IPS_GetObject((int)$object['Id']);
                  switch($objectData['ObjectType']) {
                     case 0: // Category
                     case 1: // Instance
                        $this->ReceiveCodeCategory($object);
                        break;
                     case 2: // Variable
                        $this->ReceiveCodeVariable($object);
                        break;
                     case 3: // Script
                        $this->ReceiveCodeScript($object);
                        break;
                     default:
                        // Unsupported Object ...
                  }
                  break;

               case 'B': // Bargraph Value received
                  $graph = ord(substr($string,3,1));
                  $value = ord(substr($string,4));
                  $object = $this->GetObjectDataByCmd($graph);
                  $object['Value'] = (int)$value-10; // Correct Value (BarGraph 0..100 doesnt work, 10..110 works???)
                  $this->ReceiveCodeVariable($object);
                  break;
               default:
                  // Unsupported Message Type
            }
         }

         $this->RefreshDisplay();

         if ($useEvents) {
            $this->GenerateEvents();
         }
      }
EDIP::RefreshDisplay ( ) [inherited]

Refresh der Anzeige.

Definiert in Zeile 396 der Datei IPSEDIP.class.php.

Wird benutzt von EDIP\ReceiveText().

                                       {
         IPSLogger_Dbg(__file__, 'Refresh EDIP Display '.IPS_GetName($this->instanceId));
         $this->AddObjects();
         $this->OrderObjects();
         $this->StoreObjectData();

         $this->messageArray = array();
         $this->AddMessageHeader();
         $this->AddMessageCategories();
         $this->AddMessageVariables();
         $this->AddMessageValueEdit();
         $this->sendArray($this->messageArray);
      }
EDIP::SendText ( string) [inherited]

Senden von Daten.

Parameter:
string$string- Daten, die gesendet werden sollen

Definiert in Zeile 553 der Datei IPSEDIP.class.php.

                                       {

         // Translate special Characters
         $string = str_replace("Ä", "\x8E", $string);
         $string = str_replace("ä", "\x84", $string);
         $string = str_replace("Ö", "\x99", $string);
         $string = str_replace("ö", "\x94", $string);
         $string = str_replace("ü", "\x81", $string);
         $string = str_replace("Ü", "\x9A", $string);
         $string = str_replace("ß", "\xE1", $string);
         //$string = str_replace(",", "\xFB", $string);
         $string = str_replace("°", "\xF8", $string);

         // Build Message
         $string = chr(17).chr(strlen($string)).$string; //Build Message <DC1><Len><DataBytes> 
         $checkSum = 0; // Calc Checksum
         for($i = 0; $i < strlen($string); $i++) {
            $checkSum = $checkSum + ord(substr($string, $i, 1));
         }
         $string .= chr($checkSum % 256);

         //IPSLogger_Com(__file__,'Send Msg to EDIP: '.$string);
         RegVar_SendText($this->registerId, $string);
         ips_sleep($this->sendDelay);
      }

Die Dokumentation für diese Klasse wurde erzeugt aufgrund der Datei: