Cześć,

Zrobiłem prosty system IoT bazujący na MQTT i JSONach. Serwer odbiera wiadomość, robi dispatch i przekazuje żądanie do konkretnego interfejsu, który parsuje requesta, składa odpowiedź i publikuje na MQTT. Kolekcjonowanie danych do złożenia odpowiedzi naturalnie odbywa się na różne sposoby (komunikacja po fizycznych interfejsach z czujnikami) w zależności co jest żądane. Jednak czuję, że architektonicznie mogłoby coś zagrać lepiej jeśli chodzi o budowanie odpowiedzi.
Chodzi mi po głowie stworzenie jakiegoś generycznego buildera, ale
  • 4
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@Parseval O MQTT przeczytałem 5 minut temu, ale może trochę pomogę. Nie podoba mi się w Twojej architekturze to, że zewnętrzny interfejs przenika do głębszych warstw abstrakcji. Głupia zmiana formatu wiadomości lub przeniesienie jakiegoś pola do innego requestu powoduje zmiany w serwerze, dispatcherze i kodzie modułów komunikujacych się z czujnikami.

Zewnętrzny interfejs zatrzymaj w aplikacji serwera i tam zrób logikę która będzie parsować requesty i na tej podstawie, delegować konkretne zadania do
  • Odpowiedz
Chodzi mi tutaj o problem czysto software'owy, tzn. jak skonstruować buildera dla tych odpowiedzi. W tym przypadku chodzi mi o jakąś klasę abstrakcyjną albo inny twór bazujący na statycznym polimorfizmie, który na podstawie tego requesta zrobi to co napisałeś w punkcie 3.


@Parseval: jak nie masz wspólnego zachowania dla wiadomości to co możesz abstrachować? Powinieneś mieć dispatchera, który robi switch po typie wiadomości przychodzącej i tak robisz logikę dla każdej
  • Odpowiedz
#studbaza #pracbaza #automatyka #embedded
LvL 25. W tym roku planowałem zacząć zaocznie magisterkę z elektrotechniki i telekomunikacji po 2 letniej przerwie od inż, ale zrobiłem sobie rachunek zysków i strat, no i wychodzi że więcej stracę. Obecnie mam spoko pracę, 5k na rękę i możliwość brania nadgodzin w opór, w soboty i w niedzielę również, więc ostatecznie wychodzi niezła kasa, na tyle, że mogę
  • 7
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@bc547: magisterkę zrobić byle jak, byle papier był (jakieś korpo może wymagać). Nie nastawiaj się na jakieś poszerzanie horyzontów na polskich uczelniach, ty te horyzonty w pracy poszerzasz.

5k na rękę i możliwość brania nadgodzin w opór, w soboty i w niedzielę

"Dobrze" zarabiasz bo nadgodziny trzepiesz. Przelicz ile czasu spędzasz w pracy.
  • Odpowiedz
Czytam sobie z ciekawości o CanOpen stack i jest tam przykład z aktualizacją firmware - w skrócie dostajesz komendę po CAN aby zrobić erase na wybranym sektorze flasha. Opatrzone to jest komentarzem aby w produkcyjnym środowisku zastosować bardziej wyrafinowany mechanizm weryfikacji czy dana komenda powinna zostać wykonana. I tak się zastanawiam jaki mechanizm można zastosować w takich resource constrained środowiskach? Do głowy przychodzi mi od razu weryfikacja podpisu cyfrowego dla danego obrazu
  • 6
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Trust zone to cos więcej. Tam oprócz trusted boot są też usługi bezpiecznego środowiska do różnych innych zastosowań.

Jeśli klucz jest przechowywany w "fuse bitach" czyli pamięci OTP to tak, po zawodach. Tj każdy z dostępem do klucza prywatnego jest w stanie wygenerować podpisany FW.
W praktyce stosuje się wiele stopni bootloadera i wiele SHA przechowywanych we flash. Tylko pierwszy z nich jest we fuse i yen fragment bardzo rzadko się aktualizuje
  • Odpowiedz
@pepepanpatryk: Jeżeli chodzi o CAN to przypuszczam że automotive

Zazwyczaj flashowanie jest realizowane po UDS (w tym przypadku UDS jest nad CANem). W UDS istnieje mechanizm security accessu, w którym tester (urządzenie wgrywające program) musi na początku flashowania odblokować żądany poziom security accessu. Dzieje się to poprzez zapytanie mikrokontrolera o seed (losowa 32 bitowa liczba, inna za każdym razem), następnie tester musi przekształcić seed określonym algorytmem, w ten sposób powstaje klucz,
  • Odpowiedz
✨️ Obserwuj #mirkoanonim
Mirki mam pytanie odnośnie protokołow komunikacji, bo im więcej o tym czytam tym mniej to rozumiem.

TPC/IP
Załóżmy, że mamy architekturę klient-server, połączenie po TCP. Aby to była taka "message-based" komunikacja to definiujemy sobie to np. w ten sposób:
| Header(proto version, message type, itp...)| Data | Checksum |
  • 10
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Dlaczego nie ma nic o Modbus over USB/SPI/I2C?


@mirko_anonim: bo modbus jest używany do łączenia urządzeń w przemyśle - odległości większe niż 10cm i możliwość występowania silnych zakłóceń.
  • Odpowiedz
Val powalczy z C++ i Rustem o swoje miejsce w programowaniu?

Val to nowy język programowania, który wykorzystuje mutable value semantics dla efektywnego i bezpiecznego programowania systemowego, unikając problemów znanych z języków takich jak C++ i Rust. M.in. dzięki kompilacji do kodu maszynowego zapewnia dużą wydajność.

#programowanie #naukaprogramowania #cplusplus #rustlang #embedded #gamedev
Bulldogjob - Val powalczy z C++ i Rustem o swoje miejsce w programowaniu?

Val to now...

źródło: 30823 val alternatywą dla c++ i rusta

Pobierz
  • 4
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Hej mirki, pracuje od ponad dwóch lat jako programista PLC, ale coraz bardziej myślę nad ucieczką w stronę IT - konkretnie embedded. Mam dosyć dobre podstawy C I trochę C++ oraz Java i aktualnie bawię się stm32. Polecacie jakieś książki/kursy i ogólna ścieżkę rozwoju, żeby móc zmienić branże w przeciągu 1/2 lat ?
#programowanie #programista15k #embedded #elektronika #automatyka #plc
  • 15
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@MjrSuchodolski ja bym szedł nawet na juniorskie stanowisko związane z C/C++, staż pracy będzie leciał a Ty w rok-dwa ogarniesz prace i będziesz wymiatali jako regular
  • Odpowiedz
bo zwykle gdy ktoś ogarnia C to uczy się też C++ , bo razem z tym wchodzi przy okazji OOP


@MilionoweMultikonto: zawodowo ma to średni sens. Jasne, znajomość konceptów OOP przydaje się (choćby tak jak znajomość pythona do skryptów), ale rynek C i C++ to mocno rozdzielne galęzie rynku. C to głównie embedded, C++ to telecom i różne korpo systemy (głównie stare).
  • Odpowiedz
Mirki poleci ktoś jakieś szkolenie (otwarte) do max 5k netto? Tematyka Linux (pod kątem embedded [głownie device drivers ]) lub Zephyr :)
Online lub stacjonarnie Kraków. Myślałem zrobić coś u Marcina Bisa ale ciężko się z nim doagadać ostatnio (a poszło zapytanie z firmy na konkretne duże zamowienie to zero odzewu od niego).

#embedded
  • 5
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Mirki, jak znaleźć pracę w #embedded? W kwietniu skończyłem informatykę na UAM w Poznaniu, miałem jeden przedmiot gdzie programowaliśmy mikrokontroler STM32 i spodobało mi się. Zrobiliśmy na nim prosty minutnik obsługiwany jednym guzikiem. Obecnie uczę się C z książki Kinga "C Programming: A Modern Approach" (super książka). W Poznaniu niestety nie ma za dużo ofert dla juniorów jeśli chodzi o embedded, a wolałbym się nie przeprowadzać. Pytanie co waszym
  • 13
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Pytanie co waszym zdaniem powinien potrafić junior na takim stanowisku?


@stepienz13posterunku:
- C/C++ w zależności od tego w co celujesz
- Git
- W miarę dobrze znać przynajmniej jedną architekturę procków, np ARM, ewentualnie cały ekosystem (na przykład STM32) wraz z konfiguracją
  • Odpowiedz
Cześć, mam 20 lat, pracuje aktualnie na utrzymaniu ruchu i zaczynam studia zaoczne na PWR na kierunku elektrotechnika, jestem jednak wielkim zajawkowiczem embedded i planuje iść w to w 100%. Chciałbym się dowiedzieć czy opłaca się robić te studia i czy wniosą one coś do mojego cv w przyszłości dla pracodawców? Generalnie to planuje zrobić w tym czasie też dużo projektów jednak fajnie mieć te wyższe wykształcenie, z góry dzięki za odpowiedź.
  • 9
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

  • 1
@kiciek: tyle że nie mam niestety możliwość studiowania stacjonarnego ze względu że sam się utrzymuje a niestacjonarnych kierunków od dawna tam nie ma..
  • Odpowiedz
Pytanie do speców od języka C. Chciałem się pobawić trochę w generowanie struktur poprzez makra, ale napotkałem na problem. Mam sobie strukturę, mam makro które w zamyśle ma nadać strukturze nazwę i ją zainicjalizować. Używam tego makra (zobacz komentarz) i się kompiluje. Ale jak już spróbuję cokolwiek przypisać do tak utworzonej struktury, to dostaję błąd. Jesteście w stanie wskazać mi mój błąd? Wyszedłem trochę z założenia, że preprocesor to tylko podmienia tekst,
mirkogreg - Pytanie do speców od języka C. Chciałem się pobawić trochę w generowanie ...

źródło: obraz_2023-07-12_225553058

Pobierz
  • 5
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Hej mam pytanie odnośnie remappfnrange z kernela, bo mam wrażenie, że coś nie do konca rozumiem.

Poniżej code snippet z ldd3.

static int simple_remap_mmap(struct file *filp, struct vm_area_struct
  • 2
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Właśnie na rynek wchodzą dwie nowe płytki od Arduino: UNO R4 Minima i UNO R4 WiFi. Obie z mikrokontrolerem Renesas RA4M1, a więc 32-bitowcem z Cortexem-M4. Dodatkowo wersja WiFi ma moduł ESP32 i parę innych bajerów. Ceny: 99 zł i 139 zł za wersję z Wi-Fi

Szczegóły: https://mikrokontroler.pl/2023/06/26/premiera-nowej-plytki-arduino-uno-r4/

#arduino #elektronika #programowanie #diy #embedded
  • 6
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

ESP32 jest tylko od łączności, a Renesas od wszystkiego innego (interfejsy, obliczenia etc.)

@Picoman: Czyli nadal nic nie rozumiem, dlaczego ktoś wpadł na taki pomysł i umieścił tam RA4M1 i obok ESP32, skoro sam ESP32 ma wszystko co potrzeba jak nie więcej od tego renesas'a
  • Odpowiedz
Zakładając, że mamy taki setup: CPU oraz FPGA komunikujące się przez PCIe. Czy generalnie patrząc od strony kernela pisze się jakieś customowe drivery do obsługi FPGA (customizujac jest pod konkretny przypadek użycia FPGA) czy korzysta się z jakichś generycznych driverów dostarczonych przez Intela czy np xilinxa, które obsługują np proces inicjalizacji FPGA, mapowanie przestrzeni adresowej oraz portów I/O układu FPGA i to mniej więcej tyle jeżeli chodzi o kernel space? Jest to
  • 1
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

✨️ Obserwuj #mirkoanonim
Wrzucam z anonima, bo czasem coś wrzucam na tag, a wolałbym pozostać anonimowy.

Hej mirki, pracuje jako programista około 7 lat, z tego 2,5 roku przepracowałem w webach przy backendzie ale mnie to nie cieszyło, chciałem iść bliżej sprzętu. Sukcesywnie udało mi się schodzić niżej, coraz bliżej celu ale mam wrażenie, że trafiłem na ścianę.
W obecnym projekcie pisze kod w C++ oraz zajmuje się trochę yocto -
  • 8
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Pare pytań do osob z #embedded #clang #c #rust #rustlang
Zaczełem troche czytać o embedded i RTOS, RISC-V, ARM i nawet ciekawe się to wydaje.

1. Trudno się dostać na juniora do embedded?
2. Lepiej uczyć się C czy lepiej Rust?
3. Co bardziej pracodawcy wymagają ARM czy RISC-V?
4. Godne książki polecenia w tym temacie?
  • 16
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@open-alpha: C++ jest trudny i mimo, że jestem bardzo dużym entuzjastą tego języka, na bieżąco go śledzę i wydaje mi się, że mam całkiem dobrą wiedzę to powoli męczy mnie to, że legacy jest jednak dużym bagażem, który trzeba za sobą ciągnać i coraz częściej czuje się lepiej grzebiąc w C.

Ja też parę lat temu jeszcze pracowałem w webach :) Później przeskoczyłem na C++ i teraz embedded. Pomogły własne projekty
  • Odpowiedz
@Abre to ile płacą nie zależy od tego czy coś jest trudne czy łatwe tylko ile ktoś za to płaci. Zobacz ile płacą ludzie za sterownik do pieca czy do podlewania a ile za cały portal do obsługi ZUSu czy jakiegoś banku i ile klienci tego banku zostawiają w nim pieniędzy.
  • Odpowiedz
@zibizz1: Przecież w embedded też są projekty warte miliardy, samoloty/aerospace/automotve/branża medyczna/maszyny przemysłowe.

Zobacz ile płacą ludzie za sterownik do pieca czy do podlewania a ile za cały portal do obsługi ZUSu


To równie dobrze można obrócić w drugą stronę, zobacz ile płacą w webdevie za jakiegoś prostego cruda albo stronę-wizytówkę firmy, a ile za sterownik do kontroli silnika w samochodzie, który będzie montowany w dziesiątkach milionów samochodów i nie za
  • Odpowiedz
Cześć,
Od jakiegoś czasu kombinuję nad stworzeniem własnego gateway'a ZigBee na #linux. Dokopałem się do dokumentacji IEEE 802.15.4 i chciałbym postawić taki stack, żeby komunikacje obsługiwać po socketach z wykorzystaniem interfejsu. Nie wiem jak dokładnie się za to zabrać. Czy wrzucenie takiego stack'u wymaga kompilacji kernela, czy jest to możliwe w jakiś inny łatwy sposób?
#programowanie #zigbee #embedded #cpp #raspberrypi
  • 1
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach