The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Организация сетевого доступа сотрудников офиса к сканеру (scanner hardware driver linux)


<< Предыдущая ИНДЕКС Правка src Установить закладку Перейти на закладку Следующая >>
Ключевые слова: scanner, hardware, driver, linux,  (найти похожие документы)
From: Уланов Дмитрий Валентинович <dmb1@newmail.ru.> Newsgroups: email Date: Mon, 08 Aug 2005 14:31:37 +0000 (UTC) Subject: Организация сетевого доступа сотрудников офиса к сканеру Как сделать сканер сетевым. Задача: Сделать так чтоб любой сотрудник фирмы мог сам сканировать себе документы. Доступ к отсканированным файлам осуществлять через сеть. Имеем: * Сканер, поддерживаемый программой sane (смотреть здесь: http://www.sane-project.org/sane-backends.html ). * Старый древний компьютер с сетевой картой и приличным жестким диском. на время настройки подключаем монитор и CD-ROM(после их можно убрать) Шаг 1. Устанавливаем Linux. C пакетами samba и sane-backends. С поддержкой сети. Шаг 2. Настраиваем самбу так чтоб обеспечить доступ из сети к какому-нибудь каталогу (например: /common). Смотрите соответствующие доки по самбе. Шаг 3. Подключаем сканер к компьютеру. Смотрите соответствующие доки по сканерам. Например сканер был подключен как: /dev/usb/scanner0 Проверяем работу сканера командой: scanimage -d hp:/dev/usb/scanner0 --format tiff > /common/test01.tiff ,где hp:/dev/usb/scanner0 - имя сканер в моей системе. После выполнения этой команды в каталоге /common появляется файл test01.tiff И если вы правильно настроили самбу его можно открыть из сети. Шаг 4. Создаем в текстовом редакторе управляющую программу autoscanner.c: #include <curses.h> #include <stdio.h> #include <sys/types.h> #include <fcntl.h> #include <sys/stat.h> #include <linux/kd.h> #include <sys/ioctl.h> #include <time.h> int main() { char command_str[500]; int c; time_t t; struct tm tim; int fd = open("/dev/console",O_RDONLY); //системный динамик initscr(); // подготавливаем дисплей timeout(-1); noecho(); cbreak(); keypad(stdscr,TRUE); do{ c = getch(); //ждем нажатия клавиши time(&t); // текущее время localtime_r(&t,&tim); // преобразуем в человеческий формат switch(c) { case 10: // клавиша "Enter" case 49: // клавиша "1" case 360: // клавиша "1" на стрелочках sprintf(command_str, "scanimage -d hp:/dev/usb/scanner0 --format tiff > /common/%04d_%02d_%02d_%02d_%02d_%02d.tiff", tim.tm_year+1900,tim.tm_mon+1,tim.tm_mday,tim.tm_hour,tim.tm_min,tim.tm_sec); system(command_str); //сканируем sleep(11); //ждем пока сканер вернет //каретку (подбираем время экспериментально) ioctl(fd,KDMKTONE,(600<<16)+1190); // бикаем динамиком break; case 50: // клавиша "2" case 258: // клавиша "2" на стрелочках sprintf(command_str, "scanimage -d hp:/dev/usb/scanner0 --format tiff --mode Color > /common/%04d_%02d_%02d_%02d_%02d_%02d.tiff", tim.tm_year+1900,tim.tm_mon+1,tim.tm_mday,tim.tm_hour,tim.tm_min,tim.tm_sec); system(command_str); sleep(11); ioctl(fd,KDMKTONE,(600<<16)+1190); break; default; // бикаем динамиком если клавиша неизвестна ioctl(fd,KDMKTONE,(200<<16)+1190); } timeout(0); // снимаем режим ожидания нажатия клавиши while (getch()!=ERR) ; // вычищаем буфер клавиатуры, если успели понажимать на кнопки timeout(-1); // включаем режим ожидания нажатия клавиши }while(c!=101); // клавиша "Е" - Выход из программы, можно убрать чтоб // пользователи случайно не нажали endwin(); // при выходе возвращаем дисплей в исходное состояние } компилим ее: gcc autoscanner.c -o autoscanner -lncurses копируем в общий каталог: cp autoscanner /bin/ и запускаем: autoscanner при нажатии клавиши "1" или "Enter" сканируется чернобелое изображение "2" сканируется цветное изображение. "E" - выход из программы. Шаг 5. 1. Cоздаем пользователя scanner и задаем ему какой-нибудь пароль: adduser scanner passwd scanner какой-нибудь пароль 2. Создаем файл autologin.c в любом текстовом редакторе: int main() { execlp("login", "login", "-f", "scanner", 0); } 3. Компилируем: gcc -o autologin autologin.c 4. Копируем в общий каталог cp autologin /bin/ 5. Редактируем /etc/inittab. Вместо сточки: 1:2345:respawn:/sbin/mingetty tty1 Вбиваем строку 1:2345:respawn:/sbin/аgetty -n -l /bin/autologin 38400 tty1 6. Перезагружаемся. Компьютер должен запуститься под именем scanner автоматически. Если нет - ищем ошибку. 7. добавляем в конец файла /home/scanner/.bash_profile команду autoscanner 8. Перезагружаемся. После перезагрузки система должна залогиниться под именем пользователя scanner и запустить программу autoscanner. Шаг 6 (необязательный) Чтобы на диске не скапливалось ненужных файлов организуем еженочную очистку диска: crontab -e Вводим 5 0 * * * rm -f /common/* Таким образом в 00 часов 05 минут каждой ночью будет очищаться содержимое каталога /common Шаг 7. Еще раз все проверяем. Отключаем монитор и выставляем все в место общего пользования. Удачи. p.s. Этот текст был разослан всем пользователям сети нашей фирмы: Уважаемые коллеги! У нас появился сетевой сканер. Теперь каждый может САМ сканировать себе документы. Инструкция по использованию. 1. Положите в сканер оригинал документа. 2. Нажмите на клавиатуре: - "Ввод" или цифру "1" - если необходимо получить черно-белую копию - цифру "2" - если необходимо получить цветную копию. 3. И ждем. Отсканировав компьютер пискнет. Идете на рабочее место и подключаетесь к сетевому диску (или просите подключить администратора): \\scanner\common все отсканированные изображения храняться на этом диске. Название у файлов такое: год_месяц_число_час_минута_секунда Рекомендуем сразу забирать свои файлы с сетевого диска. Каждый вечер все "забытые" файлы автоматически удаляются. p.s. Все документы сканируются с максимальным размером и максимальным разрешением. Т.е. файлы получаются большими. Не вздумайте посылать их по почте. Так что осваивайте графические редакторы :-) автор: Уланов Дмитрий Валентинович <dmb1@newmail.ru.> 2005 г.

<< Предыдущая ИНДЕКС Правка src Установить закладку Перейти на закладку Следующая >>

Обсуждение [ Линейный режим | Показать все | RSS ]
  • 1.1, kern (??), 19:19, 08/08/2005 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Молодца :)
    Давно искал реализации подобной фичи.

    Ещё можно подумать о реализации remote интерфейса, для запуска сканирования по net-message/письму

     
     
  • 2.2, Nick (??), 08:23, 09/08/2005 [^] [^^] [^^^] [ответить]  
  • +/
    >Ещё можно подумать о реализации remote интерфейса, для запуска сканирования по net-message/письму

    Ага, чтобы сканируемый документ тоже в письме/net-message прилетал. :)

     

  • 1.3, Greeny (??), 10:36, 09/08/2005 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Да... Вот еще бы оригинал в сканер тоже письмом...
     
  • 1.4, denixa (??), 11:42, 09/08/2005 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Все гениальное просто. Молодец. Красиво все выглядит. А как в работе. Народ доволен?
     
  • 1.5, tim (??), 13:05, 09/08/2005 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Огромное спасибо!
     
  • 1.6, sav (??), 12:02, 10/08/2005 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Очень сложно!
    Гораздо проще купить сканер с кнопкой "сканирование" и расшарить на виндовом компьютере, куда он подключен, папку "Мои документы/Мои рисунки"
    Подскажите, как сделать сетевой сканер с удаленным интерфейсом управления параметрами сканера и передачи изображения в мою программу.
     
     
  • 2.7, Praporshik (?), 23:55, 01/10/2005 [^] [^^] [^^^] [ответить]  
  • +/
    Угумс, заплатить за покупку отдельного компа для подключения сетевого сканера, плюс за винды, плюс за антивирус, и т.д. и т.п. А так подключаем к работающему файл-серверу сканер и не парим мозги.
     

  • 1.8, McLone (?), 03:56, 02/10/2005 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    хы, прульки на Цэ... Я б на Перле такое писал.... Но все равно интересно. Еще только клаву осталось похакать (ножовкой по металлу)
     
  • 1.9, petr999 (?), 10:03, 16/11/2005 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    есть уже давно и saned и sanetwain и даже xsane/win32, зачем выдумывать?
     
  • 1.10, Supaflyster (?), 16:55, 21/12/2006 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Немного переделанная autoscanner c по клавише 1 - сканируем в JPG, 2 - в PDF... большой текст свёрнут, показать
     
  • 1.11, Аноним (-), 09:11, 14/03/2008 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Извращенцы, купите HP Digital Sender!
     
  • 1.12, ripko (?), 17:25, 20/03/2008 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Идея отличная.
    сейчас уже появилась программа для перехвата управления кнопками самого сканера под линух.
    называется scanbuttond.
    под FreeBSD не смог заставить найти свой сканер, хотя под Suse всё заработало на ура.
    http://gentoo-wiki.com/Scanner_buttons_and_one-touch_scanning#one-touch_scan
     

     Добавить комментарий
    Имя:
    E-Mail:
    Заголовок:
    Текст:




    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру