roboforum.ru

Технический форум по робототехнике.

Компонент BComPort CTRL+Break

В разделе рассматриваются вопросы информационного обмена в робототехнике.
Аппаратный уровень, протоколы.

Компонент BComPort CTRL+Break

Сообщение vipkursk » 20 май 2010, 14:57

Возможно ли с помощью компоненты BComPort для Delphi послать в порт сигнал прерывания, налогичный по сочетанию CTRL+Break в стандартном гипертерминале.
Т.е. вот в такое состояние - Последовательный канал передачи данных можно перевести в специальное состояние, называемое разрывом связи. При этом передача данных прекращается, а выходная линия переводится в состояние "0". Приемник, обнаружив, что за время необходимое для передачи стартового бита, битов данных, бита четности и стоповых битов, приемная линия ни разу не перешла в состояние "1", так же фиксирует у себя состояние разрыва.
vipkursk
 
Сообщения: 3
Зарегистрирован: 20 май 2010, 14:50

Re: Компонент BComPort CTRL+Break

Сообщение Romikgy » 20 май 2010, 15:20

по умолчанию такого ф-ционала в нем нет ... но можно добавить самому :) ведь исходники есть :)
die Wahrheit ist irgendwo da draußen
Аватара пользователя
Romikgy
 
Сообщения: 750
Зарегистрирован: 15 ноя 2009, 13:37
Откуда: Porto Franco "Odessa"

Re: Компонент BComPort CTRL+Break

Сообщение vipkursk » 21 май 2010, 09:36

А вот не могли бы вы помочь с этой проблемой.... У самого опыта и знаний мало по этой теме.
vipkursk
 
Сообщения: 3
Зарегистрирован: 20 май 2010, 14:50

Re: Компонент BComPort CTRL+Break

Сообщение Romikgy » 21 май 2010, 11:45

попробуй заменить этот файл
появиться новое свойство SetBreak( да / нет )
Вложения
BCPort.rar
(6.47 КиБ) Скачиваний: 0
die Wahrheit ist irgendwo da draußen
Аватара пользователя
Romikgy
 
Сообщения: 750
Зарегистрирован: 15 ноя 2009, 13:37
Откуда: Porto Franco "Odessa"

Re: Компонент BComPort CTRL+Break

Сообщение vipkursk » 24 май 2010, 12:34

Cпасибо огромное!!!! Вроде то что нужно. Сижу разбираюсь.
Вы добавили эту функцию
procedure TBComPort.SetBreak(State: Boolean);
var
Act: DWORD;
begin
if State then Act := 8 else Act := 9;
if not EscapeCommFunction(FHandle, Act) then
raise EComPort.Create(CErrBreak);
end;

Не могли бы пояснить что такое 8 и 9

ЗЫ. Сам бы ни в жисть не догадался... Благодарю еще раз )
vipkursk
 
Сообщения: 3
Зарегистрирован: 20 май 2010, 14:50

Re: Компонент BComPort CTRL+Break

Сообщение Romikgy » 24 май 2010, 13:05

die Wahrheit ist irgendwo da draußen
Аватара пользователя
Romikgy
 
Сообщения: 750
Зарегистрирован: 15 ноя 2009, 13:37
Откуда: Porto Franco "Odessa"


Вернуться в Коммуникации

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1