Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Работа с виртуальными портами USB устройств

5.1K
09 мая 2009 года
tumanovalex
39 / / 21.11.2005
Помогите с информацией по следующим вопросам:
1. Как получить доступ к виртуальным постам?
2. Можно ли управлять виртуальными портами с помощью ReadFile и WriteFile или какой-либо другой функции API?
3. Может быть есть другие способы управления виртуальными портами без написания драйвера?
Хотелось бы также поподробнее узнать, как можно работать (управлять, читать и записывать данные) с виртуальными портами, например, для USB принтеров и сканеров.
ОС Windows XP и Vista, желательно на С, ассемблера не знаю.
479
12 мая 2009 года
Ухух
142 / / 05.05.2006
Пробовал работать с виртуальным портом для C2102. Драйвер ессно silabовский. Работаем с портом обычными ReadFile WriteFile и API для шевеления ногами. Работает как обычный порт. Смотрел под ME и XP. Под XP встает на раз. Под ME встает через.... в общем как обычно. Но работает.
5.1K
13 мая 2009 года
tumanovalex
39 / / 21.11.2005
А какие опции нужно выставлять в CreateFile? И где эти опции можно найти для нужного виртуального порта?
479
13 мая 2009 года
Ухух
142 / / 05.05.2006
Да работаем как с обычным портом . У меня он под ME вставал как COM3,а под XP как COM4. Вот просто как с обычными портами и работал.
5.1K
14 мая 2009 года
tumanovalex
39 / / 21.11.2005
У меня виртуальный порт принтера в системе указан как USB001. Вместе COMN нужно указать USB001?
479
14 мая 2009 года
Ухух
142 / / 05.05.2006
Не, я так понимаю, что как LPT какой-то должен быть.
261
15 мая 2009 года
ahilles
1.5K / / 03.11.2005
да, должно быть что-то вроде LPT
14
15 мая 2009 года
Phodopus
3.3K / / 19.06.2008
Если, конечно, принтер эмулируется для DOS-режима. Тогда можно воспользоваться стандартной ссылкой PRN
5.1K
17 мая 2009 года
tumanovalex
39 / / 21.11.2005
Цитата: Phodopus
Если, конечно, принтер эмулируется для DOS-режима. Тогда можно воспользоваться стандартной ссылкой PRN

У меня возникли такие вопросы:
1. У меня на компьютере LPT1-LPT3. В свойствах принтера HP LaserJet 1020 галочка стоит на виртуальном порту USB001. Как определить, к какому из них обращаться в CreateFile?
2. Вообще я плохо понимаю, как эмулируется порт (как создается виртуальный порт, как передаются данные в зависимости от типа оборудования, подключенного к нему и др.). Хотелось бы понять досконально, как поступает информация на принтер при эмуляции. Может быть у вас найдутся ссылки и по этим вопросам? Все, что я читал до сих пор, не дает хорошего представления о деталях протекания процессов обмена данными между системным блоком и принтером.

479
17 мая 2009 года
Ухух
142 / / 05.05.2006
У вас, скорее всего, принтер подключен не по виртуальному порту LPT, он тогда бы так бы и выглядел в системе и обращаться к нему надо было бы точно так же, как обычному порту принтера, а просто принтер USB. И общение с ним идет через драйвер принтера по своим внутренним законам. Хотя тут может быть так, что когда принтер подключен, обращение к нему осуществляется штатными функциями API. Т е как порт со стороны машины выглядит не порт , а устройство - принтер, когда подключен. Попробуйте в create file ставить то имя что вы видете в диспетчере устройств. Но тут я не знаю - это мое предположение.
Я правильно понял , что вы пытаетесь работать с принтером USB из виндов?

Про документация могу только тяжело вздохнуть и послать к MSDN. Первоисточника другого нет.
Можно попробовать "Внутренне устройство Windows..." от Русиновича и Соломона, в сети она есть, но "сам я Пастернака не читал..."

Еще путь что то выцедить - почитать описания на микросхемы FTDI. Там есть честные преобразователи USB-LPT и какое- то описание есть.
260
17 мая 2009 года
Ramon
1.1K / / 16.08.2003
Во первых сформулируйте конкретно, в первую очередь для себя, что вам надо. Надо печатать из Windows http://msdn.microsoft.com/en-us/library/dd162860(VS.85).aspx и иже с ним вам в помощь. А сканировать и за ухом почесать это уже иные задачи требующие своего решения.
5.1K
17 мая 2009 года
tumanovalex
39 / / 21.11.2005
Я попробовал в CreateFile "\\\\.\\USB001". Но что-то ничего не получилось. А Linux позволяет управлять USB принтером на детальном уровне (передача данных в принтер, команда на печать, очистка буфера принтера, получение его статуса и др.)? И есть ли в Linux подробная документация для того, чтобы научиться программировать работу с USB принтером?

Мне хотелось бы научиться просто записать данные в USB принтер (наверное, в буфер принтера) без всякой печати, когда буфер принтера заполнится и передавать данные уже не получится, его очистить и снова послать данные на принтер. Вот такая странная задача.
479
18 мая 2009 года
Ухух
142 / / 05.05.2006
Это не виртуальный порт, это работа с конкретным USB устройством. Боюсь быть пессимистом, но найти документацию вам может не удастся, в любом случае - на буржуйские форумы. В свое время печатал контроллером на лазерном принтере, так найти документацию было сложно, а там был DOS и то было сложно. Спасло описание на HP - тогда описания были не чета современным, там всю систему команд принтера привели и язык HPGL.
5.1K
18 мая 2009 года
tumanovalex
39 / / 21.11.2005
Спасибо большое, буду разбираться дальше.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог