Sto dni w kolorze

Okna – Diagnostyka

Dzisiejszy wpis będzie krótką relacją z dzisiejszych prac. Postanowiłem rozpocząć pracę nad oknami od stworzenia zarysu okna Diagnostyki OBD. Bazowałem oczywiście na moim wcześniejszym projekcie HypeFIS 🙂 Stąd zapewne sporo z Was zauważy pewne podobieństwa. Okno składa się z kilku widgetów tekstowych oraz menu, które w przyszłości będzie służyło do wyboru poszczególnych funkcji diagnostyki. W […]

Okna – menu główne

Dziś ponownie krótka relacja z prac – tym razem nad zarysem menu głównego. Będzie to również swego rodzaju schematem do tworzenia wszystkich innych podrzędnych menu. Dodatkowo, do biblioteki graficznej dodana została funkcjonalność rysowania prostokątnej ramki z lekko zaokrąglonymi rogami. Niby detal, ale pozwoli w przyszłości poprawić nieco estetykę interfejsu. Jutro wracamy do nieco dłuższej i […]

Frontend i backend w jednym stali domu…

Zapewne część z Was zastanawia się w jaki sposób na widgetach pojawiają się różne wartości pomiarowe – napięcie, prędkość, ilość paliwa. Skąd pobierane są te informacje? Najbardziej intuicyjnym podejściem wydaje się być odpytanie z poziomu samego widgetu odpowiedniego kanału diagnostyki lub czujnika. Jeżeli spojrzymy w kod źródłowy podobnych systemów dostępnych w sieci, okaże się, że […]

Widgety – cz. 7

Dziś ponownie czas stworzyć nowy widget – tym razem będzie to pasek postępu (progress bar). Stanowi on jedną z podstawowych graficznych metod wizualizacji pomiarów. Wykorzystamy również dodaną niedawno funkcjonalność biblioteki graficznej – rysowanie prostokąta o zaokrąglonych wierzchołkach.

Walka o przykrótką kołderkę – czyli alokowanie zasobów sprzętowych procesora.

W przeciwieństwie do klasycznych komputerów, systemy wbudowane zawsze posiadają mocno ograniczoną pulę zasobów. I nie chodzi tu jedynie o czas CPU czy dostępną pamięć. Należy pamiętać, iż typowy mikrokontroler ma całą gamę wszelakich peryferiów… Ich liczba oraz możliwości również stanowią istotną kwestię dla developerów. W dzisiejszym artykule spróbujemy zastanowić się nad podziałem dostępnych peryferiów dla […]

Dźwięk – cz. 1

Dotychczas skupialiśmy naszą uwagę na aspektach związanych głównie z obsługa i tworzeniem obrazu – czy to biblioteka graficzna, czy widgety, czy wreszcie całe okna. Dlatego dziś warto po raz pierwszy zająć się tematem dźwięku ,który wbrew pozorom jest równie istotnym medium co obraz 🙂 Idealnym rozwiązaniem byłoby oczywiście wykorzystanie wbudowanego w nasz mikrokontroler przetwornika C/A […]

Kto Ty jesteś? Widget mały! – czyli za co lubię C++

W jednym z pierwszych artykułów niniejszego bloga zastawialiśmy się nad wyborem najlepszego języka programowania dla naszego projektu. O ile niskopoziomowa część, taka jak drivery sprzętu czy obsługa protokołów diagnostycznych są domeną języka C, to przechodząc do wysokopoziomowej części warto pochylić się nad jego młodszym bratem – C++. Dlaczego? Czy nie lepiej trzymać się jednego języka […]

Alarmy, komunikaty i ostrzeżenia – czyli reguła DRY w praktyce

Chyba każdy, kto choć raz spróbował swoich sił w programowaniu, zetknął się na pewno z zasadą DRY (ang. Don’t Repeat Yourself – Nie Powtarzaj Się). W myśl tej reguły należy unikać wielokrotnego powielania identycznych (lub bardzo zbliżonych funkcjonalnie) fragmentów kodu. Najczęściej uzyskujemy to poprzez wydzielanie często powtarzanych operacji formie funkcji czy wręcz całych bibliotek. Innym […]

Asystenci cz.1 – czyli refaktoryzacja kodu w praktyce

Dziś przyszedł czas na zajęcie się typowo “aplikacyjną” częścią naszego projektu. Zdecydowałem, iż pierwszymi aplikacjami jakie stworzymy będą tzw. asystenci kierowcy. Tego typu funkcjonalność została już zaimplementowana na potrzeby poprzedniego projektu HypeFIS. Rozsądnym podejściem byłoby więc re-użycie istniejącego już, działającego i dobrze przetestowanego kodu. W ten sposób znacząco ograniczylibyśmy ilość pracy przeznaczonej na implementację oraz […]

Asystenci cz.2 – włącz światła!

Dziś zajmiemy się pierwszym z asystentów kierowcy, przypominającym o konieczności włączenia świateł. Spośród wszystkich asystentów posiada on najmniej skomplikowaną logikę i dlatego jest dobrą “rozgrzewką” przed bardziej złożonymi przedstawicielami tej grupy. Do sterowania wykorzystamy oczywiście naszą maszynę stanów. W zależności od konfiguracji, alert powinien pojawić się po określonym czasie od włączenia zapłonu lub po przekroczeniu […]