URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 96416
[ Назад ]

Исходное сообщение
"Виртуалбокс и имитация замкнутых контактов на COM1"

Отправлено virtucom , 25-Дек-15 12:03 
Виртуалбокс и имитация замкнутых контактов на COM1
--------------------------------------------------

Есть программа, считывающая с COM-порта какие контакты замкнуты и, в зависимости от этого, делающая разные действия. Крутится она в виртуалке на под VirtualBox-ом.
Как виртуальному порту подсунуть такую информацию - например, сымитировать замкнутость пинов 3,5 и 8?


Содержание

Сообщения в этом обсуждении
"Виртуалбокс и имитация замкнутых контактов на COM1"
Отправлено eRIC , 25-Дек-15 12:30 
> Как виртуальному порту подсунуть такую информацию - например, сымитировать замкнутость
> пинов 3,5 и 8?

VirtualBox не занимается замыканием пинов COM порта, он предоставляет/перебрасывает COM порт ХОСТА к COM порту ГОСТЯ как оборудование или в виде pipe.
Замыкание нужных пинов/считывание/передача данных на стороне вашего софта или оборудования.



"Виртуалбокс и имитация замкнутых контактов на COM1"
Отправлено virtucom , 25-Дек-15 12:58 
> VirtualBox не занимается замыканием пинов COM порта, он предоставляет/перебрасывает COM
> порт ХОСТА к COM порту ГОСТЯ как оборудование или в виде
> pipe.
> Замыкание нужных пинов/считывание/передача данных на стороне вашего софта или оборудования.

Об этом и речь. То ли прогу писать и вешать её на пайп, который отдан виртуалке как файл com-порта, то ли как-то проще можно...
Пока не решил.


"Виртуалбокс и имитация замкнутых контактов на COM1"
Отправлено Andrey , 30-Дек-15 13:39 
> Виртуалбокс и имитация замкнутых контактов на COM1
> --------------------------------------------------
> Есть программа, считывающая с COM-порта какие контакты замкнуты и, в зависимости от
> этого, делающая разные действия. Крутится она в виртуалке на под VirtualBox-ом.
> Как виртуальному порту подсунуть такую информацию - например, сымитировать замкнутость
> пинов 3,5 и 8?

Ну наверное стоит определиться, что замыканием указанных вами пинов, вы абсолютно ничего не добъетесь. Ни на DB9, ни на DB25.
Чтобы понять как оперировать COM портом необходимо осознать что COM порт (стандарт RS232) оперирует не замкнутостью контактов, а уровнями на том или ином сигнальном проводе.


"Виртуалбокс и имитация замкнутых контактов на COM1"
Отправлено Nicknnn , 30-Дек-15 16:57 

>> Как виртуальному порту подсунуть такую информацию - например, сымитировать замкнутость
>> пинов 3,5 и 8?
> Ну наверное стоит определиться, что замыканием указанных вами пинов, вы абсолютно ничего
> не добъетесь. Ни на DB9, ни на DB25.
> Чтобы понять как оперировать COM портом необходимо осознать что COM порт (стандарт
> RS232) оперирует не замкнутостью контактов, а уровнями на том или ином
> сигнальном проводе.

Замыкание всех вместе не имеет смысла, но замыкать 3 и 8 или 8 и 5 вполне.


"Виртуалбокс и имитация замкнутых контактов на COM1"
Отправлено Andrey , 30-Дек-15 22:20 
>>> Как виртуальному порту подсунуть такую информацию - например, сымитировать замкнутость
>>> пинов 3,5 и 8?
>> Ну наверное стоит определиться, что замыканием указанных вами пинов, вы абсолютно ничего
>> не добъетесь. Ни на DB9, ни на DB25.
>> Чтобы понять как оперировать COM портом необходимо осознать что COM порт (стандарт
>> RS232) оперирует не замкнутостью контактов, а уровнями на том или ином
>> сигнальном проводе.
> Замыкание всех вместе не имеет смысла, но замыкать 3 и 8 или
> 8 и 5 вполне.

На DB9 пин 5 это Signal Ground. Т.е. предлагаете перевести пин 8 (CTS) в неопределенное состояние?
Уровни логических "0" и "1" для RS232 это от +5 до +15В и от -5 до -15В. Подача 0В (Signal Ground) - перевод в неопределенное состояние.
Я понимаю замкнуть 7 и 8 (RTS и CTS). Это бывает необходимо если с другой стороны не полный RS232. Или замкнуть 2 и 3 - поймать эхо для тестов.  Но коротить TransmitData (пин 3) на ClearToSend (пин 8) - IMHO с логической точки зрения необъяснимо, но про вкус фломастеров спорить не буду.


"Виртуалбокс и имитация замкнутых контактов на COM1"
Отправлено Nicknnn , 30-Дек-15 17:05 
> Виртуалбокс и имитация замкнутых контактов на COM1
> --------------------------------------------------
> Есть программа, считывающая с COM-порта какие контакты замкнуты и, в зависимости от
> этого, делающая разные действия. Крутится она в виртуалке на под VirtualBox-ом.
> Как виртуальному порту подсунуть такую информацию - например, сымитировать замкнутость
> пинов 3,5 и 8?

Стоит почитать мануал по qemu, так как в vbox всё будет аналогично, но настроить возможно придётся через конфиг или его утилиты. Скорее всего это будет вывод на fifo или pipe к которому нужно будет подключится своим скриптом :)