IP-Symcon Module Library
v1.0
|
EDIP Display vom Type EDIP43. Mehr ...
Ö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() |
Definiert in Zeile 587 der Datei IPSEDIP.class.php.
EDIP::ReceiveText | ( | $ | string, |
$ | useEvents = true |
||
) | [inherited] |
Empfang von Daten.
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.
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); }