Spontane Fehler bei Berechnungen Topic is solved

Stelle Fragen zur Programmierung mit Autohotkey

Moderator: jNizM

Filzfrosch
Posts: 66
Joined: 18 Feb 2017, 08:39
Location: Hamburg / Germany

Spontane Fehler bei Berechnungen

08 Aug 2023, 09:56

Moin,
ich sammel in einem Script im Minutentakt diverse Variablenwerte ein und lasse daraus dann verschiedene Berechnungen erstellen.
Klappt eigentlich auch super, alle Berechnungen ergeben korrekte Werte.

Was allerdings doch stört ist, dass manchmal anscheinend die Zeit für die Berechnung der einzelnen Werte nicht ausreicht und dann merkwürdige Ergebnisse entstehen. Eine Minute später kommt dann wieder das korrekte Ergebnis heraus.
Die einzelnen Variablen sind in den Fehlsituationen korrekt ausgelesen worden, nur die Berechnung selbst kommt anscheinend ins schleudern und auf ein falsches Ergebnis.
Ich habe schon versucht die einzelnen Berechnungszeiten mit Sleep zu verlängern, aber selbst bei relativ hohen Sleep-Werten von 1 Sekunde kommt es trotzdem noch manchmal zu falschen Ergebnissen. Dabei sind die Berechnungen nicht wirklich extrem aufwändig (einfache Prozentrechnungen usw.). Ich vermute das es etwas mit der momentanen Speichersituation des Windows-Rechners zu tun hat oder der PC gerade andere Dinge priorisiert und diese abarbeitet. Und dadurch dann eine Rechnung nicht vollständig abgearbeitet wird, bevor das Skript fortfährt.

Gibt es eine Möglichkeit einer Berechnung noch eine andere Art Parameter mitzugeben, die bewirkt das erst nach der vollständigen Beendung eine Berechnung das Skript fortfährt mit der nächsten Berechnung? Oder eine Alternative zu Sleep, die dieses bewirkt?
Merry Crisis and a happy new fear
just me
Posts: 9530
Joined: 02 Oct 2013, 08:51
Location: Germany

Re: Spontane Fehler bei Berechnungen  Topic is solved

08 Aug 2023, 10:55

Moin,

solchene 'spontanen' Fehler sind eher unwahrscheinlich. Hast Du in Deinem Skript Timer oder Messagehandler, die eine laufende Berechnung unterbrechen können?
Filzfrosch
Posts: 66
Joined: 18 Feb 2017, 08:39
Location: Hamburg / Germany

Re: Spontane Fehler bei Berechnungen

08 Aug 2023, 11:04

Moin just me,
ja, ich habe einen Timer der die Werte der Variablen über eine API minütlich neu befüllt.
Stimmt, daran habe ich gar nicht gedacht, dass dieser Vorgang ja dazwischen "grätschen" kann ... Das würde auch das sporadische erklären, also das es nur manchmal passiert.
Kann ich denn irgendwie im Skript erkennen das der Timer gerade aktiv ist und dann solange warten bis er fertig ist?

Ich denke gerade, ich könnte mir eine Hilfsvariable erstellen, die solange der Timerablauf aktiv ist auf 1 setzt und dann die Berechnung mit einer if Timer aktiv- Abfrage damit erweitern. Oder geht das noch einfacher?
Merry Crisis and a happy new fear
Filzfrosch
Posts: 66
Joined: 18 Feb 2017, 08:39
Location: Hamburg / Germany

Re: Spontane Fehler bei Berechnungen

08 Aug 2023, 16:17

Hatte es mit eingebauter Hilfsvariablen mal länger getestet, aber das hat auch nicht wirklich geholfen. Es dauerte zwar etwas länger, aber der Berechnungsfehler erschien trotzdem nach einiger Zeit. Mit der Hilfsvariablen checke ich ja aber auch nur, ob der Timerablauf gerade noch aktiv ist, wenn die Berechnung startet. Wenn der Timer aber während der Berechnung aktiv wird passiert es wohl ...
Ich habe aber die Lösung nun wohl selbst gefunden ...
Die Berechnung selbst wird auch mit einem Timer gestartet. Diesen habe ich nun nochmal insgesamt 15 Sekunden zeitversetzt nach hinten verlagert, sodass sich beide nicht mehr in die Quere kommen. Und so läuft es nun schon längere Zeit ohne Fehlberechnung. Hätte ich auch gleich drauf kommen können, aber manchmal sieht man den Wald vor lauter Bäumen nicht und denkt komplizierter als nötig.
Danke an @just me für den Denkanstoß!
Merry Crisis and a happy new fear
Rohwedder
Posts: 7719
Joined: 04 Jun 2014, 08:33
Location: Germany

Re: Spontane Fehler bei Berechnungen

09 Aug 2023, 03:09

Hallo,
statt "Ich habe schon versucht die einzelnen Berechnungszeiten mit Sleep zu verlängern" (wie sollte das überhaupt helfen?)
würde ich den Berechnungsthread mit https://ahkde.github.io/docs/v1/lib/Thread.htm#NoTimers vor Unterbrechungen schützen
oder ihn sogar kritisch machen https://ahkde.github.io/docs/v1/lib/Critical.htm
just me
Posts: 9530
Joined: 02 Oct 2013, 08:51
Location: Germany

Re: Spontane Fehler bei Berechnungen

09 Aug 2023, 03:13

Moin,

Edit: @Rohwedder war schneller.

Alles Gute, just me
just me
Posts: 9530
Joined: 02 Oct 2013, 08:51
Location: Germany

Re: Spontane Fehler bei Berechnungen

09 Aug 2023, 06:01

... fällt mir gerade noch auf: Warum brauchst Du eigentlich zwei (?) getrennte Timerroutinen zum Abgreifen und Verarbeiten der Daten?
Filzfrosch
Posts: 66
Joined: 18 Feb 2017, 08:39
Location: Hamburg / Germany

Re: Spontane Fehler bei Berechnungen

09 Aug 2023, 10:18

Moin,

es sind zwei Timer, weil es eigentlich noch ein Überbleibsel ist aus einer früheren Version des Scripts ist. Damals hatte ich noch einige andere Funktionen eingebaut die zu anderen Zeit-Zyklen wichtig waren, die seit einiger Zeit aber nicht mehr benötigt werden, weil die API mir diese Punkte inzwischen zur Verfügung stellt. Ich hatte dann nur diese Funktionen entfernt und ansonsten alles so gelassen. Das Abgreifen und Verarbeiten der Daten könnte inzwischen wirklich in einem Timer zusammengefasst werden. Ich werde das Script beizeiten mal komplett überarbeiten, nur fehlt dazu im Moment einfach die Zeit.
NoTimers und Critical kannte ich tatsächlich bisher noch gar nicht.
Auf jeden Fall vielen Dank für die Hinweise und Tipps!
Merry Crisis and a happy new fear

Return to “Ich brauche Hilfe”

Who is online

Users browsing this forum: No registered users and 28 guests