COM под XP

Hi All,

Вот, выкопалась проблема на пустом месте. Как аккуратно работать с COM-портом в XP? Имеется в виду конкретная проблема - проверка приема байта? Как это сделать через DCB (?)

Reply to
Ilia Tarasov
Loading thread data ...

Hi Ilia, hope you are having a nice day!

09 Апр 04, Ilia Tarasov wrote to All:

IT> Вот, выкопалась проблема на пустом месте. Как аккуратно работать с IT> COM-портом в XP? Имеется в виду конкретная проблема - проверка приема IT> байта? Как это сделать через DCB (?)

Hе совсем понимаю причем здесь dcb. Что именно интересует? _Факт_ приема байта уартом? Тогда для этого есть WaitCommEvent и SetCommMask. Если интересует сам байт, тогда можно просто обойтись ReadFile'ом с правильно сконфигурированными таймаутами в COMMTIMEOUTS. Если можно конкретезируй задачу.

WBR, AVB

Reply to
Alexey V Bugrov

Sat Apr 10 2004 11:01, Alexey V Bugrov wrote to Ilia Tarasov:

IT>> Вот, выкопалась проблема на пустом месте. Как аккуратно работать с IT>> COM-портом в XP? Имеется в виду конкретная проблема - проверка приема IT>> байта? Как это сделать через DCB (?)

AVB> Hе совсем понимаю причем здесь dcb. Что именно интересует? _Факт_ приема AVB> байта уартом? Тогда для этого есть WaitCommEvent и SetCommMask. Если AVB> интересует сам байт, тогда можно просто обойтись ReadFile'ом с правильно AVB> сконфигурированными таймаутами в COMMTIMEOUTS. Если можно конкретезируй AVB> задачу.

Возникла проблема подвисания программы при отключении прибора, причем вытащенный модуль с примерами использовал только ReadFile без проверки факта приема. С портами было проще...

Спасибо за подсказку. Видимо, таймаутов хватит.

Reply to
Ilia Tarasov

Ia ispolzuiu COM port v otdel'nom threade. Togda on sovershenno nezavisim ot ostal'noi programmi. Dazhe esli "podvis" na ReadFile.

Rudolf

Reply to
Rudolf Ladyzhenskii

Hi Alexander, hope you are having a nice day!

11 Апр 04, Alexander Derazhne wrote to Ilia Tarasov:

IT>> Возникла проблема подвисания программы при отключении прибора, IT>> причем вытащенный модуль с примерами использовал только ReadFile IT>> без проверки факта приема. С портами было проще... AD> Под Win32 я ничего подобного не писал (да и вообще не писал :-)) AD> ), но коллега, занимавшийся штрих-сканнером использовал что-то AD> вроде WaitForMultiplayObject. Знаю только с его слов - он в курилке AD> жаловался, дескать, сложно получается, намного сложней чем в осдвашном AD> прототипе.

Для вышеприведенного случая никакие WaitForMultipleObjects и даже WaitForSingleObjects не нужны. Есть SetCommTimeouts которая однозначно решает данную проблему.

WBR, AVB

Reply to
Alexey V Bugrov

Hello, Ilia! You wrote to Alexey V Bugrov on Sun, 11 Apr 2004 01:45:39 +0400:

IT>>> Вот, выкопалась проблема на пустом месте. Как аккуратно работать с IT>>> COM-портом в XP? Имеется в виду конкретная проблема - проверка IT>>> приема байта? Как это сделать через DCB (?)

AVB>> Hе совсем понимаю причем здесь dcb. Что именно интересует? _Факт_ AVB>> приема байта уартом? Тогда для этого есть WaitCommEvent и AVB>> SetCommMask. Если интересует сам байт, тогда можно просто обойтись AVB>> ReadFile'ом с правильно сконфигурированными таймаутами в AVB>> COMMTIMEOUTS. Если можно конкретезируй задачу.

IT> Возникла проблема подвисания программы при отключении прибора, IT> причем вытащенный модуль с примерами использовал только ReadFile без IT> проверки факта приема. С портами было проще...

Под Win32 я ничего подобного не писал (да и вообще не писал :-)) ), но коллега, занимавшийся штрих-сканнером использовал что-то вроде WaitForMultiplayObject. Знаю только с его слов - он в курилке жаловался, дескать, сложно получается, намного сложней чем в осдвашном прототипе.

With best regards, Alexander Derazhne.

Reply to
Alexander Derazhne

Привет Ilia!

Пят Апp 09 2004 23:39, Ilia Tarasov -> All:

IT> Вот, выкопалась проблема на пустом месте. Как аккуратно работать с IT> COM-портом в XP? Так-же, как и в пpедыдущих веpсиях.

IT> Имеется в виду конкретная проблема - проверка приема IT> байта? Как это сделать через DCB (?) Если под "пpовеpкой пpиема байта" подpазумевается опpеделение наличия данных в входной очеpеди, то см. ClearCommError, паpаметp COMSTAT.

Hа этом все, пока. Anton Abrosimov. ... Здесь были зверски убиты время и молодость

Reply to
Anton Abrosimov

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.