Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Чтение из сом порта [D7, XP]


F@T@L_Err0r ©   (2007-11-01 10:28:00) 

Добрый день.У меня такой вопрос: Пытаюсь читать из сом порта

ReadFile(hPort,Buf,SizeOf(Buf),s,nil);

и прога виснет намертво.Может я чего не учел?Порт открываю нормально CreateFile(..). Заполняю TDCB.


Германн   (2007-11-02 00:48:00) [1]


> F@T@L_Err0r ©   (01.11.07 10:55) [9]
>
> > В третьих с таким подходом как у тебя правильнее и проще
> взять какой-нибудь готовый компонент компорта.
>
> А например какие компоненты можно использовать???
>

Более полумесяца Сергей М. тебе уже предлагал очень хороший вариант в посте [15] вот в этой твоей же ветке:
http://delphimaster.ru/cgi-bin/forum.pl?id=1192513567&n=18


Anatoly Podgoretsky   (2007-11-01 12:36:00) [2]


> С таким подходом правильнее и проще взять метлу.

Предложение правильное, но запождалое.


Anatoly Podgoretsky   (2007-11-01 12:35:00) [3]


> ss.ReadIntervalTimeout := 5000;
> ss.ReadTotalTimeoutMultiplier := 100000;
> SetCommTimeouts(hPort,ss);

может ты не дождался, поскольку у тебя таймут равен 5000*10000*6 миллисекунд, ты ждал 3 000 000 секунд?


vegarulez   (2007-11-01 11:09:00) [4]

http://sourceforge.net/projects/comport/
http://valery-us4leh.narod.ru/main.html


F@T@L_Err0r   (2007-11-01 10:55:00) [5]

> В третьих с таким подходом как у тебя правильнее и проще взять какой-нибудь готовый компонент компорта.

А например какие компоненты можно использовать???


Reindeer Moss Eater   (2007-11-01 10:55:00) [6]

например любые


Маша Шрайбер   (2007-11-01 10:52:00) [7]

С таким подходом правильнее и проще взять метлу.


Reindeer Moss Eater   (2007-11-01 10:50:00) [8]

Во первых там полей гораздо больше.
Во вторых правильно установленные таймауты это еще далеко не все.
В третьих с таким подходом как у тебя правильнее и проще взять какой-нибудь готовый компонент компорта.


F@T@L_Err0r   (2007-11-01 10:47:00) [9]

var    ss:TCommTimeouts;
begin
ss.ReadIntervalTimeout := 5000;
ss.ReadTotalTimeoutMultiplier := 100000;
SetCommTimeouts(hPort,ss);

Все равно ждет бесконечно...


Reindeer Moss Eater   (2007-11-01 10:37:00) [10]

Как ни странно SetCommTimeouts


Reindeer Moss Eater   (2007-11-01 10:35:00) [11]

Прога не виснет, она выполнила синхронный вызов и ждет данных


F@T@L_Err0r   (2007-11-01 10:35:00) [12]

А как установить таймаут для ожидания?


F@T@L_Err0r   (2007-11-01 10:32:00) [13]

var hPort:Thandle;
Buf:array[0..5] of integer;
s:cardinal;


Darvin   (2007-11-01 10:31:00) [14]

код в студию.
>ReadFile(hPort,Buf,SizeOf(Buf),s,nil);
что такое Buf, s, hPort?


Наверх

Титульная страница Поиск, карта сайта Написать письмо