Работа с виртуальными портами USB устройств
1. Как получить доступ к виртуальным постам?
2. Можно ли управлять виртуальными портами с помощью ReadFile и WriteFile или какой-либо другой функции API?
3. Может быть есть другие способы управления виртуальными портами без написания драйвера?
Хотелось бы также поподробнее узнать, как можно работать (управлять, читать и записывать данные) с виртуальными портами, например, для USB принтеров и сканеров.
ОС Windows XP и Vista, желательно на С, ассемблера не знаю.
Пробовал работать с виртуальным портом для C2102. Драйвер ессно silabовский. Работаем с портом обычными ReadFile WriteFile и API для шевеления ногами. Работает как обычный порт. Смотрел под ME и XP. Под XP встает на раз. Под ME встает через.... в общем как обычно. Но работает.
А какие опции нужно выставлять в CreateFile? И где эти опции можно найти для нужного виртуального порта?
Да работаем как с обычным портом . У меня он под ME вставал как COM3,а под XP как COM4. Вот просто как с обычными портами и работал.
У меня виртуальный порт принтера в системе указан как USB001. Вместе COMN нужно указать USB001?
Не, я так понимаю, что как LPT какой-то должен быть.
да, должно быть что-то вроде LPT
Если, конечно, принтер эмулируется для DOS-режима. Тогда можно воспользоваться стандартной ссылкой PRN
Цитата: Phodopus
Если, конечно, принтер эмулируется для DOS-режима. Тогда можно воспользоваться стандартной ссылкой PRN
У меня возникли такие вопросы:
1. У меня на компьютере LPT1-LPT3. В свойствах принтера HP LaserJet 1020 галочка стоит на виртуальном порту USB001. Как определить, к какому из них обращаться в CreateFile?
2. Вообще я плохо понимаю, как эмулируется порт (как создается виртуальный порт, как передаются данные в зависимости от типа оборудования, подключенного к нему и др.). Хотелось бы понять досконально, как поступает информация на принтер при эмуляции. Может быть у вас найдутся ссылки и по этим вопросам? Все, что я читал до сих пор, не дает хорошего представления о деталях протекания процессов обмена данными между системным блоком и принтером.
Я правильно понял , что вы пытаетесь работать с принтером USB из виндов?
Про документация могу только тяжело вздохнуть и послать к MSDN. Первоисточника другого нет.
Можно попробовать "Внутренне устройство Windows..." от Русиновича и Соломона, в сети она есть, но "сам я Пастернака не читал..."
Еще путь что то выцедить - почитать описания на микросхемы FTDI. Там есть честные преобразователи USB-LPT и какое- то описание есть.
http://msdn.microsoft.com/en-us/library/dd162860(VS.85).aspx и иже с ним вам в помощь. А сканировать и за ухом почесать это уже иные задачи требующие своего решения.
Во первых сформулируйте конкретно, в первую очередь для себя, что вам надо. Надо печатать из Windows
Мне хотелось бы научиться просто записать данные в USB принтер (наверное, в буфер принтера) без всякой печати, когда буфер принтера заполнится и передавать данные уже не получится, его очистить и снова послать данные на принтер. Вот такая странная задача.
Это не виртуальный порт, это работа с конкретным USB устройством. Боюсь быть пессимистом, но найти документацию вам может не удастся, в любом случае - на буржуйские форумы. В свое время печатал контроллером на лазерном принтере, так найти документацию было сложно, а там был DOS и то было сложно. Спасло описание на HP - тогда описания были не чета современным, там всю систему команд принтера привели и язык HPGL.
Спасибо большое, буду разбираться дальше.