"Kto by tam czytał instrukcje"
//żart
Swoją drogą, to widzę (chyba), że negujesz diodę po odebraniu jakiejś wiadomości - strzelam, że wiadomość po wciśnięciu przycisku - nie znam kodu tak dobrze jak Jacek i nie potrafię czytać jeszcze jak z kodu matrixa
.
Jeśli faktycznie jest to tak zrobione, to moim zdaniem nie jest to najlepsze rozwiązanie, gdyż przyjmując nawet dużą niezawodność CANa może się zdarzyć, że urządzenie nie odbierze komunikatu - np gdy obok leci akurat aktualizacja firmwaru lub programowanie jakiegoś modułu. Nawet sama utrata zasilania spowodować może rozsynchronizowanie diody i przekaźnika.
Logika podpowiada, że skoro dioda ma pokazywać stan załączenia jakiegoś obwodu, to niech pokazuje stan tego obwodu, a nie hipotetycznego założenia, że obwód jest załączony. Zatem dioda powinna mieć dwie reguły, reagujące na wiadomości wysyłane przez moduł przekaźnika, a nie przez moduł przycisku.
Jeśli przekaźnik załączy obwód, to informuje o tym magistralę i dioda powinna się włączyć. Przy wyłączeniu przekaźnika wyłącza się i dioda.
Dodatkowo, jeśli włączysz przekaźnik w jakikolwiek sposób (z komputera, z pilota), to masz pewność, że dioda będzie zawsze aktualna.
Jeśli krzywo zinterpretowałem zrzuty ekranu to przepraszam, ale też na mój obecny stan wiedzy tak bym to zaimplementował.