sane-bh(5) SANE: ,,Scanner Access Now Easy" sane-bh(5) NUME sane-bh - controlor SANE pentru scanerele de documente Bell+Howell din seria Copiscan II DESCRIERE Biblioteca sane-bh implementeaza un controlor SANE (Scanner Access Now Easy) care ofera acces la scanerele de documente din seria Bell+Howell Copiscan II. Copiscan II 6338 a fost modelul principal de scaner utilizat in timpul dezvoltarii i testarii, dar deoarece interfaa de programare pentru intreaga serie este consecventa, controlorul ar trebui sa funcioneze pentru urmatoarele modele de scaner: COPISCAN II 6338 - Scaner duplex cu ACE COPISCAN II 2135 - Scaner simplu COPISCAN II 2137(A) - Scaner simplu (cu ACE) COPISCAN II 2138A - Scaner simplu cu ACE COPISCAN II 3238 - Scaner simplu COPISCAN II 3338(A) - Scaner simplu (cu ACE) Daca avei un scaner Bell+Howell i putei sa il testai cu acest controlor va rugam sa contactai sane-devel@alioth-lists.debian.net cu numarul modelului i rezultatele testarii. Aruncai o privire la http://www.sane-project.org/mailing-lists.html cu privire la abonarea la sane-devel. In plus, autorul este curios cu privire la probabilitatea de a utiliza acest controlor cu scanerele mai noi din seriile 4000 i 8000. Daca avei o astfel de ,,bestie", va rog sa-mi spunei. Scanerele de documente Bell+Howell din seria Copiscan II sunt scanere de volum mare, cu randament ridicat, concepute pentru aplicaii de scanare a documentelor. Ca atare, acestea sunt scanere lineare/in scara de gri care accepta un numar fix de rezoluii destul de scazute (de exemplu, 200/240/300 dpi). Cu toate acestea, ele dispun de o serie de caracteristici interesante i utile, adaptate nevoilor aplicaiilor de procesare a imaginilor din documente. Acest controlor incearca sa asigure suport pentru cat mai multe dintre aceste caracteristici. Principala referina tehnica utilizata la scrierea acestui controlor este Bell and Howell Copiscan II Remote SCSI Controller (RSC) OEM Technical Manual Version 1.5. HOWTO-ul de programare Linux SCSI, documentaia SANE API i codul sursa SANE au fost, de asemenea, resurse extrem de valoroase. Cea mai recenta versiune a controlorului, informaii suplimentare i sfaturi utile sunt disponibile pe pagina principala a controlorului: http://www.martoneconsulting.com/sane-bh.html NUME DE DISPOZITIVE Acest controlor ateapta nume de dispozitive de forma: special Unde special este numele de ruta pentru dispozitivul special care corespunde unui scaner SCSI. In cazul scanerelor SCSI, numele dispozitivului special trebuie sa fie un dispozitiv SCSI generic sau o legatura simbolica catre un astfel de dispozitiv. In Linux, un astfel de nume de dispozitiv are un format ca /dev/sga sau /dev/sg0, de exemplu. Pentru detalii, consultai sane-scsi(5). OPIUNI Opiuni pentru modul de scanare: --preview[=(yes|no)] [no] Solicita o scanare cu calitate de previzualizare. Atunci cand previzualizarea este stabilita la ,,yes", compresia imaginii este dezactivata i imaginea este livrata intr-un cadru SANE_FRAME_GRAY. --mode lineart|halftone [lineart] Selecteaza modul de scanare (de exemplu, lineart (desen grafic), monocrom sau color). --resolution 200|240|300dpi [200] Stabilete rezoluia imaginii scanate. Fiecare model de scaner accepta o lista de rezoluii standard; numai aceste rezoluii pot fi utilizate. --compression none|g31d|g32d|g42d [none] Stabilete modul de compresie al scanerului. Determina tipul de date returnate de scaner. Valorile sunt: none - date necomprimate - livrate intr-un cadru SANE_FRAME_GRAY g31d - CCITT G3 1 dimension (MH) - livrate intr-un cadru SANE_FRAME_G31D g32d - CCITT G3 2 dimensions (MR, K=4) - livrate intr-un cadru SANE_FRAME_G32D g42d - CCITT G4 (MMR) - livrate intr-un cadru SANE_FRAME_G42D NOTA: Utilizarea valorilor de compresie g31d, g32d i g42d determina controlorul sa genereze formate de cadre opionale care pot sa nu fie acceptate de toate interfeele SANE. Opiuni geometrie: --autoborder[=(yes|no)] [yes] Activeaza/dezactiveaza detectarea automata a marginii imaginii. Atunci cand este activata, unitatea RSC detecteaza automat zona imaginii i ajusteaza geometria ferestrei pentru a se potrivi. --paper-size Custom|Letter|Legal|A3|A4|A5|A6|B4|B5 [Custom] Specifica geometria ferestrei de scanare prin specificarea dimensiunii hartiei documentelor care urmeaza sa fie scanate. --tl-x 0..297.18mm [0] Poziia x din stanga-sus a zonei de scanare. --tl-y 0..431.8mm [0] Poziia y din stanga-sus a zonei de scanare. --br-x 0..297.18mm [297.18] Poziia x din dreapta-jos a zonei de scanare. --br-y 0..431.8mm [431.8] Poziia y din dreapta-jos a zonei de scanare. Opiuni pentru alimentator: --source Automatic Document Feeder|Manual Feed Tray [Automatic Document Feeder] Selecteaza sursa de scanare (cum ar fi un alimentator de documente). Aceasta opiune este oferita pentru a permite scanarea mai multor imagini cu xsane(1); nu are alt scop. --batch[=(yes|no)] [no] Activeaza/dezactiveaza scanarea in modul lot. Modul lot permite scanarea la capacitate maxima prin stocarea datelor in memoria tampon din unitatea RSC. Aceasta opiune este recomandata la scanarea mai multor pagini pana cand alimentatorul este golit. --duplex[=(yes|no)] [no] Activeaza scanarea duplex (faa-verso). Scanerul capteaza o imagine a fiecarei fee a documentului in timpul unei singure treceri prin scaner. Prima pagina este livrata urmata de pagina din spate. Majoritatea opiunilor, cum ar fi compresia, afecteaza atat pagina din faa, cat i cea din spate. --timeout-adf 0..255 [0] Stabilete timpul de ateptare in secunde pentru alimentatorul automat de documente (ADF). Valoarea 0 specifica valoarea implicita hardware care variaza in funcie de modelul scanerului. --timeout-manual 0..255 [0] Stabilete timpul de ateptare in secunde pentru alimentatorul semiautomat. Valoarea 0 specifica valoarea implicita hardware care variaza in funcie de modelul scanerului. --check-adf[=(yes|no)] [no] Verifica starea ADF inainte de a incepe scanarea utilizand comanda OBJECT POSITION (Poziia obiectului). Reinei ca aceasta funcie necesita nivelul de firmware RSC 1.5 sau mai mare i comutatorul dip 4 trebuie sa fie in poziia pornit. NOTA: Aceasta opiune nu a fost testata extensiv i poate produce rezultate nedorite. Imbunataire: --control-panel[=(yes|no)] [yes] Activeaza panoul de control al scanerului pentru selectarea parametrilor de imbunataire a imaginii. Atunci cand opiunea este stabilita la ,,no", urmatoarele opiuni sunt utilizate pentru a controla imbunatairea imaginii. Consultai ghidul de utilizare a scanerului Bell+Howell pentru informaii complete privind funcionalitatea ACE. --ace-function -4..4 [3] Specifica funcia de imbunataire automata a contrastului (,,Automatic Contrast Enhancement": ACE). --ace-sensitivity 0..9 [5] Specifica sensibilitatea imbunatairii automate a contrastului (ACE). --brightness 0..255 [0] Controleaza luminozitatea imaginii achiziionate. Ignorata pentru scanerele compatibile ACE. --threshold 0..255 [0] Selecteaza luminozitatea minima pentru a obine un punct alb. Ignorata pentru scanerele compatibile ACE. --contrast 0..255 [inactive] Controleaza contrastul imaginii achiziionate. Aceasta opiune nu este utilizata in prezent de scaner (i poate ca nu va fi niciodata). --negative[=(yes|no)] [no] Interschimba albul i negrul, obinand o imagine video inversa. Pictograma: --icon-width 0..3600pel (in pai de 8) [0] Laimea imaginii pictogramei (miniaturii) in pixeli. --icon-length 0..3600pel (in pai de 8) [0] Lungimea imaginii pictogramei (miniaturii) in pixeli. Opiuni cod de bare: --barcode-search-bar [none] Specifica tipul de cod de bare care trebuie cautat. Daca aceasta opiune nu este specificata sau este specificata cu o valoare de ,,none" (niciunul), funcia de decodificare a codurilor de bare este complet dezactivata. Tipurile de coduri de bare valide sunt: none ean-8 ean-13 reserved-ean-add code39 code2-5-interleaved code2-5-3lines-matrix code2-5-3lines-datalogic code2-5-5lines-industrial patchcode codabar codabar-with-start-stop code39ascii code128 code2-5-5lines-iata --barcode-search-count 1..7 [3] Numarul de ori in care RSC efectueaza algoritmul de decodificare. Specificai cel mai mic numar posibil pentru a crete performana. Daca avei probleme cu recunoaterea codurilor de bare, se sugereaza sa marii aceasta opiune la valoarea maxima (7). --barcode-search-mode [horiz-vert] Alege orientarea codurilor de bare care urmeaza sa fie cautate. Orientarile valide sunt: horiz-vert horizontal vertical vert-horiz --barcode-hmin 0..1660mm [5] Stabilete inalimea minima a codului de bare in milimetri (valorile mai mari cresc viteza de recunoatere). Desigur, codurile de bare reale din document trebuie sa aiba dimensiuni suficiente. --barcode-search-timeout 20..65535us [10000] Stabilete timpul limita pentru cautarea codurilor de bare in milisecunde. Cand expira timpul de ateptare, decodificatorul nu va mai incerca sa decodifice coduri de bare. --section <ir> [] Specifica o serie de seciuni de imagine. O seciune poate fi utilizata pentru a colecta un subset de imagini sau pentru a oferi o zona mica pentru decodificarea codurilor de bare. Fiecare seciune este specificata in urmatorul format (unitaile sunt in milimetri): ime>xime>++[: cod-funcie...] Mai multe seciuni pot fi specificate prin separarea lor cu virgule. De exemplu, 76.2x25.4+50.8+0:frontbar identifica o zona de 3 inch laime i 1 inch inalime, cu un col stanga sus in partea de sus a paginii, la doi inch de marginea stanga a paginii. Aceasta seciune va fi utilizata pentru decodificarea codurilor de bare numai pe prima pagina. De exemplu, 50.8x25.4+25.4+0:frontbar:front:g42d identifica o zona de 2 inci laime i 1 inci inalime, cu un col stanga sus in partea de sus a paginii, la un inci de marginea stanga a paginii. Aceasta seciune va fi utilizata pentru decodificarea codurilor de bare pe prima pagina, precum i pentru generarea unei imagini comprimate in format g42d. In mod normal, codurile de bare sunt cautate in intreaga imagine. Cu toate acestea, atunci cand specificai seciuni, toate cautarile codurilor de bare se fac in seciunile specifice identificate. Acest lucru poate accelera semnificativ procesul de decodificare. Sunt disponibile urmatoarele coduri de funcie: front - genereaza o imagine pentru seciunea din faa a paginii back - genereaza o imagine pentru seciunea din partea din spate a paginii frontbar - efectueaza cautarea codului de bare in seciunea din faa a paginii backbar - efectueaza cautarea codului de bare in seciunea din partea din spate a paginii frontpatch - efectueaza cautarea de patchcode in seciunea din faa a paginii frontpatch - efectueaza cautarea de patchcode in seciunea din partea din spate a paginii none - nu utilizeaza compresia imaginii g31d - utilizeaza compresia unidimensionala a imaginii grupului 3 g31d - utilizeaza compresia bidimensionala a imaginii grupului 3 g42d - utilizeaza compresia bidimensionala a imaginii grupului 4 Daca omitei un cod de funcie de compresie, se utilizeaza valoarea de compresie a paginii complete. Daca specificai mai multe coduri de funcie de compresie, se utilizeaza numai ultimul. --barcode-relmax 0..255 [0] Specifica relaia maxima de la bara cea mai lata la cea mai ingusta. --barcode-barmin 0..255 [0] Specifica numarul minim de bare din codul Bar/Patch. --barcode-barmax 0..255 [0] Specifica numarul maxim de bare dintr-un cod Bar/Patch. --barcode-contrast 0..6 [3] Specifica contrastul imaginii utilizat in decodificare. Utilizai valori mai mari atunci cand exista mai muli pixeli albi in cod. --barcode-patchmode 0..1 [0] Controleaza detectarea codului de bare-patch. CONFIGURARE Coninutul fiierului bh.conf este o lista de nume de dispozitive care corespund scanerelor Bell+Howell. Consultai sane-scsi(5) pentru detalii despre ce constituie un nume de dispozitiv valid. In plus, pot fi specificate opiuni; aceste linii incep cu cuvantul ,,option". Fiecare opiune este descrisa in detaliu mai jos. Liniile goale i liniile care incep cu un simbol hash (#) sunt ignorate. OPIUNI Urmatoarele opiuni pot fi specificate in fiierul bh.conf: disable-optional-frames Aceasta opiune impiedica controlorul sa trimita orice cadre opionale. Aceasta opiune poate fi utila in cazul interfeelor care nu accepta aceste cadre opionale. Atunci cand aceasta opiune este in vigoare, datele sunt trimise intr-un cadru SANE_FRAME_GRAY. Cadrele opionale trimise de acest controlor sunt: SANE_FRAME_G31D, SANE_FRAME_G32D, SANE_FRAME_G42D i SANE_FRAME_TEXT. Aceste cadre sunt generate pe baza opiunilor de compresie i cod de bare. Aceste cadre nu sunt niciodata trimise in modul previzualizare. fake-inquiry Aceasta opiune este utilizata in scopuri de depanare i utilizarea sa nu este incurajata. In esena, permite controlorului sa se iniializeze in absena unui scaner. Acest lucru este util pentru dezvoltare i nu prea multe altele. Aceasta opiune trebuie sa fie specificata mai inainte in fiierul de configurare de dispozitivele care urmeaza sa fie ,,falsificate". FIIERE /etc/sane.d/bh.conf Fiierul de configurare al controlorului (a se vedea, de asemenea, descrierea SANE_CONFIG_DIR de mai jos). /usr/lib/sane/libsane-bh.a Biblioteca statica care implementeaza acest controlor. /usr/lib/sane/libsane-bh.so Biblioteca partajata care implementeaza acest controlor (prezenta pe sistemele care accepta incarcare dinamica). MEDIU SANE_CONFIG_DIR Aceasta variabila de mediu specifica lista de directoare care pot conine fiierul de configurare. In sistemele *NIX, directoarele sunt separate prin doua puncte (,,:"), in OS/2, ele sunt separate prin punct i virgula (,,;"). Daca aceasta variabila nu este definita, fiierul de configurare este cautat in doua directoare implicite: mai intai, in directorul de lucru curent (,,.") i apoi in /etc/sane.d. Daca valoarea variabilei de mediu se termina cu caracterul de separare a directoarelor, atunci directoarele implicite sunt cautate dupa directoarele specificate explicit. De exemplu, daca se definete SANE_CONFIG_DIR la ,,/tmp/config:", se vor cauta (in aceasta ordine) directoarele tmp/config, . i /etc/sane.d. SANE_DEBUG_BH Daca biblioteca a fost compilata cu suportul de depanare activat, aceasta variabila de mediu controleaza nivelul de depanare pentru acest controlor. De exemplu, o valoare de 255 solicita imprimarea tuturor datelor de depanare. Nivelurile mai mici reduc volumul de informaii. CARACTERISTICI ACCEPTATE Suport ADF In cazul scanerelor de documente, suportul pentru alimentatorul automat de documente (ADF) este o caracteristica eseniala. Controlorul accepta in mod implicit ADF-ul i returneaza SANE_STATUS_NO_DOCS atunci cand este detectata condiia de ieire din hartie. Interfaa SANE scanadf(1) este o interfaa de linie de comanda care accepta scanari de mai multe pagini. Aceasta a fost utilizata cu succes cu acest controlor. Interfaa SANE xsane(1) este o interfaa GUI imbunataita de Oliver Rauch. Suportul pentru scanari multipagina este inclus in <> versiunea 0.35 i versiunile ulterioare. Scanare duplex Unele modele, cum ar fi COPISCAN II 6338, accepta scanarea duplex. Adica, acestea scaneaza ambele pari ale documentului in timpul unei singure treceri prin scaner (scanerul are doua camere). Acest controlor permite scanarea duplex (cu opiunea --duplex). Imaginile de pe prima i a doua pagina sunt livrate consecutiv, ca i cum ar fi fost pagini scanate separat. Compresie hardware Scanerul este capabil sa comprime datele in mai multe formate standard industriale (CCITT G3, CCITT G3-2D, CCITT G4). Acest lucru duce la creterea performanei, deoarece mai puine date sunt transmise de la scaner la gazda pe magistrala SCSI. Controlorul accepta aceste formate de compresie prin opiunile --g31d, --g32d, --g42d, respectiv. Cu toate acestea, multe interfee SANE nu sunt echipate pentru a face faa acestor formate. Interfaa SANE scanadf(1) accepta aceste formate de cadre opionale. Datele imaginii comprimate sunt scrise direct intr-un fiier i pot fi apoi prelucrate de un scan-script folosind opiunea --scan-script. Pe pagina de pornire scanadf(1) sunt oferite exemple in acest sens. Detectarea automata a marginilor Scanerul poate detecta automat dimensiunea hartiei i poate ajusta corespunzator geometria ferestrei de scanare. Controlorul accepta aceasta caracteristica utila cu opiunea --autoborder. Aceasta este activata in mod implicit. Scanare in mod lot Modul de scanare pe loturi permite un randament maxim. Parametrii ferestrei configurate trebuie sa ramana constani pe parcursul intregului lot. Generarea de pictograme Funcia Icon genereaza o miniatura a imaginii intregii pagini, care poate fi transferata ca i cum ar fi o pagina separata. Acest lucru permite gazdei sa afieze rapid o reprezentare in miniatura in timpul operaiei de scanare. Poate ca aceasta ar fi o modalitate excelenta de a implementa o scanare cu previzualizare, dar, deoarece o scanare normala este atat de rapida, s-ar putea sa nu merite osteneala. Seciuni multiple Mai multe seciuni (subferestre de scanare) pot fi definite pentru prima i ultima pagina. Fiecare seciune poate avea caracteristici diferite (de exemplu, geometrie, compresie). Seciunile sunt returnate ca i cum ar fi fost imagini scanate separat. In plus, seciunile pot fi utilizate pentru a spori considerabil precizia i eficiena procesului de decodificare a codurilor de bare/patchcode-urilor prin limitarea zonei de cautare la o mica parte a paginii. Majoritatea scanerelor din seria Copiscan II accepta pana la 8 seciuni definite de utilizator. Suport pentru decodificarea codurilor de bare/patchcode Unitatea RSC poate recunoate coduri de bare i patchcode-uri de diferite tipuri incorporate in imaginea scanata. Codurile sunt decodificate, iar datele sunt returnate catre interfaa sub forma unui cadru de text. Textul este codificat in xml i conine o mulime de informaii despre datele decodificate, cum ar fi locul in care au fost gasite, orientarea lor i timpul necesar pentru a le gasi. Informaii suplimentare privind coninutul acestui cadru de text, precum i cateva exemple de decodificare a codurilor de bare pot fi gasite pe pagina principala a controlorului. LIMITARI Decodificarea unui singur tip de cod de bare per scanare Unitatea RSC poate cauta simultan pana la ase tipuri diferite de coduri de bare. Dei codul accepta, in general, i acest lucru, opiunea --barcode-search-bar permite utilizatorului sa specifice doar un singur tip de cod de bare. Poate ca o alta opiune care sa permita o lista de coduri de tip cod de bare separate prin virgule ar putea fi adaugata pentru a rezolva aceasta problema. Scanarea unui numar fix de pagini in modul lot Separarea dintre funcionalitatea frontala (de interfaa cu utilizatorul) i cea din spate (controlorul) in SANE prezinta o problema in ceea ce privete susinerea funcionalitaii ,,anulare lot" in scaner. In modul lot, scanerul este intotdeauna cu o pagina inaintea gazdei. Gazda, tiind dinainte care pagina va fi ultima, poate anula modul lot inainte de iniierea ultimei comenzi de scanare. In prezent, nu exista niciun mecanism disponibil pentru ca interfaa sa transmita aceste informaii catre controlor. Daca modul lot este activat i --end-count incheie o sesiune scanadf(1), o pagina suplimentara va fi scoasa prin scaner, dar nu va fi nici citita, nici transmisa catre interfaa. Problema poate fi evitata prin specificarea --batch=no la scanarea unui numar fix de pagini. Revizia 1.2 Patch detector Exista un algoritm imbunatait de detectare a patchcode-urilor disponibil in RSC cu versiunea 1.2 sau superioara, care este mai rapid i mai fiabil decat decodorul standard de coduri de bare/patchcode-uri. Acesta nu este acceptat in prezent. ERORI Rapoartele detaliate despre erori sunt binevenite -- i ateptate ;) Daca ai gasit ceva care credei ca este o eroare, va rugam sa incercai sa o recreai cu variabila de mediu SANE_DEBUG_BH stabilita la 255 i sa trimitei un raport care sa detalieze condiiile in care s-a produs eroarea la sane-devel@alioth-lists.debian.net. CONSULTAI I sane(7), sane-scsi(5), scanimage(1), scanadf(1), xsane(1) AUTOR controlorul sane-bh a fost scris de Tom Martone, pe baza controlorului sane-ricoh(5) de Feico W. Dillema i a programului <> de Sean Reifschneider de la tummy.com ltd. Aproximativ 8000 de imbunatairi adaugate de Mark Temple. TRADUCERE Traducerea in limba romana a acestui manual a fost facuta de Remus- Gabriel Chelu Aceasta traducere este documentaie gratuita; citii Licena publica generala GNU Versiunea 3 sau o versiune ulterioara cu privire la condiii privind drepturile de autor. NU se asuma NICIO RESPONSABILITATE. Daca gasii erori in traducerea acestui manual, va rugam sa trimitei un e-mail la . 10 iulie 2008 sane-bh(5)