Работа с usb портом
Вопрос. Как записать/прочитать данные с USB, как определить к какому из портов подключено устройство?
Правильно ли я понимаю, что работать с ним можно, как и с COM-портом, подобно файлу?
Такой вариант не работает:
port.PortName = "USB1";
port.WriteTimeout = 500;
port.ReadTimeout = 500;
port.BaudRate = 9600;
port.Parity = Parity.None;
port.DataBits = 8;
port.StopBits = StopBits.One;
port.Handshake = Handshake.RequestToSend;
port.DtrEnable = true;
port.RtsEnable = true;
port.NewLine = System.Environment.NewLine;
port.Open();
port.Close();
Неправильно. Напрямую читать/писать в USB довольно сложно, для этого придётся писать свой драйвер.
Кстати, а почему нужно переписать на USB? Датчик взяли другой?
Для вас:
Вариант 1: Самый простой. Возьмите недорогой переходник RS232-USB и работайте как раньше (добавится еще один COM-порт).
Вариант 2: Возьмите микросхемы PL2303 и MAX232. По сути - тот же первый вариант, но переходник уже не потребуется.
Есть еще разнообразные интерфейсные микросхемы для USB, но с ними намучаетесь.
Вопрос. Как записать/прочитать данные с USB
Как то давно я писал программку, которая общалась с UPS, подключенному к USB. Так вот, этот UPS, при подключении по USB определялся как HID-совместимое устройство, работа с которыми, как оказалось, довольна проста. Если Ваш случай из этой "оперы", попробуйте покопать в эту сторону. Могу даже скинуть примерчики, правда они на C++.
Работаю с частоты фирмы mitsubishi electric. Есть кабель UTP (преобразователь) - COM (компьютер). Так как USB порт более универсальнее и распространеннее, появилась необходимость переделать под него. Купил кабель RS232-USB, как вы и предлагаете. Теперь схема следующая: UPT (преобразователь) - COM (соединение кабелей) - USB (компьютер).
Не понимаю, каким образом добавится еще один COM-порт. Можете пояснить?
nikitozz:
Дело в том, что при подключении устройства по USB, оно определялся ни как HID-совместимое устройство, а как неопределенное usb-устройство.
Буду признателен, если поделитесь своими кодами. Может это подтолкнет меня к правильному решению. C++ подойдет :-)