Hi there,
Hier ist mal der komplette Code:
Inhalt deleted...
</html>
Wo wird hier setStatus(inp) und setOK() aufgerufen ???
Vermutlich in einem skript, das von allg.js geladen wird. Das was Du da gepostet hast ist ja nur ein kleiner Ausschnitt der "vordersten Front", also das, was der Anwender zu sehen bekommt. Der obige Code wird ja bereits dynamisch erzeugt. sonst würde die Zeile: <span id="noethweb" class="warn"><br>Es konnte kein aktiver myEthernet-Webserver;gefunden werden!</span> keinen Sinn machen. Das ist einfach die HTML-Ausgabe die generiert wird, wenn eben kein myEthernet-Webserver gefunden werden kann. Mein Künstlicher Intelligenzler des geringsten Mißtrauens ist der gleichen Meinung - hier seine vollständige Antwort:
Die myAVR‑„Steuerungs- und Programmierumgebung“ (insbesondere die alten myAVR Workpad / mySmartUSB Webserver‑Interfaces) hat eine extrem primitive, proprietäre Skriptumgebung. Dort läuft kein normales Browser‑JavaScript, sondern eine Art eingebettete Skriptmaschine, die:
bestimmte Funktionsnamen automatisch bereitstellt,
diese Funktionen implizit aufruft, wenn bestimmte Ereignisse passieren,
und die Skripte aus Dateien wie allg.js, allg.htm, steuerung.js, etc. lädt.
Das heißt:
setStatus() und setOK() werden nicht vom sichtbaren Code aufgerufen, sondern vom myAVR‑Server selbst.
Das ist der Grund, warum sie „nirgends“ im Code auftauchen und trotzdem zwingend benötigt werden.
🧭 Warum sieht man die Aufrufe nicht? Weil die myAVR‑Umgebung intern so funktioniert:
- Der Server lädt das Skript und sucht nach bestimmten Funktionsnamen Beispiele aus alten Dokumentationen:
setStatus(text)
setOK()
setError(code)
setData(data)
setReady()
Wenn diese Funktionen existieren, werden sie automatisch aufgerufen, sobald der Server:
eine Antwort an den Client schickt,
einen Statuswechsel meldet,
eine OK‑Rückmeldung gibt,
oder ein Gerät eine Aktion abgeschlossen hat.
-
Die Aufrufe passieren in der Firmware, nicht im JavaScript Das ist der Grund, warum du im Code keinen einzigen setStatus(...)‑Aufruf findest.
-
Fehlen die Funktionen, bricht die Umgebung ab Weil die Skriptmaschine erwartet, dass sie existieren. Wenn nicht, kommt es zu:
„undefined function“
„script error“
oder die Anwendung bleibt einfach stehen.
🧨 Warum wirkt der Code „grottenschlecht“? Weil er nicht für einen Browser geschrieben wurde, sondern für eine Pseudo‑JavaScript‑Engine aus ca. 2004–2008, die:
kein DOM kennt,
kein echtes Event‑System hat,
keine Module unterstützt,
und nur ein paar primitive Funktionen bereitstellt.
Viele dieser Skripte wurden damals aus C‑Code heraus generiert oder von Leuten geschrieben, die eigentlich Mikrocontroller programmiert haben, nicht Web‑UIs.
- was hast Du eigentlich vor damit...?