|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
23.06.2013, 01:50 | #1 |
Пользователь
Регистрация: 14.01.2013
Сообщений: 33
|
Виртуальный СОМ порт, нюансы
Здравствуйте. Столкнулся с проблемой такого характера. Есть программа на Delphi, которая 10 раз в секунду отправляет данные через СОМ порт. Для работы с СОМ портом используется компонент Borland Delphi 7 - BComPort. В качестве аппаратного СОМ порта - виртуальный USB-COM порт. В штатном режиме все ОК. Напрягает один нюанс, если в момент выполнения программы выдернуть USB - СОМ шнур из гнезда, программа зависает, и что самое неприятное закрыть ее нормально не получается. Жмем на крестик, в ответ сообщение Windows типа: "Программа не отвечает и будет закрыта" жмем ОК, окно программы закрывается и выскакивает несчетное множество окошек типа: "обнаружена ошибка в программе... В общем прекратить это безобразие можно только через диспетчер задач. Моя задача сделать так, чтобы после выдергивания USB шнура программу, можно было спокойно закрыть, а еще лучше чтобы программа после таких ошибок продолжала функционировать. Перехват ошибок try - except не залезая в код компонента BComPort не помогает. Поначалу думал, что без вариантов так должно быть и ничего сделать нельзя. Но проанализировал несколько похожих программ и понял, что все решаемо - выдергиваем шнурок - выскакивает окошко: "Ошибка порта", жмем ОК и программа предлагает выбрать СОМ порт, то есть полностью работоспособна... Если есть мысли помогите пожалуйста.
|
23.06.2013, 11:32 | #2 |
Старожил
Регистрация: 29.09.2009
Сообщений: 9,713
|
1- можно тупо открыть порт-послать 1 раз-закрыть порт, на этапе следующего открытия порта отслеживать его доступность
2- отслеживать перед каждой посылкой наличие виртуального порта через SetupAPI
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation |
23.06.2013, 11:45 | #3 |
Пользователь
Регистрация: 14.01.2013
Сообщений: 33
|
1. Пробовал - по скорости не проходит, не успевает порт закрыться и открыться между передачами.
2. Вот это буду пробовать, спасибо (пробовал проверку методами компонента, безрезультатно). |
23.06.2013, 11:54 | #4 | |
Старожил
Регистрация: 29.09.2009
Сообщений: 9,713
|
Цитата:
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation |
|
23.06.2013, 12:22 | #5 |
Пользователь
Регистрация: 14.01.2013
Сообщений: 33
|
Настройки порта редактировать нет возможности, все должно быть по дефолту. Я думаю дело не количестве пакетов и скорости, просто как мне кажется процесс закрытия-открытия порта (особенно у китайских переходников) сам по себе небыстрый. У меня поначалу так было: перед каждой отправкой байта порт открывался, после отправки закрывался, данные передавались с ошибками. Долго не мог разобраться в чем дело, потом наобум убрал открытие-закрытие порта и все заработало.
Последний раз редактировалось Vlad9999; 23.06.2013 в 12:35. |
23.06.2013, 13:06 | #6 | |||
Старожил
Регистрация: 29.09.2009
Сообщений: 9,713
|
Цитата:
Цитата:
Цитата:
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation |
|||
23.06.2013, 13:28 | #7 | |||
Пользователь
Регистрация: 14.01.2013
Сообщений: 33
|
Цитата:
Цитата:
Цитата:
|
|||
23.06.2013, 13:56 | #8 | ||
Старожил
Регистрация: 29.09.2009
Сообщений: 9,713
|
Цитата:
Цитата:
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation |
||
23.06.2013, 15:42 | #9 |
Пользователь
Регистрация: 14.01.2013
Сообщений: 33
|
Если не сложно подскажите, какие таймауты мне подправить. У меня все по умолчанию (WriteTotalConstant=1000, WriteTotalMultipilier=100)
Последний раз редактировалось Vlad9999; 23.06.2013 в 16:11. |
23.06.2013, 17:40 | #10 |
Старожил
Регистрация: 29.09.2009
Сообщений: 9,713
|
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Lazarus, СОМ порт | gusluk | Lazarus, Free Pascal, CodeTyphon | 10 | 22.07.2011 04:12 |
сом порт , БД | olegd | Помощь студентам | 7 | 05.07.2010 10:34 |
СОМ порт | JUDAS | Win Api | 0 | 10.01.2009 21:27 |
Виртуальный порт | Dj_smart | Win Api | 0 | 13.07.2008 19:19 |
СОМ порт | SERG1980 | Общие вопросы Delphi | 3 | 17.05.2007 08:06 |