Spontane Fehler bei Berechnungen

Post a reply


In an effort to prevent automatic submissions, we require that you complete the following challenge.
Smilies
:D :) ;) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :!: :?: :idea: :| :mrgreen: :geek: :ugeek: :arrow: :angel: :clap: :crazy: :eh: :lolno: :problem: :shh: :shifty: :sick: :silent: :think: :thumbup: :thumbdown: :salute: :wave: :wtf: :yawn: :facepalm: :bravo: :dance: :beard: :morebeard: :xmas: :HeHe: :trollface: :cookie: :rainbow: :monkeysee: :monkeysay: :happybday: :headwall: :offtopic: :superhappy: :terms: :beer:
View more smilies

BBCode is ON
[img] is OFF
[flash] is OFF
[url] is ON
Smilies are ON

Topic review
   

Expand view Topic review: Spontane Fehler bei Berechnungen

Re: Spontane Fehler bei Berechnungen

Post by Filzfrosch » 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!

Re: Spontane Fehler bei Berechnungen

Post by just me » 09 Aug 2023, 06:01

... fällt mir gerade noch auf: Warum brauchst Du eigentlich zwei (?) getrennte Timerroutinen zum Abgreifen und Verarbeiten der Daten?

Re: Spontane Fehler bei Berechnungen

Post by just me » 09 Aug 2023, 03:13

Moin,

Edit: @Rohwedder war schneller.

Alles Gute, just me

Re: Spontane Fehler bei Berechnungen

Post by Rohwedder » 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

Re: Spontane Fehler bei Berechnungen

Post by Filzfrosch » 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ß!

Re: Spontane Fehler bei Berechnungen

Post by Filzfrosch » 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?

Re: Spontane Fehler bei Berechnungen

Post by just me » 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?

Spontane Fehler bei Berechnungen

Post by Filzfrosch » 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?

Top