Hi All,
Вот, выкопалась проблема на пустом месте. Как аккуратно работать с COM-портом в XP? Имеется в виду конкретная проблема - проверка приема байта? Как это сделать через DCB (?)
Hi All,
Вот, выкопалась проблема на пустом месте. Как аккуратно работать с COM-портом в XP? Имеется в виду конкретная проблема - проверка приема байта? Как это сделать через DCB (?)
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
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 без проверки факта приема. С портами было проще...
Спасибо за подсказку. Видимо, таймаутов хватит.
Ia ispolzuiu COM port v otdel'nom threade. Togda on sovershenno nezavisim ot ostal'noi programmi. Dazhe esli "podvis" na ReadFile.
Rudolf
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
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.
Привет 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. ... Здесь были зверски убиты время и молодость
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.