COM под XP

Do you have a question? Post it now! No Registration Necessary

Translate This Thread From Russian to

Threaded View
Hi All,

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


COM под XP
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


COM под XP
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 без проверки факта
приема. С портами было проще...

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


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

Rudolf
--
We've slightly trimmed the long signature. Click to see the full one.
Re: COM под XP
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.



Re: COM под XP
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


COM под XP
Привет 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.
... Здесь были зверски убиты время и молодость

Site Timeline