Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2005.01.30;
Скачать: [xml.tar.bz2];

Вниз

Контакты COM-порта...   Найти похожие ветки 

 
maxistent ©   (2004-12-07 13:33) [0]

Дарова, уважаемые! Как "послать" в COM-порт на опред. контакт "+"?
("-" на ножке порта, "+" - только на двух из 15 контактов, остальные="-").
___________
\o o o + o/
\+ o o o/
 -------
У меня к COM1 подключен светодиод. В результате светодиод загорается на время, потом гаснет.
Я делаю так:

function LStr(const Source:Ansistring;Count:Integer):Ansistring;
begin
Result:=Copy(Source,1,Count);
end;

function OpenComm(Mode:AnsiString):THandle;
var
DCB : TDCB;
TOut: TCommTimeouts;
I:Integer;
Bfr:AnsiString;
begin
Bfr:=Mode;
UniqueString(Bfr);
I:=Pos(":",Bfr)-1;
if I<=0 then I:=4;
Result := CreateFile(PChar(LStr(Bfr,I)),GENERIC_READ or GENERIC_WRITE,
       0,nil,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,0);

GetCommState( Result, DCB) ;
BuildCommDCB(PChar(Bfr),DCB);
DCB.EvtChar := #13;
SetCommState( Result, DCB) ;
//
TOut.ReadIntervalTimeout         := MAXDWORD;
TOut.ReadTotalTimeoutMultiplier  := 0;
TOut.ReadTotalTimeoutConstant    := 0;
TOut.WriteTotalTimeoutMultiplier := 0;
TOut.WriteTotalTimeoutConstant   := 0;
SetCommTimeOuts( Result, TOut);
  SetCommMask(Result,EV_RLSD OR EV_RXFLAG);
  PurgeComm(Result,PURGE_TXCLEAR);
  PurgeComm(Result,PURGE_RXCLEAR);
end;

function CloseComm(Handle:THandle):boolean;
begin
CloseHandle(Handle);
result:=true;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
handle:integer;
begin
Handle:=OpenComm("COM1:BAUD=19200 PARITY=N DATA=8 STOP=1");
if Handle<>INVALID_HANDLE_VALUE then
begin
escapecommfunction(Handle,SETDTR);
sleep(5000);
escapecommfunction(Handle,CLRDTR);
closecomm(Handle);
end
else
Application.MessageBox("Ошибка","",0);
end;


И ещё: как сделать, чтобы прога могла "ЗНАТЬ", на какой контакт COM-порта какое напряжение подаётся (<=5В.)?


 
Cosinus ©   (2004-12-07 14:39) [1]

1) Выставлять уровни на всевозможные сигнальные линии (а-ля DTR/DTS/... и тд)
2) Кончать заниматься фигней и лопатить светоИдиодные устройства на LPT.


 
dr Tr0jan   (2004-12-07 15:27) [2]

COM же вроде используется для PICов.
Для справки: PIC - Programmable Interrupt Controller


 
GanibalLector ©   (2004-12-08 01:23) [3]

Что-то я не понял,что тебе надо.Ну да ладно...Во первых свой светодиод ты ОБЯЗАН одной ногой повесить на 5 вывод порта(это минус),а потом уже зажигай\гаси DTR-ом...и резистор не забудь.


 
GuAV ©   (2004-12-08 01:29) [4]

GanibalLector ©   (08.12.04 1:23) [3]
и резистор не забудь.


Хе я закорачивал COM порт. И ничего, цел остался, даже диод мигал как надо :)
GanibalLector ©   (08.12.04 1:23) [3]
зажигай\гаси DTR-ом...

или RTS


 
GanibalLector ©   (2004-12-08 01:34) [5]


> или RTS

Нет!Именно DTR-ом!!!


> Хе я закорачивал COM порт. И ничего, цел остался, даже
> диод мигал как надо :)

Ну,зря ты так...у меня на работе один комп валяется...доигрались.


 
GuAV ©   (2004-12-08 01:44) [6]

GanibalLector ©   (08.12.04 1:34) [5]
Нет!Именно DTR-ом!!!


WinLIRC работает с RTS как с выходом (выдаёт + для питания) и DCD как с входом. До запуска WinLIRC на RTS -. Поэтому IMHO с RTS мона работать.


 
GanibalLector ©   (2004-12-08 01:46) [7]


> WinLIRC работает с RTS как с выходом (выдаёт + для
> питания) и DCD как с входом.

Согласен,но !!! посмотри [0]...там есть что-то типа :
escapecommfunction(Handle,SETDTR);


 
GanibalLector ©   (2004-12-08 01:48) [8]

2 GuAV ©    [6]
И еще...я в основном работаю с переферией...так вот,ОБЫЧНО управляют ДТР-ом,а "питание" создают РТС-ом.
З.Ы. Такое примерно в 90% случаях.


 
GuAV ©   (2004-12-08 01:48) [9]

Или уже по правильному через TXD


 
GanibalLector ©   (2004-12-08 01:51) [10]


> Или уже по правильному через TXD

А это тут причем?Не понял???Или ты собрался передавать FF на минимальной скорости???Оригинально!
З.Ы.Надо попробовать ;)


 
GuAV ©   (2004-12-08 01:52) [11]

Хотя... TXD передаёт биты, а не держит уровень...


 
GuAV ©   (2004-12-08 01:53) [12]

GanibalLector ©   (08.12.04 1:51) [10]

Не дал даже успеть исправить ошбку .. :)


 
GuAV ©   (2004-12-08 01:54) [13]

GanibalLector ©   (08.12.04 1:51) [10]
З.Ы.Надо попробовать ;)


А что так даже яркость меняется: 01, 11, 13, ... FF :-)


 
GanibalLector ©   (2004-12-08 02:04) [14]

2 GuAV ©    [13]

> А что так даже яркость меняется: 01, 11, 13, ... FF :-)

Да,уж...настоящая светомузыка ;)
Автору ветки должно понравиЦа!


 
maxistent ©   (2004-12-08 04:13) [15]

Не, братва! так не пойдёт! Мне же надо НА ОПРЕДЕЛЁННЫЙ КОНТАКТ ВЫВЕСТИ "+"!!! потом отключить... это возможно? может примерчик найдётся?..


 
maxistent ©   (2004-12-08 04:14) [16]

Нет, вы не поняли! Мне же надо НА ОПРЕДЕЛЁННЫЙ КОНТАКТ ВЫВЕСТИ "+"!!! потом отключить... это возможно? может примерчик найдётся?..


 
maxistent ©   (2004-12-08 04:14) [17]

Нет, вы не поняли! Мне же надо НА ОПРЕДЕЛЁННЫЕ КОНТАКТЫ ВЫВЕСТИ "+"!!! потом отключить... это возможно? может примерчик найдётся?..


 
maxistent ©   (2004-12-08 04:16) [18]

э-э-э.. пардон...


 
Германн ©   (2004-12-08 04:24) [19]

2 maxistent ©
"НА ОПРЕДЕЛЁННЫЕ КОНТАКТЫ" вывести не сможешь. Сможешь только на вывод DTR или вывод RTS.


 
maxistent ©   (2004-12-08 10:50) [20]

а тогда остальные накой !...! нужны?!


 
maxistent ©   (2004-12-08 11:32) [21]

что, никто не знает, как это сделать? или это действительно невозможно? Вообще, мне нужно отправить туда (в COM) строку с текстом... как это сделать?


 
GanibalLector ©   (2004-12-08 11:41) [22]

Сначаkf ты спрашиваешь одно,потом другое...все как-то не связано...хрен поймешь,что тебе надо.
И еще...внимательно читай [19]



Страницы: 1 вся ветка

Форум: "WinAPI";
Текущий архив: 2005.01.30;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.5 MB
Время: 0.048 c
3-1103603272
bers
2004-12-21 07:27
2005.01.30
Доброго времени суток, мастера! Тормоза при повторном выполнении


1-1105818577
lipskiy
2005-01-15 22:49
2005.01.30
Почему TWebBrowser не реагирует на флаги?


3-1103831482
Vitaliy
2004-12-23 22:51
2005.01.30
Автоширина столбцов DBGrid


14-1105421027
Layner
2005-01-11 08:23
2005.01.30
Здравствуйте! Вот проблемка есть, есть 2 exe файла


3-1103878442
Xattab
2004-12-24 11:54
2005.01.30
База данных про вычисление квартала, тек месяца





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский