IP-Symcon Module Library
v1.0
|
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 ?>