NEWS
Blockly-Programm startet nicht
-
-
@triplex sagte: Die Werte sind ins negative gelaufen
Dann sind offenbar die 200 ms zu kurz oder "ACTUAL" wird nach "ACTIVITY_STATE" aktualisiert.
EDIT: Die Reihenfolge der Aktualisierung spielt keine Rolle, wenn man nur einen Trigger verwendet:
-
@paul53 said in Blockly-Programm startet nicht:
@triplex sagte: Die Werte sind ins negative gelaufen
Dann sind offenbar die 200 ms zu kurz oder "ACTUAL" wird nach "ACTIVITY_STATE" aktualisiert.
EDIT: Die Reihenfolge der Aktualisierung spielt keine Rolle, wenn man nur einen Trigger verwendet:
Danke dir!
Werde es nachher mal nachbauen.Das mit dem "Falls nicht Intervall" habe ich ja jetzt verstanden, aber was fragst du mit dem "Delta und" jetzt noch zusätzlich ab?
-
@triplex sagte: aber was fragst du mit dem "Delta und" jetzt noch zusätzlich ab?
Ich habe
delta
am Anfang auf 0 gesetzt. Wenn der Wert von "ACTIVITY_STATE" kein Delta von -1 oder 1 ergibt, wird das Intervall nicht ausgeführt. Die implizite Typwandlung von "falls" interpretiert eine 0 wie false. -
@paul53 said in Blockly-Programm startet nicht:
@triplex sagte: aber was fragst du mit dem "Delta und" jetzt noch zusätzlich ab?
Ich habe
delta
am Anfang auf 0 gesetzt. Wenn der Wert von "ACTIVITY_STATE" kein Delta von -1 oder 1 ergibt, wird das Intervall nicht ausgeführt. Die implizite Typwandlung von "falls" interpretiert eine 0 wie false.Muss ich hier die Objekt ID in dem Block auswählen oder muss ich das wirklich 1zu1 so aufbauen?
-
@triplex sagte: Muss ich hier die Objekt ID in dem Block auswählen
Ja. Ich habe einen Kommentar gewählt, da ich diesen Datenpunkt nicht habe.
-
@paul53 said in Blockly-Programm startet nicht:
@triplex sagte: Muss ich hier die Objekt ID in dem Block auswählen
Ja. Ich habe einen Kommentar gewählt, da ich diesen Datenpunkt nicht habe.
Denke ich bin fast am Ziel.
Habe dein Programm noch was verändert.Folgendes soll passieren...
- Rollade bewegt sich
- Aktuelle Position wird in "... - Bewegung Simulation" geschrieben
--> "... - Bewegung Simulation" steuert die Animation in meiner Vis - Es wird überprüft ob die Rollade nach oben oder unten fährt
- Anschließend soll der Datenpunkt "... - Bewegung Simulation" solange erhöht oder verringert werden bis tatsächliche Position erreicht ist. Dafür habe ich das hier eingesetzt.
- Da die Rollade schneller fährt als der Datenpunkt verändert wird, soll die Animation noch bis zu tatsächlichen Position weiterlaufen auch wenn die Rollade schon längst steht.
Aktuell ist es noch so, dass die Animation nicht bis zum Ende fährt sondern beim Stoppen der Rollade ebenfalls stoppt.
Zudem "hämmert" die Animation im Widget den Behang immer wieder auf und zu.Muss ich evtl. das hier das "delta" entfernen?
-
@triplex sagte: Da die Rollade schneller fährt als der Datenpunkt verändert wird
Dann ist das Intervall mit 1000 ms zu lang.
Wo wird das Intervall gestoppt?
-
@paul53 said in Blockly-Programm startet nicht:
@triplex sagte: Da die Rollade schneller fährt als der Datenpunkt verändert wird
Dann ist das Intervall mit 1000 ms zu lang.
Wo wird das Intervall gestoppt?
Dachte das würde durch die Begrenzung automatisch gestoppt wenn eine der Grenzen erreicht ist.
-
@triplex sagte: Dachte das würde durch die Begrenzung automatisch gestoppt wenn eine der Grenzen erreicht ist.
Nein, das Intervall muss per Stop-Intervall-Block gestoppt werden, da sonst die Sperre aktiv bleibt.
-
@paul53 said in Blockly-Programm startet nicht:
@triplex sagte: Dachte das würde durch die Begrenzung automatisch gestoppt wenn eine der Grenzen erreicht ist.
Nein, das Intervall muss per Stop-Intervall-Block gestoppt werden, da sonst die Sperre aktiv bleibt.
Ok...wo müsste ich denn den den Stopbefehl unterbringen, damit das Interval aufhört wenn die Simulation die richtige Position erreicht hat.
Ich müsst ja abfragen ob der Wert "...-Bewegung Simulation" den Wert 0 oder 100 oder ACTUAL erreicht hat.
Und wie frage ich die 3 Werte am besten ab? -
@triplex sagte: wo müsste ich denn den den Stopbefehl unterbringen
Es sollte unter "falls
Wert
= 3" funktionieren, denn dann bewegt sich das Rollo nicht mehr. Das Intervall darf aber nicht zu lang sein. -
@paul53 said in Blockly-Programm startet nicht:
@triplex sagte: wo müsste ich denn den den Stopbefehl unterbringen
Es sollte unter "falls
Wert
= 3" funktionieren, denn dann bewegt sich das Rollo nicht mehr. Das Intervall darf aber nicht zu lang sein.Aber dann würde doch das Intervall zeitgleich mit der Bewegung der Rollade stoppen.
Das Intervall soll aber noch bis zur gewünschten Position zu Ende laufen, nachdem die Rollade gestoppt hat. -
@triplex sagte in Blockly-Programm startet nicht:
zeitgleich mit der Bewegung der Rollade stoppen.
ist nicht
@triplex sagte in Blockly-Programm startet nicht:
nachdem die Rollade gestoppt hat.
??
geht es dir um Millisekunden? -
@homoran said in Blockly-Programm startet nicht:
@triplex sagte in Blockly-Programm startet nicht:
zeitgleich mit der Bewegung der Rollade stoppen.
ist nicht
Wenn die Rollade stoppt, wird der Wert auf 3 gesetzt und wenn das die Bedingung ist für das Stoppen des Intervalls, dann wird doch der Datenpunkt "...- Bewegung Simulation" nicht mehr verändert.
@triplex sagte in Blockly-Programm startet nicht:
nachdem die Rollade gestoppt hat.
??
geht es dir um Millisekunden?Nein.
-
@triplex wo ist denn das Problem, wenn Rolladen und Intervall zeitgleich stoppen
-
@homoran said in Blockly-Programm startet nicht:
@triplex wo ist denn das Problem, wenn Rolladen und Intervall zeitgleich stoppen
Ich versuch es mal an einem Beispiel zu erklären...
- Rollade ist geschlossen (0%)
- Rollade fährt auf
- Datenpunkt "...- Bewegung Simulation" wird gleich 0% gesetzt und zählt jede Sekunde um 1 hoch
- Rollade wird angehalten (80%)
- Datenpunkt "...- Bewegung Simulation" hat zu dem Zeitpunkt aber erst bis 50 hochgezählt.
Mit dem jetzigen Programm würde der Wert bei 50 bleiben, soll aber noch bis 80 zu Ende zählen.
-
-
@triplex sagte in Blockly-Programm startet nicht:
zählt jede Sekunde um 1 hoch
Dann verkürze den Intervall-Zyklus auf 660 ms.
-
@homoran said in Blockly-Programm startet nicht:
@triplex dann ist, wie @paul53 beteits sagte, dein Intervall zu groß.
Das musst du ändern, bis die beiden Werte synchron laufen.Das ist praktisch unmöglich, zumal ich dann bei jedem Fenster mit einer anderen Höhe das wieder neu ermitteln müsste.