Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Система";
Текущий архив: 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
1-16238
Alexey_
2004-01-20 16:34
2004.02.06
Свой .mpq файл


9-16023
Michael Makushev
2003-07-10 12:40
2004.02.06
Основание (опять же часть 1)


14-16655
GRAND
2004-01-13 16:49
2004.02.06
Инструкция по охране труда


3-16183
Крутыш
2004-01-13 21:06
2004.02.06
Проблемы после выполнения запроса.


14-16742
Piter
2004-01-15 19:00
2004.02.06
Насчет NtQuerySystemInformation и йCreateToolhelp32Snapshot





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский