Hey,
ich brauch mal etwas Starthilfe bei einem Design-Ansatz...
Ich hab eine Library, die ich etwas umgestalten will/muss um folgende Probleme zu lösen:
- Die Lib hat mehrere Klassen und Header-Files. Ich will von außen der Lib sagen können welches Serial-Device für die Debug-Meldungen genutzt wird (HardwareSerial oder beliebiges SoftwareSerial, ...)
Hierfür könnte ich wohl einen "setter" einbauen mit dem der Benutzer eine Serial-Instanz in die Lib reinreichen kann, welche diese Instanz dann für Debug-Meldungen nutzt.
Bessere Ideen?
-
Eigentlich soll die Lib im produktiven Einsatz kein Debug mehr enthalten. Bisher hab ich das immer mit einem "#define" in einem lib eigenen Header-File erledigt. Aber dazu müsste der Benutzer die Lib anfassen?!
-
Wenn ich die Lib in den Arduino Library Manager eintragen lasse (Library Manager FAQ · arduino/Arduino Wiki · GitHub), und die Benutzer die Lib darüber beziehen, dann ist das "anfassen" der Lib (bzw. deren Header-File für etwaige #define Einstellungen) zwar noch möglich (wenn man weiß wo die Lib nach dem Auto-Download landet), aber das ist immer "global" und nicht für jedes Projekt/Sketch separat.
Was ich nun Suche ist ein Ansatz mit dem ich
- möglichst einfach für jedes Projekt das die Lib verwendet, die Lib einstellen kann
- nach Möglichkeit Debug-Code im produktiven Release-Code weitgehend nicht-existent ist
Gibt's hier Lib-Bastler die schon vor einem ähnlichen Problem standen? 1+2 lässt sich durch eine geschickte Header-File in der Lib wohl lösen und der User reicht sein debug-serial Instanz einfach rein. Aber Punkt 3 stört mich aktuell noch am meisten, gerade in Hinsicht auf Projekt-verschiedene Anforderungen an die Lib und deren Debug-Einstellung ...
Any ideas?