Форум: "Система";
Текущий архив: 2004.02.06;
Скачать: [xml.tar.bz2];
ВнизОбработка шибок при работе с СОМ-портом Найти похожие ветки
← →
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 вся ветка
Форум: "Система";
Текущий архив: 2004.02.06;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.033 c