IP-Symcon Module Library  v1.0
IPSEDIP_Event.ips.php
gehe zur Dokumentation dieser Datei
00001 <?
00019    include_once "IPSLogger.ips.php";
00020    include_once "IPSEDIP.class.php";
00021 
00022    $eventName = IPS_GetName($_IPS['EVENT']);
00023 
00024    foreach ($EDIP_CONFIGURATION as $configId=>$configData) {
00025       if (substr($eventName,0,strlen($configId))==$configId) {
00026 
00027          if ($configData[EDIP_CONFIG_REFRESHMETHOD]==EDIP_REFRESHMETHOD_EVENT or
00028              $configData[EDIP_CONFIG_REFRESHMETHOD]==EDIP_REFRESHMETHOD_BOTH) {
00029 
00030             $result = IPS_SemaphoreEnter($configId, 0);
00031             if (!$result) {
00032                IPSLogger_Dbg(__file__, "Refresh is already in Process - ignore ...");
00033                return;
00034             }
00035             IPSLogger_Dbg(__file__, "Refresh EDIP by Event=$eventName");
00036             IPS_Sleep(1000);
00037             IPS_SemaphoreLeave($configId);
00038 
00039 
00040             $instanceClass = $configData[EDIP_CONFIG_CLASSNAME];
00041             $instanceId    = IPS_GetObjectIDByIdent($configId, EDIP_ID_PROGRAM);
00042 
00043             $edip = new $instanceClass($instanceId);
00044             $edip->RefreshDisplay();
00045          }
00046       }
00047    }
00048 
00050 ?>