Телесистемы
 Разработка, производство и продажа радиоэлектронной аппаратуры
На главную   | Карта сайта | Пишите нам | В избранное
Требуется программист в Зеленограде
- обработка данных с датчиков; ColdFire; 40 тыс.
e-mail:jobsmp@pochta.ru

Телесистемы | Электроника | Конференция «Микроконтроллеры и их применение»

полу ОФФ. как в Buildere C++ организовать обработку такого события.

Отправлено UraGun 19 января 2007 г. 15:38


конфигурирую порт RS232, нормально снюхиваю контроллер с компом, идёт нормальный обмен пакетами вплоть до 38400, с вычислением контрольной суммы. Организовано всё через открытие файла на ком порте и записи/чтении в него. Всё броде бы здорово, но при физическом разрыве линии или при физической смене порта (или при неправильном конфигурировании, т.е. неправильном выборе номера СОМ порта), компьютер пишет фразу в порт и ждёт ответа от контроллера, которого там нету. Ну и собственно висит в этом состоянии. Есть где-то методика обратоки такого состояния для Буилдера. Простите мои чайничьи замашки, продвигаюсь практически вслепую, т.к. ньюансы функционирования Винды для меня тёмный лес. сделано всё приблизительно как вот тут описано :

#include

. . .

DCB *dcb;
COMMTIMEOUTS ct;
HANDLE port;

. . .

dcb=(DCB*)HeapAlloc(GetProcessHeap(),HEAP_ZERO_MEMORY,sizeof(DCB));
dcb->DCBlength=sizeof(DCB);
BuildCommDCB("baud=38400 parity=N data=8 stop=1",dcb);
dcb->fNull=false;

ct.ReadIntervalTimeout=10;
ct.ReadTotalTimeoutMultiplier=ct.ReadTotalTimeoutConstant=0;
ct.WriteTotalTimeoutMultiplier=ct.WriteTotalTimeoutConstant=0;

port=CreateFile("COM2",GENERIC_READ|GENERIC_WRITE,0,NULL,OPEN_EXISTING,0,NULL);

SetCommState(port,dcb);
SetCommTimeouts(port,&ct);
HeapFree(GetProcessHeap(),0,dcb);

. . .

CloseHandle(port);


Составить ответ | Вернуться на конференцию

Ответы


Отправка ответа
Имя*: 
Пароль: 
E-mail: 
Тема*:

Сообщение:

Ссылка на URL: 
URL изображения: 

если вы незарегистрированный на форуме пользователь, то
для успешного добавления сообщения заполните поле, как указано ниже:
введите число 567:

Перейти к списку ответов | Конференция | Раздел "Электроника" | Главная страница | Карта сайта

Rambler's Top100 Рейтинг@Mail.ru
 
Web telesys.ru