Ich mag serielle Kommunikation zu Debugging- und Testzwecken, aber nach einer Weile nimmt sie der Skizze zu viel Geschwindigkeit.
Ist es möglich, dass der Arduino serial.print und serial.println in meinem Code ignoriert, ohne ihn in einen Kommentar umzuwandeln oder jeden seriellen Druck in "if (debug == true)" -Anweisungen zu platzieren?
Danke im Voraus.
#ifdef ENABLE_PRINT
und#endif
dann definieren oder kommentieren Sie#define ENABLE_PRINT
an der Spitze der ur - DateidebugL1();
,debugL2();
etc, so können Sie wählen , wie viele Details , die Sie auf „log“ wollen. Die Makros machen es zwar nicht möglich, die Laufzeit zu ändern, aber mit dem Vorteil, dass kein Laufzeit-Overhead vorliegt.Sie können beispielsweise den Präprozessor verwenden, um alles
Serial
in Ihrem Code zu ändern .quelle
Eine weitere Lösung besteht darin, ein serielles Dummy-Gerät zu implementieren. Dies wäre eine Klasse, die als HardwareSerial von Stream erbt und die erforderlichen virtuellen Elementfunktionen mit Dummy-Funktionen implementiert.
Da Serial nicht als schwaches Symbol definiert ist, müsste die Anwendung eine Steam-Variable für die Ausgabe verwenden. Und binden Sie dies an das HardwareSerial oder das NullSerial.
Dies ist nicht vollständig, da alle HardwareSerial-Elementfunktionen (die in der Skizze verwendet werden) benötigt werden, gibt jedoch eine allgemeine Vorstellung davon, wie OOP zur Lösung des Problems verwendet werden kann.
Prost!
quelle