8051 i C++ Builder

Jul 23, 2003 2 Replies

Witam!



Zrobi³em sobie sieæ na RS485 w którym jest kilka '51 jako slave i jedna 51 jako master. Master odpytuje pokolei wszystkie slave-y i zbiera dane. Ramka transmisji to 16 bajtów z czego dwa poczatkowe to identyfikacja nowego zapytania tak wiec slave moze byæ do³aczony do sieci w dowolnej chwili i zsynchronizowaæ siê z reszta. Teraz przyszed³ czas na co¶ ala wizualizacja. Za³o¿y³em ¿e PC bêdzie widziany w sieci jako kolejny slave. Master wy¶le dane, poczeka na odpowied¼ a je¶li jej nie bêdzie to zacznie nadawaæ do nastepnego slava. Wcze¶niej do obs³ugi rs-a w c++ builderze wykorzystywa³em component TCommPort Harolda Howe. Teraz mam jednak problem bo ten modu³ nie zg³asza zdarzen (events) i nie mogê sobie poradziæ w miarê szybko z synchronizowaniem siê w ramki i odpowiedzi± do mastera. Czy znacie jaki¶ ogólnodostêpny component który zg³asza³by zdarzenie po ka¿dym otrzymanym bajcie? Jakie¶ sugestie jak wybrnaæ z sytuacji?



Pozdrawiam Ed



U¿ytkownik "Ed" snipped-for-privacy@poczta.onet.pl> napisa³ w wiadomo¶ci news:bflujl$2dk$ snipped-for-privacy@news.onet.pl... [ciap all] rozwi±zania widzê trzy

- inny komponent

- dopisaæ obs³ugê odebrania bitu rêcznie (o ile masz ¼ród³a)

- jak siê upierasz z jakiego¶ powodu przy tym, który masz, to mo¿e jaki¶ Timer do sprawdzania co tam przysz³o po RSie.

Andrzej Kamieniecki

On Wed, 23 Jul 2003 15:06:08 +0300, "Ed" snipped-for-privacy@poczta.onet.pl> wrote: [.....]

Ja nie znam. Być może znajdziesz coś na codeguru. Kiedyś widziałem tam kilka klas do seriala. Ale tamtejszy stuff jest przeważnie pod MFC/VC++.

Proponuję WinAPI. Interesują Cię cztery funkcje: CreateFile(), ReadFile(), WriteFile() i CloseHandle(). Do tego trochę lektury na temat blokujących i nieblokujących operacji I/O (non-overlapped i overlapped I/O w terminologi MS). Przy pomocy tych funkcji osiągniesz to czego potrzebujesz. Dokumentację i przykłady kodu znajdziesz w MSDN-ie.

Regards, /J.D.

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required