реклама на сайте
подробности

 
 
> Управление СОМ портом под Windows, Как управлять RTS/DTR со стороны
igorle
сообщение Nov 19 2012, 18:43
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 338
Регистрация: 14-07-12
Пользователь №: 72 753



У нас на фирме (программистской) разрабатываются программы для коробок с СОМ портом. Реально используются только линии Tx Rx. Я спаял небольшое устройство, сквозь которое пропускаю COM порт и питание. Линия DTR (Data Ready) или RTS (Redy to Send) используется для управленикем реле. Таким образом можно включать/выключать питание коробки.

На Linux все работает замечательно - можно или посылать сигнал с minicom, или использовать простой скрипт из шелла. Все разработчики пользуются и довольны. А с тестерами беда - они работают под Windows, а я не знаю как там управлять этими сигналами. По умолчанию получается так - включил программу терминла (putty, например) - устройство включилось. Вышел из программы - выключилось. Это не то что мне надо. Мне надо независимо от терминальной программы управлять. Или в крайнем случае из программы, но без того чтобы закрывать/запускать ее.

Кто-нибудь знает как помочь делу?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Genadi Zawidowsk...
сообщение Nov 20 2012, 00:56
Сообщение #2


Профессионал
*****

Группа: Участник
Сообщений: 1 620
Регистрация: 22-06-07
Из: Санкт-Петербург, Россия
Пользователь №: 28 634



Не знаю... какой-нибудь режим loopback есть? В классическом 16550 он был, win32 api делался под его возможности (похоже)...
Снизить скорость до минимума.
Тут есть ещё интереснее проблема, проявляющаяся вот в таком сценарии:

0) по линии RXD идёт какая-то передача.
1) открываю порт (он настраивается на скорость и формат, которые в панели управления по умолчанию стоят).
2) порт срабатывает по frame error.
3) пытаюсь установить режим с игнорированием ошибок fAbortOnError=TRUE (или любое другое обращение, скорость поменять) и обламываюсь с ошибкой.
4) если считать что за ошибка и успеть перепрограммировать на нужный формат/скорость, frame error тоже имеет право появиться при непрерывной передаче.

Кто знает, как обойтись в этом сценарии без "успеть" в четвёртом пункте?
upd: посмотрел - режима loopback нет. Вот успел всё забыть... Можете очищать буфер приёма. Но, в Вашем случае, Ксения, может не помочь, если purge делается не на самом низком уровне - хотя это всёможно посмотреть, заглянув в исходники в DDK (там serial device есть целиком).

Сообщение отредактировал Genadi Zawidowski - Nov 20 2012, 08:29
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 30th July 2025 - 12:18
Рейтинг@Mail.ru


Страница сгенерированна за 0.01374 секунд с 7
ELECTRONIX ©2004-2016