Korzystam z artykułu Jerzego Szczesiula (przy okazji wielkie dzięki za ten tekst!) o programowaniu RS w WinAPI. I wszystko jest super, tylko że nie wiem, czy podejście, które zastosowałem jest optymalne.
Procedura odpowiedzialna za transmisję działa tak:
- Otwórz port w trybie zapisu.
- Prześlij ramkę z zapytaniem (adres urządzenia, itd.) na port.
- Zamknij port.
- Otwórz port w trybie odczytu (odbierania).
- Odbierz ramkę z portu (z odpowiednim Timeoutem).
- Zamknij port.
Całość chodzi w trybie synchronicznym. Ponieważ docelowo ma to być RS485, więc nie wiem czy ma sens tryb asynchroniczny. Dlaczego? Bo i tak po wysłaniu ramki trzeba czekać na odpowiedź od konkretnego urządzenia. Dopiero kiedy ono odpowie (lub będzie timeout), można wysłać coś do następnego.
Pytania mam takie:
1. Czy procedura jest wg Was sensowna? A jeśli nie, to jak to zrobić lepiej?
2. Czy jest sens stosować podejście asynchroniczne? Pamiętając jak działa RS485 z wieloma urządzeniami.
Pozdrawiam!
[ Dodano: 09-04-2006, 21:44 ]
Jak widać popularność Modbusa wśród elektroników ciągle rośnie

W zasadzie już rozwiązałem wszystkie problemy tylko nurtuje mnie pytanie: Czy za każdym razem trzeba dwa razy otwierać port dla pobrania jednej danej z urządzenia? Nie da się tego jakoś inaczej zrobić?