Вниз
Скачать: CL | DM;

Обработка шибок при работе с СОМ-портом   Найти похожие ветки 

← →
Cosinus   (2003-11-18 15:34) [0]

Добрый день уважаемые мастера. Я использую компонент работы с СОМ-портом СPortLib.
В нижеприведенном коде я записываю в порт данные и ожидаю ответа, но дело в том,
что даже, если девайс не отвечает, то прога все равно вываливается на
ComDataPacket1.OnPacket, и, что естественно (для меня :), так как никаких проверок в этой
процедуре я не ставлю) вызывает ошибку Access Violation. Огромная просьба подсказать как
правильно сделать обработчик ошибок (девайс не отвечает, порт занят), а еще лучше послать
меня по адресу :), где есть подробная информация на эту тему, так как хотелось бы разобраться с этой темой досконально.

Function ReadDevice():boolean;
var
str,str1:string;
i:integer;
Events,tmp: TComEvents;
Event: TEvent;
begin
with Unlocker do
begin
//Вот здесь следует вставить некоторую строку, запрещающую открытие порта, если он занят
ComPort1.Open;
Event := TEvent.Create(nil, True, False, "");
tmp:=ComPort1.Events;
ComPort1.Events:=[];
ComPort1.DiscardNull:=False;
SetLength(str, 1);
for i:=0 to $ff do
begin
if i in AddrTab then
begin
str[1]:=chr(i);
ComPort1.Tag:=0;
WrComData(str, true);
repeat
Events := [evRxFlag];
ComPort1.WaitForEvent(Events, Event.Handle, 5000);
if (evRxFlag in Events) then break;
until (Events = []);
ComPort1.ReadStr(str1,ComPort1.InputCount);
//А здесь строку, запрещающую переход на ComDataPacket1.OnPacket
ComDataPacket1.OnPacket(ComPort1,str1)
end;
end;
ComPort1.Events:=Tmp;
ComPort1.Close;
end;
end;

Заранее благодарен,Владислав.


← →
Pat ©   (2003-11-19 10:35) [1]

>если девайс не отвечает, то прога все равно вываливается на
ComDataPacket1.OnPacket
Я бы не стал пользоваться такими компонентами

>как правильно сделать обработчик ошибок
В принципе так:
try
<что-то делаем>
except
<Обработка исключительных ситуаций. За подробностями в хелп>
end;


← →
GEN ©   (2003-11-19 17:04) [2]

Попробуйте_nrCommLibV6.28_(Torry.ru)_почти без недостатков



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.017 c
3-16128
Karlson
2004-01-15 15:37
2004.02.06
значения Null


14-16630
lipskiy
2004-01-14 00:29
2004.02.06
Как правильно пишется?


1-16482
X-file_
2004-01-22 07:03
2004.02.06
надстройки Word


1-16365
zioza
2004-01-21 11:18
2004.02.06
Нестандартные кнопки, круглые и так далее, полупрозрачные


3-16164
Wall
2004-01-14 12:00
2004.02.06
операция со строками




   Наверх