Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Win Api
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.05.2011, 15:29   #1
Master_Devel
 
Регистрация: 23.05.2011
Сообщений: 7
По умолчанию Обработка данных от USB сканера без (!!!) TWAIN

Постановка задачи: есть планшетный сканер. Необходимо программно дать ему команды, например на начало сканирования ... Т.е. передать данные в его регистры. Как найти его в списке USB устройств я уже нарыл на форуме, а вот как передавать значения в РЕГИСТРЫ и как получить данные от него не нашел. Если кто сталкивался с данным вопросом, отзовитесь плз!
Master_Devel вне форума Ответить с цитированием
Старый 23.05.2011, 16:00   #2
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,742
По умолчанию

...для этого вам придется написать свой драйвер для работы со сканером (конкретной моделью), а для этого вам нужно SDK от производителя (что вы вряд-ли достанете) на данную конкретную модель сканера, либо отследить обмен от родного драйвера от производителя по USB, либо лезть в системную логику самого сканера и выяснять куда-чего подавать. И это никому кроме вас не нужно.
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 23.05.2011, 16:24   #3
f.hump
C/C++, Asm
Участник клуба
 
Аватар для f.hump
 
Регистрация: 02.03.2010
Сообщений: 1,323
По умолчанию

В целом, под Виндой, правильный сканер должен дружить с TWAIN. Сегодня, конечно, правильный сканер должен дружить с WIA (http://msdn.microsoft.com/en-us/libr...(v=VS.85).aspx). И, что важно, это не TWAIN.
Но если и это не подходит, как правильно было отмечено, пишите свой драйвер.
f.hump вне форума Ответить с цитированием
Старый 23.05.2011, 17:34   #4
Master_Devel
 
Регистрация: 23.05.2011
Сообщений: 7
По умолчанию

Цитата:
Сообщение от f.hump Посмотреть сообщение
В целом, под Виндой, правильный сканер должен дружить с TWAIN. Сегодня, конечно, правильный сканер должен дружить с WIA (http://msdn.microsoft.com/en-us/libr...(v=VS.85).aspx). И, что важно, это не TWAIN.
Но если и это не подходит, как правильно было отмечено, пишите свой драйвер.
Драйвер есть. Canon-700F. Мне только надо напрямую с ним работать. Грузить команды в его регистры. Я только не знаю, как. Мне бы кусок кода для примера. Устройство по GUID я засветил. Все тут Ок. А вот поцесс чтение/запись я плаваю.
Вопрос, почему напрямую? Надо подавать драйверу такие настройки, как нестандартный DPI (данная модель прохавает даже 9600, если не через его интерфес!), и т.д. TWAIn не позволяет сыпать команты в регистры сканера. А команд там довольно много! Вот и стала задача.

Описалово есть. Есть что куда подавать. Чем только не знаю Какие команды для этого пользовать

Последний раз редактировалось Master_Devel; 23.05.2011 в 17:45.
Master_Devel вне форума Ответить с цитированием
Старый 23.05.2011, 20:53   #5
rpy3uH
добрый няша
Старожил
 
Аватар для rpy3uH
 
Регистрация: 29.10.2006
Сообщений: 4,804
По умолчанию

Цитата:
Сообщение от Master_Devel Посмотреть сообщение
Драйвер есть. Canon-700F. Мне только надо напрямую с ним работать.
как работать напрямую со сканером знает только драйвер, драйвер делает это либо через порты ввода-вывода либо через специальную область памяти, он работает в ядре системы ему всё можно. Обычная программа не сможет работать со сканером также как это делает драйвер, просто потому что ей это запрещено (напрямую работать с железяками обычным программам нельзя). Работать со сканером можно только через драйвер

Последний раз редактировалось rpy3uH; 23.05.2011 в 21:23.
rpy3uH вне форума Ответить с цитированием
Старый 23.05.2011, 21:06   #6
f.hump
C/C++, Asm
Участник клуба
 
Аватар для f.hump
 
Регистрация: 02.03.2010
Сообщений: 1,323
По умолчанию

если есть описание к драйверу, описание стуктур, управляющих кодов, то CreateFile и DeviceIoControl вам в помощь.
Плюс не помешал бы хедер в котором все управляющие коды инициализированы.

Последний раз редактировалось f.hump; 23.05.2011 в 21:10.
f.hump вне форума Ответить с цитированием
Старый 23.05.2011, 21:58   #7
Master_Devel
 
Регистрация: 23.05.2011
Сообщений: 7
По умолчанию

Цитата:
Сообщение от f.hump Посмотреть сообщение
если есть описание к драйверу, описание стуктур, управляющих кодов, то CreateFile и DeviceIoControl вам в помощь.
Плюс не помешал бы хедер в котором все управляющие коды инициализированы.
Вот с этим и начал уже рыться! Может есть пример кода на Delphi, который пишет в регистр побитово и читает из регистра? Handle, предположим, уже есть.

Последний раз редактировалось Master_Devel; 23.05.2011 в 22:07.
Master_Devel вне форума Ответить с цитированием
Старый 23.05.2011, 22:19   #8
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,742
По умолчанию

Цитата:
Плюс не помешал бы хедер в котором все управляющие коды инициализированы.
это и называется SDK.
Цитата:
который пишет в регистр побитово и читает из регистра? Handle, предположим, уже есть.
что вы заладили с регистром-то? Нет такого там, есть адрес в памяти по которому можете писать определенную структуру по определенному протоколу и эта структура и протокол известны лишь производителю оборудования.

p.s.: а вообще, есть исходники TWAIN такой мысли не возникало?
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 23.05.2011, 22:36   #9
Master_Devel
 
Регистрация: 23.05.2011
Сообщений: 7
По умолчанию

Цитата:
Сообщение от raxp Посмотреть сообщение
это и называется SDK.
что вы заладили с регистром-то? Нет такого там, есть адрес в памяти по которому можете писать определенную структуру по определенному протоколу и эта структура и протокол известны лишь производителю оборудования.

p.s.: а вообще, есть исходники TWAIN такой мысли не возникало?
Второй раз говорю: я знаю что писать в какой адрес. У меня есть док! Просто приведите пример записи значения в адрес памяти. на Delphi. Через CreateFile, DeviceIOControl + IOCTL_READ_REGISTERS. Больше ни о чем не прошу.

TWAIN не катит! ОН блокирует некоторые возможности сканера этой модели. Прямым доступом они открываются.
Master_Devel вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Обработка сообщений в приложении без окон. kalexi Win Api 2 26.06.2009 20:12
Обновление списка данных без потери данных в переменных VaBank БД в Delphi 13 03.06.2009 10:47
ActiveX, TWAIN gojohnygo Помощь студентам 1 29.09.2008 13:20
Twain или работа со сканером в Delphi D-mon Win Api 2 08.12.2007 17:23
Взаимодействие с twain jonbc Win Api 4 06.04.2007 23:35