Проблемы с включением DTR в моей программе последовательной связи - PullRequest
0 голосов
/ 13 мая 2019

Я делаю программу, которая связывается с последовательным портом (в основном RS232, но в этом случае я использую USB-устройство).Прямо сейчас у меня проблема при включении DTR.

private void CheckBox_DTR_CheckedChanged(object sender, EventArgs e)
{
    if(COMport != null)
    {
        if (CheckBox_DTR.Checked)
        {
          COMport.DtrEnable = true;
        }
        else
        {
          COMport.DtrEnable = false;
        }

    }

}

В этой части моего кода я включаю DTR, если установлен флажок.Когда я проверял напряжение на контакте, все было в порядке, потому что напряжение увеличивается, когда я его включаю.Но есть проблема: когда я включаю DTR с помощью других терминалов, устройство выдает некоторую информацию, но когда я делаю это с моей программой, она не отправляет эту информацию.

Моя программа

Другой последовательный терминал

Как вы можете видеть, у другого терминала есть некоторая дополнительная информация, которую устройство отправляет при включении DTR.Поэтому я не совсем уверен, что мне делать, чтобы получить эту информацию с устройства (нужен ли мне какой-то дополнительный код или что-то в этом роде) ...

1 Ответ

0 голосов
/ 13 мая 2019

Как правило, при использовании DTR вам необходимо включить аппаратное подтверждение связи.Я бы попробовал установить COMport.Handshake = Handshake.XOnXOff;.

В соответствии с MSDN здесь :

Готовность терминала данных (DTR) обычно включена во время программного подтверждения XON / XOFF иЗапрос на отправку / очистка для отправки (RTS / CTS) аппаратного установления связи и модемной связи.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...