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

 
 
> MS-DOS перенаправление консоли на COM1, MS-DOS перенаправление консоли на COM1
Kolia
сообщение Jul 28 2011, 07:39
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 188
Регистрация: 28-09-06
Из: Minsk
Пользователь №: 20 762



Добрый день, возникла необходимость удаленной отладки приложения (перенаправить данные с консоли и клавиатуры) на COM1.

Использую команды mode и ctty

Вот запись из autoexec.bat

Конфигурация COM1
C:\DOS\MODE.COM COM1: 9600,n,8,1

Задаю скорость 115200 (т.к. mode не поддерживает такую скорость)
C:\PROGRAMS\B115200.COM

Перенаправляю консоль
CTTY COM1

Запускаю программу
C:\PROGRAMS\KIA.EXE


Все проходит нормально, но если на другом конце COM-порта не подключена консоль появляется надпись

Ошибка записи при записи: устройство COM1
А(Стоп), R(Повтор), I(Пропустить), F(Сброс)?

и загрузка останавливается.

Если консоль подключена загрузка проходит нормально.

Как обойти проверку на запись в устройство? Может быть нульмодемный кабель нужно особенный, или еще что-то прописать в MODE?


В нете нашел код для перенаправления консоли из программы

Код
if (freopen ("COM1", "w+", stdout) == NULL)
printf ("Error redirecting stdout.\r\n");
else
printf ("STDOUT redirected to COM1.\r\n");
if (freopen ("COM1", "r", stdin) == NULL)
printf ("Error redirecting stdin\r\n");
else
printf ("STDIN redirected to COM1.\r\n");



Но он по чему-то не работает, хотя по идее должен...


Помогите плиз а то не удобно кажды раз консоль врубать (удаленного компа) перед загрузкой.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 5)
andrew_b
сообщение Jul 28 2011, 08:28
Сообщение #2


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

Группа: Свой
Сообщений: 1 975
Регистрация: 30-12-04
Из: Воронеж
Пользователь №: 1 757



C:\PROGRAMS\KIA.EXE > COM1
Go to the top of the page
 
+Quote Post
zltigo
сообщение Jul 28 2011, 08:31
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



QUOTE (Kolia @ Jul 28 2011, 09:39) *
Как обойти проверку на запись в устройство? Может быть нульмодемный кабель нужно особенный, или еще что-то прописать в MODE?

Просто вместо полного кабеля перемычки DTR-DSR и RTS-CTS на стороне PC.



QUOTE (andrew_b @ Jul 28 2011, 10:28) *
C:\PROGRAMS\KIA.EXE > COM1

А почитать в чем была проблема у Автора?




--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
Kolia
сообщение Jul 28 2011, 10:20
Сообщение #4


Частый гость
**

Группа: Свой
Сообщений: 188
Регистрация: 28-09-06
Из: Minsk
Пользователь №: 20 762



Цитата(zltigo @ Jul 28 2011, 11:31) *
Просто вместо полного кабеля перемычки DTR-DSR и RTS-CTS на стороне PC.


Спасибо, так работает).....тротупил сам с кабелем..только на полном нульмодемном проверял..
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Jul 28 2011, 12:30
Сообщение #5


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



QUOTE (Kolia @ Jul 28 2011, 10:39) *
Задаю скорость 115200 (т.к. mode не поддерживает такую скорость)
C:\PROGRAMS\B115200.COM
Это новость. Точно?
QUOTE (Kolia @ Jul 28 2011, 10:39) *
Все проходит нормально, но если на другом конце COM-порта не подключена консоль появляется надпись
Отключите handshaking, он же flow control в той же команде mode

Это, кончено не ДОС (за неимением), а консоль XP, но тем не менее:
CODE
D:\>mode com2 baud=115200 data=8 parity=n stop=1 dtr=off rts=off

Status for device COM2:
-----------------------
    Baud:            115200
    Parity:          None
    Data Bits:       8
    Stop Bits:       1
    Timeout:         ON
    XON/XOFF:        OFF
    CTS handshaking: OFF
    DSR handshaking: OFF
    DSR sensitivity: OFF
    DTR circuit:     OFF
    RTS circuit:     OFF


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
Kolia
сообщение Jul 28 2011, 14:02
Сообщение #6


Частый гость
**

Группа: Свой
Сообщений: 188
Регистрация: 28-09-06
Из: Minsk
Пользователь №: 20 762



Цитата(Сергей Борщ @ Jul 28 2011, 15:30) *
Это новость. Точно?



Да, работаю под MS-DOS 6.22, выше 19200 не задается

Цитата(Сергей Борщ @ Jul 28 2011, 15:30) *
Отключите handshaking, он же flow control в той же команде mode


К сожалению в данной программе таких настроек нет, если только добавить в прогу настройки скорости.... но будет ли воспринимать такие настройки команда CTTY com1?

Вот тут нарыл подробное описание: MODE

Вот так вот работает со стандартным нульнодемным кабелем disco.gif

C:\DOS\MODE.COM COM1: 9600,n,8,1,p

Всем спасибо за помощь cheers.gif


Go to the top of the page
 
+Quote Post

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

 


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


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