Ich brauch mal eure hilfe. Ich verstehe nicht was ich falsch mache. Also folgendes:
Raffstores liefern über eine GA die Position und über eine zweite die Lamellenposition. Diese möchte ich dann für die Visualisierung passend in % umrechnen.
Das ich 19 Raffstores habe und das mit jeweis 2 Werten -> Da schreit die Überwachung nach einer Vereinfachung.
Aufruf:
...
Das Macro selbst sieht so aus:
-> Im fall eines Events wird die Position vom HexByte Wert in einen Prozentualen Wert gerechnte und in die ReturnVal geschrieben
-> Das Macro für die Position ist identisch
-> POSxy ist eine Hilfsvariable. Ohne diese schaffe ich nicht die Konvertierung zu machen von u08 auf f16
Nun kommt die Sektion
Das Problem ist nun folgendes:
Es passiert ein Event. Nun wird der Wert aber nicht für den einen Raffstore aktualisiert sondern für alle!!
Bild Siehe Anhang. Bitte um Info wo hier mein Denkfehler ist. DAAANke
Raffstores liefern über eine GA die Position und über eine zweite die Lamellenposition. Diese möchte ich dann für die Visualisierung passend in % umrechnen.
Das ich 19 Raffstores habe und das mit jeweis 2 Werten -> Da schreit die Überwachung nach einer Vereinfachung.
Aufruf:
Code:
[B][Macros][/B] RaffstoreDataConvertPOS("Fenster_Kueche_Sued-4/4/7",RfKuPos) RaffstoreDataConvertLAM("Fenster_Kueche_Sued-4/5/7",RfKuLam) RaffstoreDataConvertLAM("Tuer_Kueche_Sued-4/5/8",RfKTLam) RaffstoreDataConvertPOS("Tuer_Kueche_Sued-4/4/8",RfKTPos) RaffstoreDataConvertPOS("Tuer_Kueche_Sued-4/4/8",RfBzPos) RaffstoreDataConvertLAM("Bad_Sued-4/5/6",RfBzLam) RaffstoreDataConvertLAM("Kind1_West_Links-4/5/2",RfK1SLam) RaffstoreDataConvertPOS("Kind1_West_Links-4/4/2",RfK1SPos)
Das Macro selbst sieht so aus:
Code:
:begin RaffstoreDataConvertLAM(GApos, ReturnVal) :info $Bekommt den Lamellenstand als Byte Wert und wandelt diesen in Prozent Wert$\\ :$GA mit Position$\\ :$Rückgabewert$ :shortinfo $Umrechnung Raffstore Lamelle in %$ if (event(GApos)) then POSxy=GApos endif ReturnVal=convert(POSxy,0f16)/2.55f16 :end
-> Das Macro für die Position ist identisch
-> POSxy ist eine Hilfsvariable. Ohne diese schaffe ich nicht die Konvertierung zu machen von u08 auf f16
Nun kommt die Sektion
Code:
[B][EibPC][/B] if stime(0) then pdisplay(RFS_KF,$Pos:$+(convert(RfKuPos,$$))+$% Lam:$+(convert(RfKuLam,$$))+$%$,BLIND,INACTIVE,GREEN,PID_HausTopSite)endif //Küche Fenster if stime(0) then pdisplay(RFS_KT,$Pos:$+(convert(RfKTPos,$$))+$% Lam:$+(convert(RfKTLam,$$))+$%$,BLIND,INACTIVE,GREEN,PID_HausTopSite)endif //Küche Tür if stime(0) then pdisplay(RFS_BZ,$Pos:$+(convert(RfBzPos,$$))+$% Lam:$+(convert(RfBzLam,$$))+$%$,BLIND,INACTIVE,GREEN,PID_HausTopSite)endif //Badezimmer if stime(0) then pdisplay(RFS_K1S,$Pos:$+(convert(RfK1SPos,$$))+$% Lam:$+(convert(RfK1SLam,$$))+$%$,BLIND,INACTIVE,GREEN,PID_HausTopSite)endif
Es passiert ein Event. Nun wird der Wert aber nicht für den einen Raffstore aktualisiert sondern für alle!!
Bild Siehe Anhang. Bitte um Info wo hier mein Denkfehler ist. DAAANke
Kommentar