|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
23.11.2009, 19:42 | #1 |
Регистрация: 22.10.2009
Сообщений: 9
|
Если программа не отвечает, как определить в чем причина.
Уважаемые спецы. Не в первый раз подскажите по такому вопросу.
Написал программу на Delphi 7, winXP для обмена данными с микроконтроллером через USB to Com преобразователь ftdi 232bm. Используя для этого функции работы с Com портом-если это важно. Вопрос: Запускаю на исполнение и через некоторое время, каждый раз разное. Программа зависает (не отвечает). Чтобы вывести из этого состояния приходится выполнять programm reset из среды Delphi. Каким образом можно определить в каком месте программы происходит ошибка, чтобы ее исправить. Текст программы прилагается в архиве, если это поможет. Посмотрите, помогите!!! |
23.11.2009, 22:02 | #2 |
Старожил
Регистрация: 29.09.2009
Сообщений: 9,713
|
гложат меня смутные сомнения, что зависает у вас в потоке чтения данных
зы: проверить к сожалению негде... как вариант- для теста не создавайте поток, а попробуйте читать по таймеру, если с ним все будет ок, значит дело в этом и рыть уже там надо будет... к слову, а где у вас проверка на обрыв связи?
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation |
24.11.2009, 17:46 | #3 |
Регистрация: 22.10.2009
Сообщений: 9
|
Нашел одну "ошибку".
Если USB преобразователь был подключен, а затем его отключить (физически отсоеденить от ПК). А за тем попытаться записать в порт данные то программа зависнет. Вопрос: Как при кажной отправке пакета данных проверять порт подключен или нет, при этом затрачивать мало времени на проверку? В голову приходит только каждый раз делать CreateFile, точно не знаю, но эта функция должна долго отрабатываться("как то это не солидно")? Может есть вариант ПО лучше? Подскажите как правильно это сделать!!! |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Как определить когда нажата кнопка мыши, если она нажата в совсем другой программе? | Iceman | Общие вопросы Delphi | 2 | 19.10.2009 19:03 |
Программа открыается если есть другая программа. | bookkc | Паскаль, Turbo Pascal, PascalABC.NET | 12 | 14.10.2009 20:09 |
ListView: если включен Checkboxes, как определить отмечание стоки? | Gerzs | Общие вопросы Delphi | 1 | 07.10.2009 09:18 |
Как используя Delphi найти процесс, который отвечает за определенное действие | Minvay | Общие вопросы Delphi | 10 | 19.03.2009 12:41 |
Помогите определить, в чем ошибка! | Kirill90 | Паскаль, Turbo Pascal, PascalABC.NET | 10 | 07.07.2008 08:52 |