Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Win Api
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.11.2009, 19:42   #1
LSergM
 
Регистрация: 22.10.2009
Сообщений: 9
Восклицание Если программа не отвечает, как определить в чем причина.

Уважаемые спецы. Не в первый раз подскажите по такому вопросу.
Написал программу на Delphi 7, winXP для обмена данными с микроконтроллером через USB to Com преобразователь ftdi 232bm. Используя для этого функции работы с Com портом-если это важно.
Вопрос:
Запускаю на исполнение и через некоторое время, каждый раз разное. Программа зависает (не отвечает). Чтобы вывести из этого состояния приходится выполнять programm reset из среды Delphi. Каким образом можно определить в каком месте программы происходит ошибка, чтобы ее исправить. Текст программы прилагается в архиве, если это поможет.
Посмотрите, помогите!!!
Вложения
Тип файла: rar Projects.rar (21.5 Кб, 13 просмотров)
LSergM вне форума Ответить с цитированием
Старый 23.11.2009, 22:02   #2
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

гложат меня смутные сомнения, что зависает у вас в потоке чтения данных

зы: проверить к сожалению негде... как вариант- для теста не создавайте поток, а попробуйте читать по таймеру, если с ним все будет ок, значит дело в этом и рыть уже там надо будет...
к слову, а где у вас проверка на обрыв связи?
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 24.11.2009, 17:46   #3
LSergM
 
Регистрация: 22.10.2009
Сообщений: 9
По умолчанию

Нашел одну "ошибку".
Если USB преобразователь был подключен, а затем его отключить (физически отсоеденить от ПК). А за тем попытаться записать в порт данные то программа зависнет.
Вопрос:
Как при кажной отправке пакета данных проверять порт подключен или нет, при этом затрачивать мало времени на проверку? В голову приходит только каждый раз делать CreateFile, точно не знаю, но эта функция должна долго отрабатываться("как то это не солидно")?
Может есть вариант ПО лучше?
Подскажите как правильно это сделать!!!
LSergM вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как определить когда нажата кнопка мыши, если она нажата в совсем другой программе? 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