Natknalem sie na problem podczas transmisji szeregowej Generalnie wszystko bylob ok ... ale ... Program ma dwa watki w pierwszym obsluguje okno dialogowe oraz nadawanie, w drugim jest realizowany odbior w ciaglej petli Wysylanie po bajcie dziala ok, odbierac tez odbiera dobrze problem w tym ze jak probuje rownoczesnie nadawac i obierac to pojawia sie blad programu. Zaznacam ze w obu watkach korzystam z tego samego uchwytu do urzadzenia. Czy w ogole takie rownoczesne nadawanie i odbior jest dozwolone?? Czy mozna by temu zaradzic stosujac np. sekcje krytyczne?? Jak bezpiecznie moge zasygnalizowac z watka ktory odbiera dane ze np odebrano oczekiwany ciag? poki co robie to za pomoca flag kiedys probowalem uzywac PostMessage ale mi sie program po kilku wywolaniach wywalal. Co wiecej program jest typu MFC application, dialog based pod .net watek tworze za pomoca afx_BeginThread.
Szczrze powiedziawszy zrobilem sobie synchronizacje nadawania i odbioru i to zalatwilo mi problem. Dodalem tez timeouty aby funkcja ReadFile nie czekala mi w nieskonczonosc na odebranie znakow.
Aczkolwiek ciekawa jest mogliwosc wykonywani atych operacji roznoczesnie Moj program wygladal +/- tak
UINT f_watka(...) { while(isActive) { Readfile(....) .... porownie co przyszlo + wpis do tabl .... } }
Zas wysylanie bylo realizowane po nascisniencu przycisku
ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here.
All logos and trade names are the property of their respective owners.