plugins
plugins copied to clipboard
[enocean plugin]: Introduce Protocol Module and Load CRC and CONSTANTS from Module
Introduce Protocol Module
- add submodule constants
- add submodule crc8
remove CRC table from init.py and load it from module
- clean up init.py
- use
static_method
from module
remove Constants definition from __init__.py
- remove constants from main file
- add loading constants as required from constants module
Reason for Change
- set a basis for future code and structure improvements
- increase maintainability
- increase readability of
__init__.py
Status
- tested
- no functional change actually
- is a basis for future improvements
@Morg42 Hi, hier mal ein kleines Beispiel wir ich CONSTANTEN auslagern würde. Erst mal nur am Beispiel der CRC Table.
PS: und natürlich vorher gestestet, läuft.
Wieso braucht es für CRC überhaupt eine Tabelle? Und schau dir mal @staticmethod an...
@Morg42 Ich verstehe Deine Frage nicht ganz. Was wolltest Du sagen?
@staticmethod
als decorator kenne ich, ja kann man auch so nutzen.
Aber was passt Dir an der Tabelle nicht? sieh mal hier Seite 111
Aus prinzipiellen und ästhetischen Gründen "passt" mir nicht, riesige Tabellen mitzuschleppen, die man "mal eben" auch automatisch befüllen lassen kann ;)
Und ja, ich kenne den Standard :)
Was wäre dein alternativ Vorschlag? Wie würdest Du die Tabelle generieren?
Klar gebe Dir recht schön ist sie nicht, aber man kann so immer nachvollziehen wie man zu den Werten kommt. Wenn Du die nicht mitschleppst musst halt dazuschreiben wie diese gerneriert wird.
Aber das mit der Tabelle sehe ich erstmal als kleine Baustelle an. :-)
:-)
Constant optimisation is working and PR is ready to merge!
Mach doch erstmal weiter, bis ein wirklicher Fortschritt erreicht ist.
@Morg42 werde ich auch tun, allerdings kann ich nicht so regelmäßig dran arbeiten, daher step1. Ein Schritt nach dem anderen… 😊
Aufgrund häufiger Verbindungsprobleme habe ich die ganze "connect"-Logik und dabei einige Strukturen in init überarbeitet. Dazu habe ich deine Änderungen (nicht alle "wörtlich", aber sinngemäß) gleich mit integriert, insofern schließe ich hier.
Du kannst gerne Ideen zu weiteren Verbesserungen einbringen oder die Änderungen dann gleich selbst umsetzen ;)
(Bitte mit PR noch warten; es stehen größere Änderungen an smartplugin an, und ich passe dann die Plugins im Paket gleich nochmal an...)
@Morg42 Hast Du dann auch gleich umstrukturiert? Also Konstanten in ein separates file gezogen etc.?
@Morg42 Connection probleme sind mir noch nie direkt aufgefallen, aber mich hat es gewundert dass es so stabil tut wie es tut.
Ich schaue mir den Code mal in Ruhe auf dem Rechner an. 👍