Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2011.01.09;
Скачать: CL | DM;

Вниз

ComPort ы   Найти похожие ветки 

 
Askorbinka ©   (2010-10-10 22:15) [0]

Здравствуйте, почтенные. Помогите начинающему решить проблему обработки ошибок в компоненте ComPort Library (CPort). Суть проблемы такова: Есть устройство, которое занимет определенные порты СОМ30 и СОМ31. При подключении этого устройства создается на некоторое время еще и СОМ29. Так-же присутствует физический СОМ1, к которому естественно ничего не подключено. Т.к. устройство ищется с помощью поочередного окрытия портов и посылки нужной команды, то во время открытия СОМ1 вылазит ошибка. Вот тут и кроется бяка. Эту ошибку надо обработать так, чтобы программа не останавливалась, а тихо мирно перешла к проверке следующих портов на предмет наличия устройства, чтобы найти его и навсегда запечатлеть в памяти программы. Ошибка - ошибка открытия COMPort"a, да и все остальные (там в хелпе есть список). Устройство - мегафон-модем. API - не предлагать. Заранее - огромное человеческое спасибо.


 
Юрий Зотов ©   (2010-10-10 23:51) [1]

> устройство ищется с помощью поочередного окрытия портов

Возможно, try-except?

for i := ... to ... do
 try
   ... // Попытка открытия порта
 except
   // on E: ... do // Ошибка открытия порта из хелпа
   begin
     ... // Обработка ошибки
   end
 end;  


 
Askorbinka ©   (2010-10-11 21:30) [2]

Неполучается так обрабатывать. :(. Данный код верен если присутствует порт, а вот если его нет, и пытаешься его открыть - вылазит ошибка.

В свете дальнейшего ковыряния компоненты была обнаружена функция EnumComPorts, которая чудным образом выдергивает список СОМ портов, задействованных в системе, ну и засовывает их в ComboBox (так в примере было), поэтому перебирать порты уже смысла не имеет. НО!!! При попытке записать чего-то в СОМ1 (который естественно первый в списке) вылазит ошибка. Которую хотелось бы обработать, чтобы оная не вылазила на экран, а тихо мирно в недрах программы похоронилась, доказав основному коду, что не имеет смысла дальше работать с этим портом...


 
Германн ©   (2010-10-11 21:53) [3]


> Данный код верен если

Данный код верен всегда.


 
Плохиш ©   (2010-10-11 22:09) [4]


> Askorbinka ©   (11.10.10 21:30) [2]
>
> Неполучается так обрабатывать. :(. Данный код верен если
> присутствует порт, а вот если его нет, и пытаешься его открыть
> - вылазит ошибка.

Запусти программу не из делфи.


 
Askorbinka ©   (2010-10-13 20:18) [5]

2 Германн. Вот как-то так:

for i := 1 to 56 do
try
  COMPORT1.PORT:="COM"+IntToStr(i); // Попытка открытия порта
  COMPORT1.OPEN; // Тут вылазит ошибка, если COM порта физически нету.
except
  // on E: ... do // Ошибка открытия порта из хелпа
  begin
    ... // А до этого места вообще не доходит.
  end
end;

2 Плохиш. Если пускать программу не из под делфи, то код ошибки разный. Если из под делфи - то wincode:2, а если просто ехешником - то wincode:6


 
Palladin ©   (2010-10-13 20:58) [6]


> Если пускать программу не из под делфи, то код ошибки разный.
>  Если из под делфи - то wincode:2, а если просто ехешником
> - то wincode:6

и что из них что?


 
Плохиш ©   (2010-10-13 23:17) [7]


> Askorbinka ©   (13.10.10 20:18) [5]

{$i-}


 
Askorbinka ©   (2010-10-18 23:18) [8]

Всем спасибо за участие. Разобрался. Работаю через реестр. Нахожу ViD&PiD устройства, а там уже порт прописан. 100% попадание. Еще раз всем спасибо.


 
Германн ©   (2010-10-19 01:41) [9]


> Askorbinka ©   (18.10.10 23:18) [8]
>
> Всем спасибо за участие. Разобрался. Работаю через реестр.
>  Нахожу ViD&PiD устройства, а там уже порт прописан. 100%
> попадание. Еще раз всем спасибо.
>

Лучше бы и не отвечал. А то совсем запутал ситуацию.
:)



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

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

Наверх




Память: 0.49 MB
Время: 0.008 c
2-1287088978
Archvile
2010-10-15 00:42
2011.01.09
Непонятки с выводом записи


6-1233229932
Kirill
2009-01-29 14:52
2011.01.09
ICS. Отправка письма


3-1250949947
Yurikon
2009-08-22 18:05
2011.01.09
Изменение записи из другого приложения


11-1227534671
Валера
2008-11-24 16:51
2011.01.09
Не могу найти подходящий компонент


4-1243692161
Nikfel
2009-05-30 18:02
2011.01.09
Замена ресурсов из файлов?