Вниз
Скачать: CL | DM;

COM-порт   Найти похожие ветки 

← →
M-A-B ©   (2002-02-04 15:09) [0]

Доброе время суток господа программисты!

Работаю с СОМ-портом. Никаких проблем у меня не было с приёмом и перердачей данных
через СОМ порт до того пока данные с прибора на компьютер передавались через
интерфейс RS232, но вот недавно у меня на работе сделали преобразователь с RS485 на
RS232, т.е. данные с прибора на преобазователь передаются через RS485, а вот уже с
преобразователя на комп чере RS232. И вот теперь для того, чтобы у меня всё
полуичлось необходимо перед отправкой данных в порт установить флаг DTR в 0, а перед
получением установить флаг DTR в 1. Пытаюсь использовать функцию
EscapeCommFunction(hCOM, CLRDTR) и соответственно EscapeCommFunction(hCOM, SETDTR),
но ничего не получается!!!

--------- Вообщем вот старый код (работающий на RS232) ----------
// Установка параметров DCB, TimeOuts, и т.п. Инициализация СОМ-порта.
...
// Запись в порт
WriteFile(hCOM, Buffer, 10, NumberOfBytesWritten, nil);

// Ожидание ответа
for kkk:=1 to 10 do begin
ClearCommError(hCOM, Error, @Stat);
if (Stat.cbInQue>0) or (Error>0) then break;
sleep(10)
end; // for kkk

// Чтение из порта
if (Stat.cbInQue>0) and (Error=0) then
ReadFile(hCOM,...)
------------------------------ Конец ----------------------------

--------- А вот новый код для моей задачи (не работает) ---------
// Установка параметров DCB, TimeOuts, и т.п. Инициализация СОМ-порта.
...
DCB.Flags:=(DCB.Flags and not $30) or (DTR_CONTROL_SHAKE shl 4);
...

// Установка флага DCB.fDTRControl в 0
EscapeCommFunction(hCOM, CLRDTR);

// Запись в порт
WriteFile(hCOM, Buffer, 10, NumberOfBytesWritten, nil);

// Ожидание ответа
for kkk:=1 to 10 do begin
ClearCommError(hCOM, Error, @Stat);
if (Stat.cbInQue>0) or (Error>0) then break;
sleep(10)
end; // for kkk

// Установка флага DCB.fDTRControl в 1
EscapeCommFunction(hCOM, SETDTR);

// Чтение из порта
if (Stat.cbInQue>0) and (Error=0) then
ReadFile(hCOM,...)
--------------------------------------------- Конец
---------------------------------------------


Что делать не знаю - тупик! :-(
Подскажите, помогите, очень надо!
Заранее спасибо за помощь.



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

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.009 c
14-91077
MystiX
2002-02-12 21:15
2002.03.28
Help!!!


7-91090
Pat
2001-12-26 12:56
2002.03.28
WinExec( C: con con ,sw_restore)


3-90782
zombi
2002-03-04 04:48
2002.03.28
поиск подходящих величин в момент ввода?


4-91111
Quest
2002-01-28 08:46
2002.03.28
Как определить частоту процессора?


1-90958
Alibaba
2002-03-14 17:47
2002.03.28
Delphi-Excel




   Наверх