Потому что Инструмент должен получить доступ к безопасным ресурсам, он запускается на далеком сервере через удаленный рабочий стол. Мы используем функцию перенаправления последовательного порта в удаленном рабочем столе, чтобы инструмент передавал общение на COM -порту локального компьютера, что позволяет ему, в свою очередь, общаться с машиной для перепрограммирования. < /P>
Вскоре: машина для перепрограммирования подключается через кабель Com-USB на моем локальном компьютере. Драйвер на моем локальном компьютере позволяет использовать USB в качестве эмулированного COM -порта. Этот эмулированный COM -порт пересылается через RDP на сервер, работающий на инструменте. Затем инструмент читает и записывает на порте COM. Полем Код для соответствующей части выглядит примерно так: < /p>
Код: Выделить всё
serialPort = new SerialPort();
serialPort.PortName = "COM1";
serialPort.BaudRate = 115200;
serialPort.Parity = Parity.None;
serialPort.DataBits = 8;
serialPort.StopBits = StopBits.One;
serialPort.Handshake = Handshake.None;
serialPort.NewLine = "\r";
serialPort.Open();
serialPort.ReadTimeout = 2000;
do
{
try
{
sMessage = serialPort.ReadLine();
AddLog(sMessage);
}
catch (TimeoutException) {}
} while (!sMessage.Contains("Starting Reprogramming Process"));
< /code>
Это, кажется, прекрасно работает на Old Windows Server 2012. Однако, когда инструмент работает на новом Windows Server 2019, который должен заменить старый, System.io .IoException сразу же брошено из метода serialport.readline () (сообщение об ошибке переводится на «Конец файла достигнут», извините за французский перевод)
Я попытался запустить инструмент напрямую на моем локальном компьютере, и он хорошо считывается из Com -порта. < /p>
Я использовал пута Кроме того, и сначала я ничего не мог получить на удаленном рабочем столе. Это заставило меня подозревать проблему драйвера, которую я переустановил на сервере. Теперь это позволяет мне читать порт COM с замазкой на удаленном рабочем столе, но он не исправил поведение инструмента. ) и все они хорошо. Либо так, либо я работаю с неправильной документацией? Самая близкая проблема, которую я обнаружил, заключается в ошибке сервера, но тот факт, что я могу прочитать COM -порт через Putty, кажется, больше указывает на проблему с моим кодом или с модулем Serialport.
У меня закончились лиды, чтобы следовать. Кто -нибудь когда -нибудь сталкивался с аналогичной проблемой? Или в моем коде есть ошибка, заставляя его работать в определенных условиях, а не работать в других?
Подробнее здесь: https://stackoverflow.com/questions/794 ... hrough-rdp
Мобильная версия