-
Data: 2025-05-06 20:15:30
Temat: Re: Re:Protoków komunikacyjny do urządzenia pomiarowego
Od: heby <h...@p...onet.pl> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]On 06/05/2025 17:43, jp wrote:
> Jeśli graficzne to może Xclient a na PC Xserver, ale nie wiem
> jakie minimum by musiało być zaimplementować na uC.
Nienie ;)
Wyobraź sobie, że masz urządzenie modbus. Coś prostego.
Takie urządzenia (modbusowe) są skrajnie tępe. Nie da da się, poza
wykryciem "ma jakieś rejestry" niczego więcej osiągnąć, bez osobnej
dokumentacji.
Ja moim protokołem, który używałem 20 lat temu, mogłem każdy rejestr opisać:
1) R/W, R, W
2) Nazwa
3) Opis
4) Typ (string, int, char, float, enum ...)
5) Zakres wartości
6) Preferowany tryb sterowania (pole, suwak, gałka, wskaźnik...)
Te dane były w urządzeniu, można było o każdą odpytać.
... oraz nie tylko wyenumerować wszystkie rejestry, ale również
wszystkie urzadzenia na magistrali RS485 dynamicznie, podczas
komunikacji z pozostałymi urządzeniami, równolegle.
Proto nie był rozwinięciem modbusa, tylko czymś zupełnie innym.
W efekcie czego na PC istniał sobie program w Javie. Program ten po
odpaleniu i podaniu COMa do komunikacji szukał urządzeń. Jak znalazł
nowe, to enumerował wszystkie rejestry i samoczynnie tworzył panel
kontrolny tego urządzenia. To było dynamiczne, mogłeś wpinać i wypinać
urządzenia z RS485 i każde zgłaszało się samo i dostawałeś generyczne
GUI typu suwagi, gałki itd. Program w Javie nie wiedział co to jest, ale
wiedział jak to obsługiwać, z opisu rejestrów pobieranego z urządzenia.
Dodatkowo eksponowało to wszystkie rejestry do Javascriptu, na którym
pisany był główny algorytm sterujący wieloma takimi urządzeniami.
Czyli: spodziewam się, że tworze jakieś urządzenie "w arduino" w którym
mam do kontroli ze dwa int-y i jaką flagę statusową. Zamiast wymyślać
nowy protokół dla takiego urządzenia, to chciałbym mieć jakiś
generyczny, w którym proces enumeracji, detekcji urządzeń jest w pełni
automatyczny, eksponując mi to wszystko na PC w postaci API Pythona,
oraz, jako bonus, mogę sobie stworzyć z tego np. Widget w Qt z
kontrolkami sterującymi tym urządzeniem.
To powoduje, że odpada 90% pracy związanej od mojego programu w Pythone,
do mojego firmware w kontrolerze. Moje urządzenie ma dwa inty o fazie
"foo" i "bar", wiec w API Pythona dostaje mapę "foo" do ktorej mogę
przypisać inta i on wyląduje w kodzie firmware.
Przykłądem takiego czegoś jest SCPI, ale to jest projektowane przez
programistę Cobola i średnio się nadaje do małych projektów ;)
Jest też VISA, ale nic o tym nie wiem.
Następne wpisy z tego wątku
Najnowsze wątki z tej grupy
- Thunderbird i dysk...
- opornosc falowa
- Bateria 9V 6F22, alkaliczna v cynkowa, samorozładowanie, bateria wysokiej trwałości do miernika
- Tani zakup z ali?
- w czasach LED komary mają ciężko
- walizka z kodami
- Rejestrator temperatur - termopara, siec
- Router LTE z możliwością zmian MTU
- Fajny film widziałem...
- Jaka ładowarka sieciowa do Iphona?
- Taśma izolacyjna do prac elektrycznych
- Recenzja 3.1A ;) w 6 gniazdach...
- Re: Recenzja 3.1A ;) w 6 gniazdach...
- Re: Recenzja 3.1A ;) w 6 gniazdach...
- Re: Recenzja 3.1A ;) w 6 gniazdach...
Najnowsze wątki
- 2025-07-23 Gdańsk => Programista Delphi <=
- 2025-07-23 Gdańsk => Programista Mainframe (z/OS, Assembler) <=
- 2025-07-23 Warszawa => Starszy inżynier DevOps (AWS) <=
- 2025-07-23 Gdańsk => Mainframe (z/OS, Assembler) Developer <=
- 2025-07-23 Kraków => Senior Fullstack Engineer (Low-Code Platform) <=
- 2025-07-23 Wrocław => Senior Key Account Manager IT <=
- 2025-07-23 Trójmiasto => Head of Social Media <=
- 2025-07-23 Rzeszów => Spedytor Międzynarodowy <=
- 2025-07-23 Lublin => ERP Implementation Consultant (AP Module) <=
- 2025-07-23 Środa Wielkopolska => SAP FI/CO Internal Consultant <=
- 2025-07-23 Warszawa => Inżynier oprogramowania .Net <=
- 2025-07-23 Kraków => Kotlin Developer <=
- 2025-07-23 Żerniki => Dyspozytor Międzynarodowy <=
- 2025-07-23 Warszawa => Java Developer <=
- 2025-07-23 Wrocław => Konsultant wdrożeniowy (systemy controlingowe) <=