Um zu verhindern, dass ein Skript ein zweites Mal ausgeführt wird, bevor es beendet wurde,
(z.B. während eines WebCamera Capture) wird der „IPS_SemaphoreEnter“ Befehl wie untern gezeigt verwendet.
Um zu erfahren, auf welchen Button geklickt wurde, wird jedem eine Nummer (hier: 1 bis 5) im „Object Inspector“ im Feld: IPSYMID zugewiesen.
Diese kann dann mit „$IPS_COMPONENT“ im Skript verwendet werden.
Die Umrandung der Button wurden mit einem „Shape“ realisiert, dessen „Bruch.Color“ Eigenschaft in der 1. Zeile mit den „Value“ 1 bis 5
und in der 2. Zeile mit der Bitmask „xxxx…“ konfiguriert wurde (siehe Bild) und eine passende Farbe zugeordnet wurde.
MST
<?
/*
*******************************
IP-SYMCON Event Scripting
*******************************
File : WebCamCapture.ips.php
Trigger :
Interval :
*/
if (!IPS_SemaphoreEnter("WebCapture", 1)) {
return;
}
if($IPS_SENDER == "Designer") {
SetValueInteger("WebCam_Position" , (int)$IPS_COMPONENT);
SetValueString("WebCam_Button_Text_".$IPS_COMPONENT, "Moving");
IPS_Sleep(1000); // warten
// hier kommt noch Code rein
}
SetValueString("WebCam_Button_Text_".$IPS_COMPONENT, "Position ".$IPS_COMPONENT);
IPS_SemaphoreLeave("WebCapture");
?>