Closed habeIchVergessen closed 6 years ago
meinst du das Prüfen auf beide Hardware Revisionen? Da werden doch nur Register getauscht. Ansonsten sind es lediglich Anpassungen, die aus meiner Sicht Sinn ergeben. Separate PRs bedürfen mehrerer Branches auf der Entwicklungsseite. Auch nicht toll.
Es sind hier 18 commits in dem PR.
Ich schätze, das sind mehrere unabhängig Änderungen .
ja, ich eine Callback für alle Ausgaben wäre gut. Die Lösung mit dem Makro ist etwas suboptimal
Soll der Callback die Macros ablösen? die standardmäßige Ausgabe nach Serial wird gleich in signalDecoder implementiert? Möchtest du den Vorschlag machen?
ja alle Ausgaben sollten über eine Callback laufen. Bin noch nicht sicher, ob man eine Callback mit Parameter oder eine 2. Callback für debug macht. vielleicht sollte der Signale Decoder alles auf eine Ausgabe werfen. Nur im Hauptskech braucht man da wohl was
ich habe gestern ein bisschen mit einem Pointer auf ein Stream Objekt experimentiert. Compilieren geht, aber der ESP schmiert ab, sobald ich dem pointer die Adresse vom serverClient zuordne. Bleibt dann wohl doch nur die Callback Funktion
wenn direkt in serverClient geschrieben wird, könnten wir yield() wieder nicht sehen.
was meinst Du mit yield sehen? yield läuft bei jedem write. Um yield brauchen wir uns nicht kümmern, eher darum dass write nicht so oft aufgerufen wird, da es einen enormen Overhead erzeugt.
yield sehen: den Aufruf von serverClient.write (impliziert yield nach den letzten Erkenntnissen) im Haupt-Thread mitbekommen
dann muss der Callback solange puffern, bis eine gewisse Größe erreicht ist oder MSG_END in den Daten vorkommt.
MSG_END ist eine gute Idee. also entweder Puffer voll oder halt MSG_END. Muss nur Mal sehen wie das mit Print, ptintln oder write läuft.
ich habe das mit der Callback gestern mal angefangen.
So richtig gefällt mir das noch nicht, da wir die ganzen Funktionen aus Stream/Print/WifiClient verlieren. Die Callback brauchen wir ja auch nur, da in WifiClient der Puffer noch fehlt.
Ich habe das Mal grob zuende gedacht. Wenn man die diversen Print und Write Ausgaben beibehalten möchte, braucht es eine eigene Klasse oder man übergibt mehrere Callback Funktionen.
ich habe jetzt einen Ansatz,
ich habe mehrere Write Funktionen in den Signaldecoder eingebaut. Die sind notwendig, damit man die gewohnten Print, Write Optionen grob abdeckt. (Ausgabe eines Zeichens, Ausgabe einer Zeichenkette,..)
Diese Write Funktionen ruft eine Callback aus dem Hauptprogramm auf, welche dann tatsächlich ein Write auf eine Stream Klasse anwendet.
möchtest du die in einem neuen branch teilen?
Wenn du hier weitere Features einbaust, wird das meiner Meinung nach nie was mit dem Mergen.. besser ist es, für jedes Thema einen eigenen PR zu machen, sonst lässt sich am Ende wegen eines Themas der ganze PR nicht mergen