Hallo Community,
ich wollte mal auf einen Fork von Franck Marini's Knx Device hinweisen: https://github.com/AndreasMainz/KnxDevice.git
Ich habe den Treiber so umgebaut, dass auf Index 0 alle nicht addressierten Telegramme rauskommen, so daß man damit ein Gruppenmonitor
parallel zum sonstigen Geschehen betreiben kann.
Der Treiber ist nicht besonders schön abgeändert, aber er funktioniert zuverlässig.
Grundsätzlich finde ich diese strenge Trennung der einzelnen Layers für so einen kleinen Controller oversized und man kann den ursprünglichen Treiber auch nur
so verwenden, wie es der Autor vorgesehen hat. Leider gehen beim Übergang von z.B. TpUart -> Knxdevice die Information der Gruppenadresse verloren (wird auch nicht mehr gebraucht) und wird in den relevanten Index umgewandelt, der dann auch im Callback (
)verwendet wird. Die
Gruppenadresse ist auf dieser Ebene nicht mehr bekannt.
Die Kapselung der Daten passiert m.M. nach auch nur auf der Programmierebene, im Betrieb sind die Daten nicht besser gegen Überschreiben geschützt (durch z.B. einen fehlerhaften Pointer Zugriff) als im klassischen C. Aber das ist sicher Geschmacksfrage.
Da mir selbst die Änderung mit Ga_int und Ga_data nicht gefällt, würde ich mich über konkrete Programmiervorschläge, wie man es in C++ besser machen könnte,
um an die relevanten Daten zu kommen freuen.
Was ich überhaupt nicht verstanden habe, wo die 1Bit Daten von KNX_DPT_1_001 gespeichert werden, wenn mir da jemand einen Tipp geben könnte..
Ich freue mich über Eure Korrekturvorschläge..
Gruß Andreas
ich wollte mal auf einen Fork von Franck Marini's Knx Device hinweisen: https://github.com/AndreasMainz/KnxDevice.git
Ich habe den Treiber so umgebaut, dass auf Index 0 alle nicht addressierten Telegramme rauskommen, so daß man damit ein Gruppenmonitor
parallel zum sonstigen Geschehen betreiben kann.
Der Treiber ist nicht besonders schön abgeändert, aber er funktioniert zuverlässig.
Grundsätzlich finde ich diese strenge Trennung der einzelnen Layers für so einen kleinen Controller oversized und man kann den ursprünglichen Treiber auch nur
so verwenden, wie es der Autor vorgesehen hat. Leider gehen beim Übergang von z.B. TpUart -> Knxdevice die Information der Gruppenadresse verloren (wird auch nicht mehr gebraucht) und wird in den relevanten Index umgewandelt, der dann auch im Callback (
Code:
void knxEvents(byte index)
Gruppenadresse ist auf dieser Ebene nicht mehr bekannt.
Die Kapselung der Daten passiert m.M. nach auch nur auf der Programmierebene, im Betrieb sind die Daten nicht besser gegen Überschreiben geschützt (durch z.B. einen fehlerhaften Pointer Zugriff) als im klassischen C. Aber das ist sicher Geschmacksfrage.
Da mir selbst die Änderung mit Ga_int und Ga_data nicht gefällt, würde ich mich über konkrete Programmiervorschläge, wie man es in C++ besser machen könnte,
um an die relevanten Daten zu kommen freuen.
Was ich überhaupt nicht verstanden habe, wo die 1Bit Daten von KNX_DPT_1_001 gespeichert werden, wenn mir da jemand einen Tipp geben könnte..
Ich freue mich über Eure Korrekturvorschläge..
Gruß Andreas
Kommentar