NEWS
Rechnen mit Zeiten - einfaches Skript geht nicht!
-
@brokeling sagte in Rechnen mit Zeiten - einfaches Skript geht nicht!:
Warum werden in diesem Skript die Zeiten nicht korrekt addiert, was ist da falsch?
da gibt es mehrere Möglichkeiten, die man über debug Bausteine eingrenzen sollte:
- "steuere CD-Zeit" liegt außerhalb des falls, wird also auch wenn Zeit setzen NICHT wahr ist ausgeführt,
- Was steht im state "Codes für Stoppuhr" ?
- Inhalt und Typ?
-
@Homoran said in Rechnen mit Zeiten - einfaches Skript geht nicht!:
@brokeling sagte in Rechnen mit Zeiten - einfaches Skript geht nicht!:
Warum werden in diesem Skript die Zeiten nicht korrekt addiert, was ist da falsch?
da gibt es mehrere Möglichkeiten, die man über debug Bausteine eingrenzen sollte:
- "steuere CD-Zeit" liegt außerhalb des falls, wird also auch wenn Zeit setzen NICHT wahr ist ausgeführt,
- Was steht im state "Codes für Stoppuhr" ?
- Inhalt und Typ?
Mit diesem Skript will ich Zahlen ("Codes für Stoppuhr") - wenn sie sich gändert bzw. aktualisiert haben - auf die (vorher gesetzte) aktuelle Zeit aufsummieren.
Die aktuelle Zeit soll sich "CD-Zeit" nur holen, nachdem ein "reset" mit "Codes für Stoppuhr"= 0 gesetzt war. Jede weitere Ändeurng der "Codes" soll dazu führen, dass auf CD-Zeit weitere "Codes"-Werte summiert werden.
Also aus meiner Sicht alles richtig so. Nur geht es halt nicht...
"Codes" sind Zahlen zwischen -60 und 3600 -
@brokeling sagte in Rechnen mit Zeiten - einfaches Skript geht nicht!:
"Codes" sind Zahlen zwischen -60 und 3600
Zahlen oder Texte mit "Ziffern"?
Was haben denn die debug-Bausteine, die du inzwischen eingebaut hast ausgegeben?
-
@Homoran
Das sind schon echte Zahlen (type: "number").wenn ich z. B. Codes mit 0 resetten will kommt, also aktuelle Zeit wird nicht übernommen, sondern eine bereits früher aufaddierte Zahl:
javascript.0 2020-12-06 12:55:56.074 info (19124) script.js.common.CD_Stoppuhr.CD_Stoppuhr_Konzept_abgespeckt: Reset javascript.0 2020-12-06 12:55:56.074 info (19124) script.js.common.CD_Stoppuhr.CD_Stoppuhr_Konzept_abgespeckt: 51457 javascript.0 2020-12-06 12:55:56.073 info (19124) script.js.common.CD_Stoppuhr.CD_Stoppuhr_Konzept_abgespeckt: 46556 javascript.0 2020-12-06 12:55:56.073 info (19124) script.js.common.CD_Stoppuhr.CD_Stoppuhr_Konzept_abgespeckt: Nullung: javascript.0 2020-12-06 12:55:56.072 info (19124) script.js.common.CD_Stoppuhr.CD_Stoppuhr_Konzept_abgespeckt: Trigger
-
@brokeling sagte in Rechnen mit Zeiten - einfaches Skript geht nicht!:
wenn ich z. B. Codes mit 0 resetten will kommt, also aktuelle Zeit wird nicht übernommen, sondern eine bereits früher aufaddierte Zahl:
ich schrieb doch, dass der berechnete Befehl auch ausgeführt wird wenn "Zeit setzen" false ist.
-
@Homoran
ja schon, aber ich resette ja mit 0, also wird 0 dazu addiert, also müsste die Zahl "CD Zeit" mit der aktuellen Uhrzeit in Sekunden identisch sein. -
@brokeling sagte in Rechnen mit Zeiten - einfaches Skript geht nicht!:
@Homoran
ja schon, aber ich resette ja mit 0, also wird 0 dazu addiert, also müsste die Zahl "CD Zeit" mit der aktuellen Uhrzeit in Sekunden identisch sein.Dann dürfte aber danach der debug NULLUNG nicht erscheinen.
-
@Homoran said in Rechnen mit Zeiten - einfaches Skript geht nicht!:
Dann dürfte aber danach der debug NULLUNG nicht erscheinen.
Nullung darf schon erscheinen, wenn vorher auch schon mal genullt wurde, denn dann wird ja die IF Anweisung durchgeführt, wegen "Zeit setzen"=wahr
-
@brokeling sagte in Rechnen mit Zeiten - einfaches Skript geht nicht!:
@Homoran said in Rechnen mit Zeiten - einfaches Skript geht nicht!:
Dann dürfte aber danach der debug NULLUNG nicht erscheinen.
Nullung darf schon erscheinen, wenn vorher auch schon mal genullt wurde, denn dann wird ja die IF Anweisung durchgeführt, wegen "Zeit setzen"=wahr
Dann war dein Log aber unvollständig, oder?
-
@Homoran
ich mach das gleich nochmal und stelle es rein. Vorher setze ich den Wert "CD Zeit" mal händisch auf 0. -
@brokeling Ich habe mir das Blockly noch mal angesehen
Ich habe mich von dem debug "Nullung" in die Irreführen lassen.
Die Nullung findet doch im zweiten falls-Block statt, dann würde ich da auch den debug hinsetzen
-
@Homoran
Im zweiten Falls-Block wird für mich die Nullung nur ermöglicht. Die Nullung erfolgt dann im ersten Falls-Block, wenn "CD Zeit" mit der aktuellen zeit gleichgesetzt wird. Das ist für mich die Nullungs-Zeit.
Auf diese Nullungszeit sollen die Sekunden für einen Countdown aufaddiert werden.
Das Blockly ist ja nur ein teil meines Programms, nur auf das Wesentliche eingeschrumpft, das offensichtlich nicht funktioniert.hier nochmal die Ausgabe nach einem "Reset" mit Code=0
javascript.0 2020-12-06 13:50:55.518 info (19124) script.js.common.CD_Stoppuhr.CD_Stoppuhr_Konzept_abgespeckt: Reset javascript.0 2020-12-06 13:50:55.518 info (19124) script.js.common.CD_Stoppuhr.CD_Stoppuhr_Konzept_abgespeckt: 0 javascript.0 2020-12-06 13:50:55.517 info (19124) script.js.common.CD_Stoppuhr.CD_Stoppuhr_Konzept_abgespeckt: 49855 javascript.0 2020-12-06 13:50:55.517 info (19124) script.js.common.CD_Stoppuhr.CD_Stoppuhr_Konzept_abgespeckt: Nullung: javascript.0 2020-12-06 13:50:55.514 info (19124) script.js.common.CD_Stoppuhr.CD_Stoppuhr_Konzept_abgespeckt: Trigger
Die aktuelle Zeit wird nich übernommen, CD Zeit bleibt bei 0.
-
@brokeling sagte in Rechnen mit Zeiten - einfaches Skript geht nicht!:
Das Blockly ist ja nur ein teil meines Programms, nur auf das Wesentliche eingeschrumpft, das offensichtlich nicht funktioniert.
da muss ich mich dann nochmal reindenken!
-
@brokeling sagte:
Nur geht es halt nicht...
Das liegt an der asynchronen Ausführung von "steuere CD Zeit". Beim Einlesen des gleichen Datenpunktes für die Addition wird der alte Wert verwendet. Benutze Variablen !
Wert findet man unter "Trigger".
-
@paul53
Herzlichen Dank, das MUSS die Lösung sein!
Da mache ich mich bald dran...Aber was meintest du mit "Wert findet man unter Trigger"?
-
@brokeling sagte:
was meintest du mit "Wert findet man unter Trigger"?
zeit und zeit_setzen sind selbst erstellte Variablen. Wert ist hingegen eine Eigenschaft des Trigger-Datenpunktes, hat aber die gleiche Farbe wie eine selbst erstellte Variable.