Port COM w windowsie i ustawianie jego prędkoś

Mała uwaga: ten kod to kod po paru eksperymentach z róznymi ustawieniami w nadziei że trafę na właściwą. A co do tej flagi to na 100% było to copy&paste z jednej ze stron msdn. Acz nie pomnę z której.

To jedna z przeróbek, z length też nie działało.

Czytam i spędziłem już wiele godzin na próbach i eksperymentach.

Nie. Separuje w ten sposób resztę kodu od możliwości pomyłki. Ukrywam również klasę zależną od Win od reszty przenośnego kodu.

To też przeróbka, w niczym nie zmienia sytuacji.

O ile pamiętam, to psrawdzałem, ale zobaczę ponownie jak tylko odrwę go w łapska.

Owszem, ale mam pewne podejrzenia, że cygwin robi to lepiej ode mnie i też mu nie działa na tym jednym.

Reply to
Sebastian Bialy
Loading thread data ...

Ale zauwaz ze sprzet nie musi takiej dopuszczac.

typowy pecetowy tej nie dopuszcza.

J.

Reply to
J.F.

Czy po wsadzeniu karty z portami COM do tego felernego komputera problem pozostaje?

Wątek ciekawy, ale pomysły się kończą, może bios update?

Reply to
Darek

z ta liczba to mial byc tylko przyklad; poza tym - wiesz dobrze o co mi chodzilo;

typowy pecet z rs232, czy rs232 z usb umozliwia ustawienie wiekszej liczby roznych predkosci niz tylko te 10-20 "na krzyz" z rozwijanej listy; /wartosc dzielnika nie jest liczba 4-bitowa;

Reply to
Q

jakbys przeczytal to co napisales, ze przeczytales, to bys z ta flaga nie eksperymentowal :)

...i przy okazji sie ograniczasz :)

a tak powaznie:

  1. jaki to moze miec wplywa na pomylke? wg mnie - znikomy;
  2. jaki to ma miec wplyw na przenosnosc? wg mnie - znikomy; nigdy jeszcze nie spotkalem sie, aby na roznych systemach (win,linux,qnx) te stale mialy rozne wartosci; tzn. to sa liczby rowne ustawionemu bps;

ps. mam nadzieje, ze znajdziesz przyczyne tego "niedzialania", ale jak sprzet dziala, ht sie laczy przez driver portu, to niestety - wypada, ze blad jest w Twoim kodzie :( /sprobuj odpalic lacznosc innymi programami typu ht; jak beda one dzialac, to blad masz nie na 99% ale na 100% :(

Reply to
Q

z ciekawosci - pod czym dzialasz pod winda? visual c++ 2005 express ?

Reply to
Q

Użytkownik "Q" snipped-for-privacy@spam.pl napisał w wiadomości news:fbse04$ekl$ snipped-for-privacy@nemesis.news.tpi.pl...

No właśnie - tym tropem bym szedł. Nie każde "zajęcie" portu powoduje niemożność jego otwarcia. Port jest teoretycznie wolny - otwierasz go, ale nie udaje się ustawić parametrów albo pobrać statusu.

Odnośnie flag przy otwieraniu portu - ja zawsze używam: fileopen(handle, GENERIC_READ or GENERIC_WRITE, 0, Nil, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);

i zawsze działa.

Reply to
PrzemekD

PrzemekD pisze:

Możesz jeszcze dawać 0 zamiast FILE_ATTRIBUTE_NORMAL - ta flaga ma zastosowanie do plików (na dysku np).

Dariusz Żołna

Reply to
Dariusz Zolna

nie jestem pewien, ale jesli zawolasz CreateFile() z flaga ShareMode ustawiona na 0 (a tak SB otwiera COM'a) i ktos inny juz ma otwarty dany COM (nawet w trybie shared read/write), to raczej nie otworzysz portu (CreateFile() zwroci blad); /ale moze sie myle!

ps. pod np. QNX'em to nawet nie da sie sprawdzic czy cos otworzylo danego rs'a (np. "/dev/ser1"); kazdy proces moze se zrobic open() a potem read() / write() ile razy chce - totalna kaszana :(

Reply to
Q

Dyskusja juz dluga. Dodam jeszcze ze swojej strony, iz do konfiguracji portu, jak tylko sie da najlepiej uzywac standardowego okna dialogowego windows (poprzed odpowiednie wywolanie..). Ma to te wade, iz jest okno nie zawsze mile widziane w naszym programie. Z drugiej strony rozwiazanie takie dziala niezaleznie od sterownika portu szeregowego. Z tym ostatnim najwiecej problemow, kiedy jest to port COM z USB. Nie wiem jak to Microsoft opracowal, ale to dziwne, ze ich okno dialogowe dziala zawsze poprawnie, a wg MSDN juz roznie, zaleznie od producenta. Moze to tez wina producentow. Nie wiem. Wynika z tego tylko tyle, ze istnieja pola DCB nieudokumentowane lub komentarze ktorych nie sa do konca precyzyjne.

pozdrawiam Janusz

P.S. Trzymajcie kciuki, bo w poniedzialek bronie mgr z fizyki :)

Reply to
Janusz U.

Masz jakis kawalek dokumentacji do tego? Bo prawde powiedziawszy pierwszy raz slysze o takim problemie.

Wlasnie wypilem za powodzenie circa 5l piwa!

Reply to
Jerry1111

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.