Hallo
Da ich nicht fündig geworden bin bei der Suche eines Doppelklick LBS hab ich mich mal selbst an den Speck gemacht.
Nach meinen Tests funktioniert er, würde nur gerne mal die Meinung der Spezialisten hören.
Ist das halbwegs korrekt gemacht worden von mir?
###[DEF]###
[name=Doppelklick]
[e#1=Trigger]
[e#2=Dauer (ms) #init=300]
[a#1=Doppelklick]
[v#1=0]
###[/DEF]###
###[HELP]###
Dieser Baustein generiert einen Impuls (nur 1) wenn innerhalb der unter E2 eingestellten Zeit zwei Signale ungleich 0 kommen.
Nach Ablauf der Zeit (wenn nur ein Signal gekommen ist) wird der Baustein wieder inaktiv.
###[/HELP]###
###[LBS]###
<?
function LB_LBSID($id) {
if ($E=getLogicEingangDataAll($id)) {
if (getLogicElementStatus($id)==0) { //LBS läuft nicht?
if ($E[1]['value']!=0 && $E[1]['refresh']==1) {
setLogicElementVar($id,1,(getMicrotime()+$E[2]['value']/1000)); //Timestamp + E2
setLogicElementStatus($id,1); //LBS "starten"
}
} else {
if (getMicrotime()<=getLogicElementVar($id,1) && $E[1]['refresh']==1) { // Doppelklick innerhalb der Zeit
setLogicLinkAusgang($id,1,1); //A1=1 setzen
setLogicElementStatus($id,0); //LBS "stoppen"
}
}
if (getMicrotime()>getLogicElementVar($id,1)) { // KEIN Doppelklick innerhalb der Zeit
setLogicElementVar($id,1,0);
setLogicElementStatus($id,0); //LBS "stoppen"
}
}
}
?>
###[/LBS]###
###[EXEC]###
<?
?>
<###[/EXEC]###
Danke und Gruß
Seppl
Da ich nicht fündig geworden bin bei der Suche eines Doppelklick LBS hab ich mich mal selbst an den Speck gemacht.
Nach meinen Tests funktioniert er, würde nur gerne mal die Meinung der Spezialisten hören.
Ist das halbwegs korrekt gemacht worden von mir?
###[DEF]###
[name=Doppelklick]
[e#1=Trigger]
[e#2=Dauer (ms) #init=300]
[a#1=Doppelklick]
[v#1=0]
###[/DEF]###
###[HELP]###
Dieser Baustein generiert einen Impuls (nur 1) wenn innerhalb der unter E2 eingestellten Zeit zwei Signale ungleich 0 kommen.
Nach Ablauf der Zeit (wenn nur ein Signal gekommen ist) wird der Baustein wieder inaktiv.
###[/HELP]###
###[LBS]###
<?
function LB_LBSID($id) {
if ($E=getLogicEingangDataAll($id)) {
if (getLogicElementStatus($id)==0) { //LBS läuft nicht?
if ($E[1]['value']!=0 && $E[1]['refresh']==1) {
setLogicElementVar($id,1,(getMicrotime()+$E[2]['value']/1000)); //Timestamp + E2
setLogicElementStatus($id,1); //LBS "starten"
}
} else {
if (getMicrotime()<=getLogicElementVar($id,1) && $E[1]['refresh']==1) { // Doppelklick innerhalb der Zeit
setLogicLinkAusgang($id,1,1); //A1=1 setzen
setLogicElementStatus($id,0); //LBS "stoppen"
}
}
if (getMicrotime()>getLogicElementVar($id,1)) { // KEIN Doppelklick innerhalb der Zeit
setLogicElementVar($id,1,0);
setLogicElementStatus($id,0); //LBS "stoppen"
}
}
}
?>
###[/LBS]###
###[EXEC]###
<?
?>
<###[/EXEC]###
Danke und Gruß
Seppl
Kommentar