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

 
 
> 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
Ответов
Сергей Борщ
сообщение Jul 28 2011, 12:30
Сообщение #2


Гуру
******

Группа: Модераторы
Сообщений: 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
Сообщение #3


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

Группа: Свой
Сообщений: 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 Текстовая версия Сейчас: 31st July 2025 - 16:57
Рейтинг@Mail.ru


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