Восстановление прошивки сканера.

10.04.2019

Визуальное программирование – способ создания программы для ЭВМ путём манипулирования графическими объектами вместо написания её текста. Визуальное программирование часто представляют как следующий этап развития текстовых языков программирования.

Визуальные языки программирование появились очень давно, задолго до того, как появился визульный рекадтор от Unreal Engine -> Unreal BluePrint.

На данный момент, это один из лучших визульный редакторов, в котором можно создавать игры без знания языков программирования. Однако хочется заметить, что несмотря на его популярность и рост визуального программирования в целом, ещё ни один большой проект без дополнения кодом так и не вышел.

Визуальное программирование, а точнее его концепция, базируется на технологии программирования потока данных. Этот подход был придуман ещё 1970-х годах. Он заключается в том, что любую программу можно представить в так называемой блок-схеме. Если вы когда-то сталкивались с алгоритмами, то вы должны знать что это.

Стремление к визуализации алгоритмов у человека появилось почти одновременно с появление самого понятия алгоритм. Это происходит от естественного желания точнее обозначить свои цели и действия. Кроме того, визуализация помогает лучше постигать задуманную идею и в последствии её развивать.

Визуальное программирование поможет в обучении

Желание научиться создавать программы с помощью визуального редактора у человека появилось из-за разных факторов, однако есть мнение, что код – это сложно, страшные, непонятные закарлючки, которые понимают только гении. Всё конечно же не так, программирование это круто, интересно и полезно для общества в большинстве случаях.

Есть много перспективных языков программирования, которые помогают в развитии различных сфер, .

Люди, как правило, ленивы и каждый хочет упростить себе работу и плюс, не все люди хотят писать код, а некоторые и не думают этого делать. Вот тут и приходит на помощь визуальное программирование.

Рассматривая современные средства визуального программирования, стоит упомянуть о проекте The Blockly от компании Google, главная функция которого, это образование.

Blockly позволяет разработать свои приложения под Web, Android, iOS и научится программировать просто перемещая и создавая блоки. Логические и математические операции, переменные, циклы, списки, функции – это то, что можно выучить и сделать с помощью Blockly.

С помощью Blockly можно легко обучать детей в школе, начиная с малого возраста и не затрудняться с учебным планом по информатике. Это будет куда полезнее современной системы образования(личное мнение).

Существуют достаточно хорошие решения визуального программирования, тот же Unreal BluePrint, Unity3D Maker и другие, однако не один из них не является идеальным на данный момент.

Визуальное программирование – выводы

Мощности вычеслительных машин на сегодняшний день значительно выросли и это безусловно на стороне визульного программирования. Вы можете без проблем запустить Unity3D, Unreal Engine, отрисовать графику в браузере и не бояться, что ваш ПК задымится.

Несмотря на то, что можно создавать приложения, сайты, игры с помощью редакторов визуального программирования, не существует ни одного крупного проекта, который был создан исключительно на нём.

Судя по всему, игры всё ещё нельзя делать только при помощи клика мышки, программы нельзя писать без кода, но мы постепенно приближаемся к таким технологиям. Главный вопрос, хорошо это или плохо? Так или иначе, будущее ещё не наступило.

На этом всё, подписывайтесь на телеграмм канал и на обновления сайта, делитесь статьёй с друзьями.

Удачи в жизни и до встречи.

Развитие любой организации в сфере бизнеса, основанного на разработке программного обеспечения, зависит от количества проданных ею лицензий (прав на использование созданной интеллектуальной собственности). Как убедить потенциального пользователя купить новую версию программы? Очень просто - добавить к названию продукта "мудреные" красивые названия типа: "визуальное", "виртуальное", "распределенное" и т.д. Большинство пользователей смутно понимают их реальное значение, но с удовольствием покупают новое программное обеспечение.

Что означает слово "визуальное"? Что скрывается за термином визуальное программирование? На практике большинство людей вкладывают в этот термин совершенно другое понятие. В качестве примеров обычно приводят средства разработки программного обеспечения Visual Basic и Delphi. На самом деле эти средства не осуществляют визуальное построение программного обеспечения, а позволяют визуализировать процесс построения интерфейса. Сама программа - код функций и процедур, взаимодействующих с интерфейсом программы, "пишется" в обычном текстовом редакторе - усовершенствованном варианте командной строки. Поэтому о визуальном программировании в данном случае вести речь нельзя. В чем же тогда заключается визуальное программирование? Разобраться в понятии термина визуального программирования можно только поняв назначение термина "визуализация".

Визуализация - это процесс графического отображения сложных процессов (в данном случае построения) на экране компьютера в виде графических примитивов (графических фигур). Визуализировать можно абсолютно любые процессы: управления, построения, рисования и т.д. Вы можете не подозревать, что простейший вариант визуализации - линейка прогресса (прямоугольник, процент заполнения которого прямо пропорционален прогрессу выполнения какой-либо операции). Глядя на нее, вы можете четко оценить оставшийся объем невыполненных операций. Однако если вы выводите значение прогресса в виде числа со знаком процента - вы лишь отображаете текущее значение, и здесь нет никакой визуализации.

Визуализировать можно интерфейсы программного обеспечения. Можно и нужно. Это позволяет упростить "общение" программного продукта с пользователем. Изображения на элементах интерфейса (внешнего вида программного обеспечения) позволяют пользователю интуитивно разбираться в назначении этих элементов.

Для визуализации интерфейсов программного обеспечения существует целый ряд специально разработанных элементов интерфейса - визуальных компонент, позволяющих отображать различную информацию и осуществлять управление программой в целом. Простейший пример - визуальная кнопка на экране компьютера. Данная кнопка имитирует поведение обычной кнопки на пульте управления любого прибора. Ее можно "нажимать" как настоящую.

Возможно, именно наличие визуальных средств построения интерфейсов в Visual Basic и Delphi, а также создаваемое ими визуальное программное обеспечение закрепили за ними термин "визуальное программирование". Безусловно, существует много других аналогичных продуктов (Visual C++, Borland C++ начиная с версии 4, Symantec Visual Cafe, "сишный" вариант Delphi - C++ Builder и др.), но они не смогли завоевать такой популярности, как Visual Basic и Delphi. Именно благодаря любимому детищу Билла Гейтса - Visual Basic, мир узнал о возможности визуального построения интерфейсов программ для Windows. Затем появился Delphi. Если Visual Basic целиком ориентируется на построение программ с визуальными интерфейсами, то Delphi ориентируется на работу с базами данных. Последние годы ходят мифы, что Basic - язык для начинающих. "Начинающие" восприняли Basic как панацею от компьютерных бед...

Есть еще один способ доказать, почему в Visual Basic и Delphi осуществляют только визуальное построение интерфейса программы, а не самого кода. Определяющими элементами процесса визуализации являются:

  1. Визуализируемая модель - модель, которая подвергается отображению с целью возможности изменения ее структуры или ее параметров (либо параметров ее отдельных частей).
  2. Окно инструментов (Toolbox) - окно, содержащее набор элементов, из которых строится визуальная модель. Обычно элементы разделяются по их назначению на отдельные группы, размещающиеся на отдельных закладках окна инструментов.
  3. Окно свойств (Propertybox) - окно, в котором отображаются параметры (свойства) выбранного элемента визуальной модели. Термин "свойство" пришел из объектно-ориентированного программирования и обозначает параметр объекта (элемента).

Визуализируемой моделью в Visual Basic и Delphi является окно (форма, диалог) Windows, а не код программы.

Принято визуализировать только работу с элементами интерфейса, когда в качестве объектов визуализации рассматриваются визуальные компоненты, из которых состоят формы (окна и диалоги) интерфейса программы. Мало кому не приходит в голову мысль, что и операторы программы можно рассматривать как объекты визуализации. Тогда параметры операторов и функций программы можно будет настраивать при помощи окна свойств (Propertybox). А сами операторы и функции будут храниться в списковой форме (табличной форме).

В качестве возможного варианта реализации такой визуальной разработки кода программы можно рассматривать табличную форму записи макросов в Access. В этом случае визуализируемая модель - макрос - программа управления данными в базе или процессом их отображения. Команды макроса находятся в разных строчках записи макроса. Окно свойств находится непосредственно под списком команд. Окна инструментов в привычном виде нет, но оно реализовано в виде комбобокса с командами, т.е. в каждой строке записи макроса в отдельности имеется возможность выбора или смены текущей команды макроса. Это и есть визуализированная форма записи программы.

Визуальное программирование позволяет описывать процессы в графическом виде, в отличии от текстового представления, где нужно приложить дополнительные усилия, чтобы мыслить так, как это должен выполнять компьютер. Звучит многообещающе, но попробуем разобраться в сути и выяснить, почему Вам стоит это попробовать.



Само по себе программирование подразумевает не только процесс написания кода, но зачастую на это тратится большая часть времени при разработке. Только представьте, сколько усилий приходится тратить на то, чтобы держать в голове множество правил и спецификаций к конкретному языку программирования, вместо того, чтобы сосредоточиться на решаемой проблеме. Особенно может раздражать разнообразие синтаксиса в языках: где-то нужна точка с запятой, где-то не нужны фигурные скобки, где-то вообще ни одно выражение не обходится без скобок . Что уж и говорить о холиварах, напоминающие религиозные споры.


Кадр из сериала "Кремниевая долина"


Часто советуют начать разработку ПО с графического описания будущей системы, ее компонентов и связей между ними, чтобы на ранних стадиях определить более выгодную структуру системы и минимизировать возможные проблемы в будущем. Графическое представление легче для понимания, чем текстовый вариант, но может иметь свои ограничения, к тому же это все равно придется переводить в понятный компилятору код. Конечно, на маленькие приложения (какими они могут казаться вначале) это не распространяется, можно сразу приступить к написанию кода, но проблема все равно остается - нужно думать в рамках определенного языка программирования. Тем более, когда вы это делаете в давно приевшемся вам императивном стиле.


Программисты по своей сути должны быть ленивыми, чтобы находить выгодные способы решения задач и не тратить силы на рутину, тем более, глядя на тенденции увеличения сложности ПО. Именно это стимулирует рождение парадигм, языков программирования и абсолютно новых, казалось бы, и малоизвестных инструментов визуального программирования.

Зачем и где применяют визуальное программирование

Одним из первых инструментов, более известных и дружелюбных для рядового гражданина, можно считать Scratch. Он предназначен исключительно для образовательных целей, так как представляет собой те же блоки кода, только обернутые в разноцветные пазлы. Практической пользы нет никакой, если вы уже умеете писать код.



Похожий инструмент от Google под название Blocky


Существует другой вид визуального программирования, более полезный на мой взгляд, это Data-flow programming. Он не такой гибкий как предыдущий и служит некоторой надстройкой для программирования процессов определенной тематики. Его суть состоит в манипуляции данными, передаваемыми между блоками (узлами).



Пример редактора узлов из Blender


Преимущество такого подхода в следующем: не нужно думать о том, что происходит с данными в узлах, а лишь знать, что они делают, получают на вход и отдают на выходе. Остается лишь выбрать нужные узлы и соединить их между собой линиями, по которым без особого затруднения можно понять, что и с чем связано.


Редактор узлов в Blender - именно тот случай, когда используется программирование потоков данных для управления рендерингом, создания шейдеров и текстур. Такой подход в 3D моделировании и рендеринге достаточно популярен, так как никому не хочется писать код, а создавать инструкции для нелинейного управления данными необходимо.


Также известный всем в сообществе 3D моделлеров это Substance Designer, который позволяет создавать 3D материалы по принципу, описанному выше.



Редактор для создания материала в Substance Designer


Хотя в официальных источниках упоминания о программировании нету, в нем используется самый настоящий data-flow. Наверное, это такой маркетинговый ход - не говорить о том, что может отпугнуть.


Итак, разобрались в том, почему визуальное программирование используется в 3D моделировании, но как насчет тех сфер деятельности, где без умения писать код не получится сделать достаточно функциональный продукт? Казалось бы, если умеешь писать код, то просто нужно развивать этот навык, но нет - именно в геймдеве одними из первых стали применяться инструменты для программирования без кодинга. С одной стороны, это было выгодно для популяризации геймдева среди тех, кого отпугивает код лишь одним видом, с другой - прогресс не стоит на месте и даже гуру программирования надоело ставить пробелы вместо табов чтение тысяч строк кода и его поддержка, и они решили попробовать новые методики описания логики и процессов.


Многие знают UE4 с его Blueprint"ом. Это уже не просто data-flow, а что-то большее, так как позволяет формировать инструкции, которые будут выполняться не за один проход, а в течении всего жизненного цикла.



Пример вывода строки по событию


Например, в нем есть узлы для отправки событий. Подключенные к ним узлы выполняются только в тот момент, когда срабатывает событие. Получается очень удобно, не нужно оперировать какими-то объектами и методами, а просто провести соединение от выхода к входу.


Существует еще много отдельных инструментов для визуального программирования (чаще их позиционируют как среда графического программирования), но они не так привлекательны, имеют узкую направленность или вовсе более похожи на конструкторы, чем на инструменты программирования.

Общие аспекты разработки редакторов узлов

Допустим, однажды вы увидели как делают магию программируют с использованием какого-то редактора с блоками и линиями. К вашему удивлению это оказалось именно тем, что позволит воплотить вашу идею (скажем, какой-то продвинутый генератор диалогов, которые представить в виде обычного графа не получится).


Главное, от чего будет зависеть процесс разработки - платформа и технологии. В последнее время много чего можно сделать прямо в браузере, пусть даже пожертвовав производительностью, что в большинстве случаев никак не отразится на качестве приложения (в ином случае asm.js/wasm в помощь). Одна из особенностей таких приложений - они могут быть встроены в другие нативные приложения. Выбор инструментов и языков программирования должен быть в интересах разработчика, чтобы сделать процесс разработки более комфортным и эффективным и снизить вероятность выстрелить себе в ногу появления проблем.


Определившись с платформой и языком, было бы хорошо использовать готовые решения (в нашем случае речь идет о редакторе узлов), но и здесь не все гладко.
Есть несколько вариантов:

  1. вы используете готовое решение, которое вскоре окажется не таким подходящим и удобным, в придачу к этому вам лень не под силу подправлять его под себя
  2. написать свою реализацию, заодно изучив как это все работает изнутри и куда прикручивать колеса .
  3. использовать готовое решение, которое достаточно гибкое и позволяет без проблем настроить его под себя, не жертвуя при этом выгодными фичами для вашего продукта.
Проблема последнего в том, что это достаточно редкое явление, возникающее в последствии немалых усилий. Собственно, суть этой статьи и является в стимулирование достижения такого результата на примере представленной далее библиотеки.

Что такое D3NE

Это такие разъемы, которые могут представлять собой входы или выходы и необходимы для соблюдения правильности их подключения между собой. Назначив входам и выходам этот сокет, можно быть уверенными, что пользователь не сможет передать туда не те данные (вернее, он только назначает связи). Также есть возможность совместить сокеты для подключения между входами и выходами разного типа.



Узлы обычно представляют прямоугольниками (но можно это изменить в пределах вашей фантазии и возможностей CSS и HTML). Они могут иметь входы, выходы и контролы. Входы и выходы представляют сокеты и расположены в левой и правой части узла соответственно (опять таки вы можете их расположить как угодно, используя шаблоны).



Контролы нужны для того, чтобы добавлять в узлы произвольные элементы, а из них можно назначать данные к узлу на момент работы в редакторе (не при обработке данных). Например, с помощью простого поля ввода можно положить значение в узел, которое потом использовать при обработке.



Компоненты нужны для того, чтобы редактор знал какие в нем можно добавлять узлы и как их обрабатывать, а именно необходимы для поддержки импорта/экспорта. Используются так называемые билдеры и воркеры, обычные функции с соответствующим ключом, которые задаются при создании компонента (и должны находиться в одном месте).


Билдер отвечает за создание экземпляра узла - в функции вы создаете экземпляр, добавляете к нему нужные входы, выходы и контролы. Создается это именно программным путем, а не через конфиги (обычно такие реализации находил), чтобы позволить повторное использование, к примеру, контролов, а то и наследование узлов.


Воркер в качестве параметров дает вам входы, выходы и объект с данными узла (не экземпляр, который создается в билдере, а то, что из него достали через toJSON). Входной массив содержит данные, которые пришли на вход из другого узла и массив с выходными данными, в который вы должны положить данные, зависимо от того, что должен делать узел)



Один из основных объектов, который управляет всем вышеперечисленным с целью отображения и взаимодействия с пользователем. Ему передаются идентификатор, компоненты, контекстное меню .



Служит для обработки данных в узлах. Особенность в том, что ему нужны только данные, экспортированные из редактора, таким образом можно выполнять обработку узлов вовсе без наличия редактора (например, есть его реализация на С++). Именно этот компонент библиотеки отвечает за обход узлов, определяя с какого нужно начать обработку, вызывает ваши воркеры, передавая в них входные данные, полученные от предыдущих узлов. Может работать с асинхронными функциями, что не может не радовать на фоне поддержки браузерами async/await. Более того, за счет асинхронной обработки может параллельно выполнять несколько узлов.

Заключение

Как видим, визуальное программирование хоть и призвано заменить написание кода, но довольно редко используется в настоящий момент. Наверное потому, что многие скептически относятся к идее программирования мышкой. Это отчасти справедливо, так как большинство задач в разработке ПО привычнее будет решить на каком-либо языке программирования, чем использовать недостаточно проверенный инструмент.


Суть прогресса состоит в том, чтобы находить более выгодные пути в решении каких-либо задач. Так и в случае с визуальным программированием предоставляется возможность описывать процессы в легком для понимания представлении и достаточном уровне абстракции. Но в это же время нельзя избавиться от исходного кода, так как он является основой для всего этого.


Чтобы убедиться в этом и проверить, как говорится, на себе все описанные возможности, вы можете построить на основе D3NE свой редактор визуального программирования.

Теги: Добавить метки

Прошивка сканера - дело хоть и необязательное, но рекомендуемое. В простых ситуациях, когда сканер используется исключительно как USB HID клавиатура, о прошивке можно даже не задумываться, но в некоторых случаях, требующих особых условий работы, лучше обновить устройство. Причиной тому - выявляемые время от времени производителем и конечными пользователями ошибки, их исправления и добавление функционала.

Ниже список изменений в прошивке DS4308, включенных в последние релизы:

***************************************************

1) Fixes DS4308-HC issue when used in Intellistand

***************************************************

***************************************************

1) Fixes DS4308-HC pager motor issue

***************************************************

***************************************************

1) Updated imagekit, which includes:

a) Added code type decoding for Mailmark, GS1 Datamatrix and GS1 QR

b) Fixes for misdecode for Code 39

c) Performance improvements, especially on poorly printed barcodes

d) PDF prioritization

2) Added support for DS4308-XD model, which includes:

a) Reading of etched DPM bar codes for XD models

b) Pager motor support for XD model

C) Green LED is off by default in presenation mode on XD models

d) Note that there is no picklist supported on the XD model

e) Illumination brighness is reduced on XD models in presentation mode

3) Changed Motion Tolerance default to 0

4) Updated Driver"s License Parsing Library to support newer Ohio licenses

5) Added support for DS4308-TT models for Toshiba Tec support

6) Added 2 second hold off for transitioning from triggered to presentation mode on Pedestal model

7) Added option Picklist Always to picklist mode, to support Picklist in presentation mode

8) Fixes issue where illumination brighness parameter didn"t take effect immediately

9) Fixes issue with Verifone terminal

10) Fixes issues with the Thai (kedmanee) keyboard

11) Increased ADF buffer sizes to allow for longer and more rules

12) Fixes issue when Write to Custom Defaults is embedded in a 2D parameter barcode

13) Fixes issue with non-printable characters on USB HID Keyboard when Quick Emulation and Emulate Keypad were enabled

УСТАНОВКА 123 SCAN

Для начала 123Scan необходимо скачать по ссылке. Устанавливать программу лучше от имени Администратора. Сам процесс установки достаточно простой и не требует тонкой настройки. Везде нажимаем “Next” и ждем окончания установки.


По окончанию установки запускаем 123Scan и подключаем сканер. Иногда 123Scan просит скачать обновление - соглашаемся:

Важно! Перед подключением к хосту сканер должен находиться в соответствующем режиме. Лучше перевести сканер в режим эмуляции клавиатуры. Или, если настройки сканера не важны, то вернуть сканер к заводским параметрам.

После запуска выбираем Update scanner firmware и жмем update firmware. Попутно можно выбрать одну из трех опций:

1 - загрузить прошивку и оставить текущие настройки

2 - загрузить прошивку и вернуть к заводским настройкам

3 - загрузить прошивку и ввести новые настройки

Выбирайте по своим требованиям.

Процесс занимает немного времени, важно не отключать сканер во время прошивки.

По завершению прошивки появится соответствующее окно с сообщением о возможности отключить сканер.

Обновление прошивки завершено.

ПОДКЛЮЧЕНИЕ СКАНЕРА В РЕЖИМЕ ЭМУЛЯЦИИ COM -ПОРТА И НАСТРОЙКА В 1С

Во многих случаях сканеры используются в режиме простой эмуляции клавиатуры, то есть выполняют роль USB HID устройства. Для таких случаев особой настройки не требуется, достаточно просто подключить сканер к компьютеру и устройство определится самостоятельно.

Но иногда сканер используется с устройствами, для которых режим ввода клавиатуры неудобен и необходимо перевести сканер в режим эмуляции COM-порта, к примеру, при работе с 1С, кассовыми устройствами, WMS-системами.

Для того, чтобы перевести сканер в режим эмуляции COM-порта для начала необходимо установить драйвер CDC, скачать его можно по этой ссылке.

По окончанию установки драйвера необходимо считать штрихкод из руководства, который переведет сканер в режим CDC:

После этого в диспетчере появится устройство на виртуальном COM-порту.

Проверить работу сканера можно через любой SSH Telnet клиент, к примеру, Putty.

Для настройки сканера в 1С необходимо перейти в форму настройки оборудования:

Выбрать кнопку «Создать», в качестве драйвера оборудования можно выбрать 1C:Сканеры штрихкодов (или другой драйвер, у каждого есть свои нюансы).

Выбрать «Записать и Закрыть» и перейти в «Настройка» и в открывшейся форме указать порт подключения (посмотреть можно в диспетчере устройств). Остальные параметры (бит данных, стоп-бит, скорость) можно оставить без изменения, они по умолчанию совпадают с параметрами на сканере.

Важное добавление! По умолчанию у сканера не настроен суффикс, поэтому для того, чтобы при передаче данных не возникало ошибок необходимо сканировать штрихкод, добавляющий соответствующий суффикс после данных, чтобы общая конфигурация выглядела как . При сканировании кода сканер автоматически добавит (клавиша Enter), которая и указана в настройках драйвера 1С.

На этом настройка сканера под 1С закончена.

Практическое руководство (версия 3.2)

Введение

Установка и настройка сканера в операционной системе GNU/Linux имеет особенности по сравнению с MS Windows. Это связано не с недостатками архитектуры GNU/Linux, а с тем, что производители сканеров держат в секрете алгоритмы работы своих устройств. При продаже сканеры комплектуются, как правило, только драйверами для MS Windows (иногда - также для MacOS), которые идут в бинарном виде. Поэтому написание драйверов под GNU/Linux представляет из себя непростую задачу для энтузиастов этой операционной системы: требуется некоторое время, для того, чтобы уяснить принцип действия того или иного сканера и написать драйвер. Для большинства новейших моделей сканеров вообще нет драйверов под GNU/Linux, или они не предоставляют полной функциональности. Имеет смысл перед приобретением сканера удостовериться, что он будет работать также и под GNU/Linux, посетив соответствующую страницу проекта Sane (расшифровывается Scanner Access Now Easy, что можно перевести примерно как "сканировать теперь легко"), обеспечивающего поддержку сканеров в GNU/Linux.

Для сканеров, продажи которых начались 1-3 года назад, драйверы уже написаны и предоставляют в большинстве случаев хорошую функциональность под GNU/Linux - особенно если модель сканера получила широкое распространение. Однако ряду сканеров для функционирования необходимо так называемое "фирменное программное обеспечение" (firmware) - особая бинарная программа, которая загружается в память сканера в начале работы ("бинарник" , иногда ее называют также "прошивка" ). Проблема заключается в том, что такие бинарники распространяются производителями сканеров под особыми проприетарными лицензиями и, как правило, не могут быть включены в состав дистрибутивов GNU/Linux как часть соотвествующих драйверов сканеров. Поэтому в большинстве случаев требуется дополнительная настройка драйвера сканера в GNU/Linux, чему и посвящена эта заметка.

Для примера рассмотрим настройку широко распространенного и эффективного сканера Epson Perfection 1270 (работает через USB). В первой части статьи дается описание настройки сканера для дистрибутива Debian 4.0 Etch - это описание основано на общих принципах работы GNU/Linux и подойдет для многих других дистрибутивов. Во второй части приводятся сведения по настройке с использованием специфической графической утилиты, характерной для дистрибутива openSUSE 10.2 . Эти части статьи можно читать независимо друг от друга : соответствующая общая информация продублирована в обеих частях.


Выясняем, установлены ли в системе пакеты sane и xsane . В консоли в режиме суперпользователя вводим команду:

# aptitude show sane xsane | more

Для каждого пакета смотрим строчку "Состояние". Если пакеты уже установлены, получаем сообщение об этом (листаем информацию клавишей "пробел"). В противном случае инсталлируем их командой:

# lsusb Bus 005 Device 009: ID 04b8:0120 Seiko Epson Corp. Bus 005 Device 007: ID 0566:3002 Monterey International Corp. Bus 005 Device 006: ID 09da:000a A4 Tech Co., Ltd Bus 005 Device 005: ID 05e3:0606 Genesys Logic, Inc. Bus 005 Device 001: ID 0000:0000 ...

В этом перечне сканер идет в первой строке. Важным параметром является его идентификатор (ID), который в данном случае имеет значение 04b8:0120 . Первое число (до двоеточия) дает код фирмы-производителя (англ. Vendor-ID ), второе - код самого устройства (англ. Product-ID ). Нужно запомнить эти значения, они будут важны при дальнейшей настройке.

Другой способ должен подтвердить, что сканер видит не только операционная система, но и пакет sane . Для этого вводим команду sane-find-scanner и получаем следующее сообщение:

# sane-find-scanner # sane-find-scanner will now attempt to detect your scanner. If the # result is different from what you expected, first make sure your # scanner is powered up and properly connected to your computer. # No SCSI scanners found. If you expected something different, make sure that # you have loaded a kernel SCSI driver for your SCSI adapter. # Also you need support for SCSI Generic (sg) in your operating system. # If using Linux, try "modprobe sg". found USB scanner (vendor=0x04b8 , product=0x0120 ) at libusb:005:009 # Your USB scanner was (probably) detected. It may or may not be supported by # SANE. Try scanimage -L and read the backend"s manpage. # Not checking for parallel port scanners. # Most Scanners connected to the parallel port or other proprietary ports # can"t be detected by this program.

Выделенная полужирным строка показывает, что найден сканер и выдает те же коды для него, что и команда lsusb .

Теперь нужно выяснить, в каком из дополнительных модулей к sane (такой модуль называется по англ. backend ) содержится драйвер для нашего сканера. Самый простой способ сделать это - посмотреть на сайте проекта sane по адресу http://www.sane-project.org/cgi-bin/driver.pl Нужно ввести модель принтера, а также коды производителя и устройства:

В качестве ответа будет список тех дополнительных модулей (backends) к sane , в которых имеется поддержка данного сканера. В нашем примере - это модуль SnapScan , версии которого, начиная с 1.4, "хорошо" поддерживают этот сканер.

Примечание. Выбор правильного дополнительного модуля (backend) крайне важен, поскольку в случае ошибки можно нанести непоправимый вред сканеру.

Большинство этих модулей находятся в пакете libsane , но для некоторых сканеров нужно будет дополнительно роинсталлировать пакет libsane-extras (подробнее посмотреть его описание можно командой aptitude show libsane-extras ).

Продолжаем изучать информацию на веб-странице проекта sane . Нажимаем на ссылку "SnapScan" в первом столбце и переходим на страницу , где приводится подробная информация о модуле snapscan :

Переходим к строке, в которой дана подробная информация о нашем сканере (Epson Perfection 1270 ). Здесь важным является то, что для корректной работы сканер требует предварительной загрузки в свою память специального бинарного программного обеспечения (firmware), которое идет на диске вместе со сканером и представляет собой файл под названием esfw3e.bin :

Где взять этот файл? В данном случае - для нашего конкретного примера - можно загрузить esfw3e.bin с нашего сайта. Для других сканеров имеет смысл вначале поискать бинарники в интернете, в случае неудачи - искать на фирменном диске. К сожалению, не всегда они присутствуют на диске явным образом - иногда они доступны лишь после инсталляции в операционной системе MS Windows, как правило - в директории C:\Windows\System32 . В случае острой необходимости можно произвести инсталляцию драйвера сканера в виртуальной машине с установленной там MS Windows или в эмуляторе wine , а потом извлечь оттуда бинарник.

Но как настроить нужный нам модуль (backend) даже при наличии бинарника? Первоначальную информацию о модуле можно найти в странице руководства sane , задав команду:

# man 7 sane

При описании модуля из нашего примера (snapscan ) в руководстве говорится о том, что он поддерживает конкретный тип сканеров (AGFA SnapScan flatbed scanners). Предлагается для более подробной информации посмотреть страницу руководства самого модуля. Что и делаем командой

# man sane-snapscan

Там можно прочитать, что конфигурационный файл данного модуля - /etc/sane.d/snapscan.conf и в нем надо сделать несколько исправлений: указать тип сканера (у нас - USB) и месторасположение бинарника. Бинарник предлагается размещать в директории /usr/share/sane/snapscan/ . Создадим такую директорию и скопируем в нее бинарник с помощью следующих команд:

# mkdir /usr/share/sane/snapscan # cd {путь к текущей директории с бинарником} # cp esfw3e.bin /usr/share/sane/snapscan/esfw3e.bin

Заметьте, при этом на файл esfw3e.bin выставлены такие права:

# ls -l /usr/share/sane/snapscan/esfw3e.bin -rw-r--r-- 1 root root 64000 2008-02-14 02:09 /usr/share/sane/snapscan/esfw3e.bin

Переходим к исправлению конфигурационного файла snapscan.conf . Предварительно делаем его резервную копию:

# cp /etc/sane.d/snapscan.conf /etc/sane.d/snapscan.conf.back1

Начинаем его редактировать (в любом редакторе - например, в nano ):

# nano /etc/sane.d/snapscan.conf

Прежде всего нужно изменить такую строчку:

Firmware /usr/share/sane/snapscan/your-firmwarefile.bin

После слова firmware нужно вписать реальные путь и название нашего бинарника. Поскольку мы скопировали его в директорию /usr/share/sane/snapscan/ , то в данной строке надо лишь заменить фиктивное имя your-firmwarefile.bin на имя нашего бинарника - esfw3e.bin . В результате получаем следующий вариант данной строки:

Firmware /usr/share/sane/snapscan/esfw3e.bin

Просмотр конфигурационного файла до конца показывает, что в нем нет описания нашего сканера (название, код производителя и устройства). Исправим ситуацию, добавив в конце файла такие строки:

#Epson Perfection 1270 usb 0x04b8 0x0120

Примечание. В некоторых дистрибутивах понадобится также раскомментировать строчку

# /dev/usb/scanner0 bus=usb добавив в нее конкретные параметры сканера: /dev/usb/scanner0 bus=usb 0x04b8 0x0120

Настройка завершена, но пока что со сканером можно работать только в режиме суперпользователя, что соответстсвует жесткой политике безопасности дистрибутива Debian, но не совсем удобно на обычном десктопе. Чтобы разрешить работу со сканером рядовым пользователям, добавляем их в группу scanner . Это можно сделать в консоли в режиме суперпользователя следующими командами:

# gpasswd -a {логин_пользователя} scanner Например, для пользователя, имеющего логин dmitry : # gpasswd -a dmitry scanner Добавление пользователя dmitry в группу scanner

Выходим из режима суперпользователя и проверяем под конкретным пользователем, произошло ли добавление в группу scanner , дав команду groups :

# exit exit login: dmitry Password: $ groups dmitry dialout cdrom floppy audio dip video plugdev scanner clamav vboxuse

Примечание . Если Вы работали не в текстовой консоли, а в консоли графической среды (например, konsole в KDE), нужно выйти из графической среды и снова войти, чтобы изменения вступили в силу.

Проверяем привязку модуля к сканеру:

$ scanimage -L device `snapscan:libusb:005:009" is a EPSON EPSON Scanner flatbed scanner

Если Вы видите подобную надпись - значит, сканер и его дополнительный модуль успешно идентифицированы, можно переходить к сканированию. Описание деталей этого процесса и полезные советы Вы можете найти на странице "Сканирование в GNU/Linux на примере Epson Perfection 1270 ". В противном случае (если scanimage ничего не находит) нужно внести дополнительные изменения в конфигурационный файл вспомогательного модуля.


Настройка сканера в openSUSE позволяет использовать специфичный для этого дистрибутива графический конфигуратор, что может быть психологически привычнее для пользователей, лишь недавно пересевших с MS Windows.

Проверяем, что в системе установлен пакет для работы со сканером sane и графическая оболочка к нему xsane

Вводим в консоли в режиме суперпользователя команды:

# rpm -q sane sane-1.0.18-34 # rpm -q xsane xsane-0.991-32 Если пакеты не установлены - устанавливаем их (Меню -> Система -> YaST -> ).

Затем подключаем сканер к компьютеру. Появляется информационное окно, в котором предлагается настроить сканер (см. рис. 1 ).


Рис. 1. Информационное окно при подключении нового сканера к компьютеру

Если окно не появилось автоматически, проверяем, видит ли система наш сканер: задаем в консоли команду lsusb :

> lsusb Bus 004 Device 001: ID 0000:0000 Bus 005 Device 009: ID 04b8:0120 Seiko Epson Corp. Bus 005 Device 008: ID 08ec:0016 M-Systems Flash Disk Pioneers ... Если имеется строчка с названием нашего сканера (как в данном случае: Seiko Epson Corp.), запускаем программу его настройки вручную: Меню -> Система -> YaST -> Оборудование -> Сканер .

Происходит поиск сканеров. Сканер обнаруживается системой, но оказывается не настроен (см. рис. 2 ).


Рис. 2. Сообщение о том, что сканер найден, но не настроен

Нажимаем "Редактировать", выбираем из двух предложенных драйверов для Epson Perfection 1270 тот, у которого написано: "Требуется выгрузка прошивки. Драйвер snapscan (пакет sane ) обеспечивает хорошую функциональность" и нажимаем "Далее" (рис. 3 ).


Рис. 3. Выбираем работающий вариант драйвера для сканера Epson Perfection 1270 (драйвер snapscan )

Появляется предупреждение о том, что прошивку надо взять из Windows-драйвера и посмотреть инструкцию по настройке через команду "man sane-snapscan" (рис. 4 ).


Рис. 4. Предупреждение о необходимости установки бинарной прошивки

В результирующем окне теперь видны по-прежнему ненастройнный наш сканер Epson Perfection 1270 и ненастроенный драйвер snapscan , который будет поддерживать сканер, если мы найдем и установим прошивку (т.е. высвечиваются по отдельности нужный нам сканер - но без драйвера, и нужный нам драйвер - но не ассоциированый со сканером) - см. рис. 5 .


Рис. 5. Драйвер и сканер пока еще не настроены - требуется прошивка

В этом окне, тем не менее, имеется ценная информация для последующей настройки драйвера: vendor ("производитель"): 0x04b8, product ("модель"): 0x0120. Эти сведения надо запомнить. Пока можно закрыть это окно.

Теперь надо где-то найти "прошивку" (загружаемый в память сканера бинарник) и связать с ней наш драйвер snapscan . Обычно бинарник имеет расширение .bin .

Для некоторых сканеров эти бинарники включены в пакеты iscan , iscan-firmware и iscan-proprietary-drivers , которые поставляется с openSUSE 10.2. Чтобы узнать, есть ли там бинарник для желаемой модели сканера, нужно всего лишь посмотреть описание этого пакета в YaST (Меню -> Система -> YaST -> Управление программным обеспечением , затем "Поиск ": имя пакета, см. закладку "Описание ") - см. рис. 6 .

Рис. 6. Информация о моделях сканеров, бинарники для которых представлены в пакете iscan

Если бинарник нужного сканера представлен в пакете, устанавливаем пакет.

Если доступа к компьютеру с установленной на нем MS Windows и инсталированным там сканером требуемой модели нет, то остается искать бинарник или на инсталляционном CD (но там он представлен в явном виде далеко не всегда), или в интернете. Для Epson Perfection 1270 бинарника прошивки на инсталляционном CD в явном виде нет, его можно загрузить отсюда: esfw3e.bin .

После того, как найден требуемый бинарник необходимо соответствующим образом настроить драйвер snapscan из программы sane , который будет обеспечивать работу нашего сканера. Подробную инструкцию можно прочитать, набрав в консоли:

>man sane-snapscan Из инструкции следует, что надо скопировать бинарник esfw3e.bin в директорию /usr/share/sane/snapscan и при этом изменить конфигурационный файл /etc/sane.d/snapscan.conf . Все это необходимо сделать с правами суперпользователя: > su Пароль: [вводим пароль] Копируем бинарник esfw3e.bin в указанную директорию: # cp {путь к директории с бинарником} /esfw3e.bin /usr/share/sane/snapscan/esfw3e.bin На всякий случай, сохраняем первоначальную версию конфигурационного файла snapscan.conf под именем snapscan.conf.back : # cp /etc/sane.d/snapscan.conf /etc/sane.d/snapscan.conf.back Редактируем snapscan.conf : # kate /etc/sane.d/snapscan.conf Необходимо строку firmware /usr/share/sane/snapscan/your-firmwarefile.bin отредактировать так: firmware /usr/share/sane/snapscan/esfw3e.bin и в конце файла добавить такие строки относительно нашего сканера (информацию о производителе и модели мы запомнили чуть выше): #Epson Perfection 1270 usb 0x04b8 0x0120 Сохраняем файл (Ctrl-S ). Выходим из него.

Запускаем опять Меню -> YaST -> Оборудование -> Сканер . Получаем настроенный на драйвер snapscan сканер Epson Perfection 1270 (см. рис. 7 ).

Рис. 7. Настроенный сканер Epson Perfection 1270 под openSUSE 10.2

Теперь сканер полностью настроен. Можно переходить к сканированию. Описание деталей и полезные советы Вы можете найти на странице "