Chciałbym ulepszyć połączenie z stm32 ale bez zmiany sprzętu.
To urządzenie jest połączone przez RS-232/RS-485 z media konwerterami RS-232/RS-485 na Ethernet/fiber do routera.
Media converter działa jako tcp client I jest połączony z moim serwerem.
Czasem media converter I router to jedno urządzenie na LTE ale zasada działania jest taka sama.
Obecnie protokół jest taki:
pytanie #(parametry oddzielone przecinkami):(crc8)\n
odpowiedź $(parametry oddzielone przecinkami):(crc8)\n
Główne problemy to:
- Brak retransmittion, marnowanie czasu na ponowne pytanie w przypadku uszkodzenia którejkolwiek ramki.
- Nie da się sprawdzić w prosty sposób czy jeden z przewodów np. rx nie jest uszkodzony. Urządzenie po prostu nie dostanie odpowiedzi.
- Niski baudrate i dużo danych do przesłania w jedynej chwili.
Pomysł:
- Rezygnacja z wysłania surowych ramek przez internet.
- Dodanie jakiegoś protokołu, który będzie zajmował obsługę linii między urządzeniem a seryjnym portem w media converter.
- Wysyłanie danych do serwera już normalnie przez cokolwiek(soap, rest, websocket). Na media converter mogę uruchomić własny program, który by to robił.
- Monitoring seryjnego połączenia i wysyłanie ostrzeżeń na messenger jak coś będzie nie tak, całkowita blokada a nie, że działa w jedną stronę a w drugą już nie.
Co możecie zaproponować w kwestii protokołu?
Ten obecny pseudo protokół mógłby zostać gdyby pod nim była jakaś warstwa co pilnuje wyżej opisanych spraw.