Я занимаюсь разработкой программного обеспечения с использованием .net framework (2.0). Я без проблем общаюсь с несколькими устройствами через последовательный порт.
Однако я пытаюсь связаться с новым, но невозможно написать или прочитать какую-либо команду.
Прежде чем попробовать какое-либо соединение с помощью моего программного обеспечения, я проверяю его ранее с HyperTerminal из Hilgraeve . Так что с этим программным обеспечением, если я отправлю * IDN? , выбрасываю последовательный порт, устройство переключается в удаленный режим и отвечает что-то вроде ANRITSU, MS9710A, V1.20383 . Таким образом, используемые параметры кажутся хорошими.
Но, когда я пытаюсь использовать IO.Ports.SerialPort из .net framework, невозможно установить связь. После многих испытаний я могу сказать:
Кажется, проблема связана с функцией записи, потому что при использовании MyPort.Write ("* IDN?") кажется, что ничего не записывается в буфер. Я говорю это, потому что устройство не переключается в удаленный режим.
Все (видимые) параметры одинаковы для HyperTerminal и моего IO.Ports.SerialPort: 9600 бит / с, 8-N-1, без установления связи. Размер буфера IO.Ports.SerialPort имеет значение по умолчанию.
Я проверил несколько других приложений .net с помощью Google, и никто не может связаться с устройством. Я также тестировал программное обеспечение с использованием framework 1.1, прежде чем MS добавила IO.Ports.SerialPort в Framework. ,
Итак, мой вывод - проблема исходит от IO.Ports.SerialPort, но я не знаю, в чем проблема. У меня есть подсказка:
IO.Ports.SerialPort не может обмениваться данными, когда скорость ниже 19200 бит / с (9600 макс. В моем случае). Я предполагаю, что, поскольку все другие устройства, с которыми я общаюсь без проблем, имеют скорость не менее 19200 бит / с (правка: я обнаружил другое устройство, работающее на скорости 9600 бит / с, и я прибыл, чтобы связаться с ним с помощью моего программного обеспечения, проблема заключается в другой момент)
Существует один параметр, который я не видел, который может решить проблему
Может ли помочь следующая версия фреймворка (3.0, 3.5 или 4.0)? Не найдено документации по обновлению класса IO.Ports.SerialPort последней версией.
Так у вас есть идеи по поводу этой проблемы? У кого-нибудь были такие проблемы?
Еще немного информации: программное обеспечение разработано с использованием vb.net с VS 2010 на Win 7. Я также без проблем проверил связь GPIB на проблемном устройстве, но я предпочитаю не использовать протокол GPIB, если это возможно.
Спасибо за вашу помощь.