Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.02.06;
Скачать: 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 вся ветка

Текущий архив: 2004.02.06;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.036 c
1-16340
NightAngel
2004-01-24 20:58
2004.02.06
Упорядочивание массива.


7-16762
extrasens
2003-11-18 07:59
2004.02.06
Резидентные программы в DOS-e


6-16583
Terrible
2003-12-04 14:11
2004.02.06
HTTP - докачка файлов


8-16518
Дмитрий
2003-10-04 00:48
2004.02.06
Проигрывание файлов формата Ogg Vorbis (*.ogg)


3-16100
Sirgfine
2004-01-10 23:20
2004.02.06
BDE