Zgodnie z zapowiedzią chciałbym przedstawić mój pomysł projektu realizującego wyświetlanie alarmów w BMS 4.33 za pomocą Arduino Leonardo. Mamy już zrealizowane różne kontrolery odczytujące układy wejściowe typu przycisk, przełącznik, enkoder. Posiadam dwa typy kontrolerów pozwalające odczytać alarmy w BMS. Jeden to układ z OpenCockpis sterowany z SIOC oraz FAST. Drugi oparty na platformie HSC codeking oraz kontrolerze SimOUT.
To drugie rozwiązanie wymaga konwertera USB - RS232 oraz układu MAX 232 do zamiany sygnałów liniowych na TTL. Zamiana uP ATTINY 2313 na Leonardo uprościłaby ten układ.
Na załączonym szkicu przedstawiłem projekt oparty na Leonardo i podobny do SimOUT (fragmentu realizującego LED). Sterownik realizuje sterowanie 48 LED wyświetlanych dynamicznie a nie statycznie. Potrzeba tylko jednego układu ULN 2803 oraz 6 złączy 10 pin i 6 rezystorów. LED pracują w układzie z wspólną anodą.

W bibliotece FlightData.h są między innymi 3 rejestry 32 bitowe o nazwie LightBits, LightBits2 oraz LightBits3. Na 32 pozycjach tych rejestrów są wskaźniki odpowiednich alarmów w BMS. Najmłodszy adres to 0x1 co odpowiada wskaźnikowi (1) na zerowej pozycji rejestru, najstarszy to 0x80000000 co odpowiada wskaźnikowi alarmu (1) na pozycji 31 rejestru.
Codeking w HSC zaprojektował tzw. moduły wejścia w tym moduł FalconData, który jest zbiorem zmiennych w BMS w tym również wspomnianych 3 rejestrów. Są też moduły wyjścia w tym SimOut.
W skrypcie do HSC dla BMS jest tylko kilka deklaracji oraz funkcji np.
variable $lightBits { module = "FalconData"; id = "lightBits"; type = int; direct = in; }
variable_changed $lightBits
$led_001_008 = GetBitState( $lightBits , 1 )
Jak widać jest to bardzo prosto zrobione. Jest skojarzenie wyjścia SimOut z wybranym alarmem i jeśli jest zmiana stanu alarmu to zostanie to przekazane do określonego LED.
W uproszczeniu tak to można przedstawić.
Pytanie do 3.14ter czy można to zrealizować w prosty sposób w Leonardo. Dodam tylko, że codeking w module ma 3 pliki F4SharedMem.dll, FalconData.dll oraz FalconData.
W Internecie znalazłem bibliotekę dla BMS
http://www.foinikas.org/ftp/public/Falcon%20BMS/Docs/Other%20Documentation/Flight%20Data.hTwórca FlightData.h jest lightning, adres jego strony
https://svn2.assembla.com/svn/lightningstools/Realizacja takiego projektu byłaby bardzo przydatna dla budowniczych paneli dla BMS.