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

 
 
> 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



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

 


RSS Текстовая версия Сейчас: 19th August 2025 - 06:07
Рейтинг@Mail.ru


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