plugins icon indicating copy to clipboard operation
plugins copied to clipboard

[enocean plugin]: Introduce Protocol Module and Load CRC and CONSTANTS from Module

Open hasenradball opened this issue 1 year ago • 9 comments

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

hasenradball avatar Jan 11 '24 11:01 hasenradball

@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.

hasenradball avatar Jan 11 '24 11:01 hasenradball

Wieso braucht es für CRC überhaupt eine Tabelle? Und schau dir mal @staticmethod an...

Morg42 avatar Jan 11 '24 12:01 Morg42

@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

hasenradball avatar Jan 11 '24 13:01 hasenradball

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 :)

Morg42 avatar Jan 11 '24 14:01 Morg42

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. :-)

hasenradball avatar Jan 11 '24 14:01 hasenradball

:-)

hasenradball avatar Jan 13 '24 16:01 hasenradball

Constant optimisation is working and PR is ready to merge!

hasenradball avatar Jan 24 '24 11:01 hasenradball

Mach doch erstmal weiter, bis ein wirklicher Fortschritt erreicht ist.

Morg42 avatar Feb 29 '24 15:02 Morg42

@Morg42 werde ich auch tun, allerdings kann ich nicht so regelmäßig dran arbeiten, daher step1. Ein Schritt nach dem anderen… 😊

hasenradball avatar Feb 29 '24 17:02 hasenradball

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 avatar Jun 27 '24 17:06 Morg42

@Morg42 Hast Du dann auch gleich umstrukturiert? Also Konstanten in ein separates file gezogen etc.?

hasenradball avatar Jun 27 '24 18:06 hasenradball

@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. 👍

hasenradball avatar Jun 27 '24 18:06 hasenradball