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 implementează un controlor SANE (Scanner Access Now Easy) care oferă acces la scanerele de documente din seria Bell+Howell Copiscan II. Copiscan II 6338 a fost modelul principal de scaner utilizat în timpul dezvoltării și testării, dar deoarece interfața de programare pentru întreaga serie este consecventă, controlorul ar trebui să funcționeze pentru următoarele modele de scaner:
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)
Dacă aveți un scaner Bell+Howell și puteți să îl testați cu acest controlor vă rugăm să contactați sane-devel@alioth-lists.debian.net cu numărul modelului și rezultatele testării. Aruncați o privire la http://www.sane-project.org/mailing-lists.html cu privire la abonarea la sane-devel. În plus, autorul este curios cu privire la probabilitatea de a utiliza acest controlor cu scanerele mai noi din seriile 4000 și 8000. Dacă aveți o astfel de „bestie”, vă rog să-mi spuneți.
Scanerele de documente Bell+Howell din seria Copiscan II sunt scanere de volum mare, cu randament ridicat, concepute pentru aplicații de scanare a documentelor. Ca atare, acestea sunt scanere lineare/în scară de gri care acceptă un număr fix de rezoluții destul de scăzute (de exemplu, 200/240/300 dpi). Cu toate acestea, ele dispun de o serie de caracteristici interesante și utile, adaptate nevoilor aplicațiilor de procesare a imaginilor din documente. Acest controlor încearcă să asigure suport pentru cât mai multe dintre aceste caracteristici.
Principala referință tehnică utilizată 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, documentația SANE API și codul sursă SANE au fost, de asemenea, resurse extrem de valoroase.
Cea mai recentă versiune a controlorului, informații
suplimentare și sfaturi utile sunt disponibile pe pagina
principală a controlorului:
NUME DE DISPOZITIVE¶
Acest controlor așteaptă nume de dispozitive de forma:
Unde special este numele de rută pentru dispozitivul special care corespunde unui scaner SCSI. În cazul scanerelor SCSI, numele dispozitivului special trebuie să fie un dispozitiv SCSI generic sau o legătură simbolică către un astfel de dispozitiv. În Linux, un astfel de nume de dispozitiv are un format ca /dev/sga sau /dev/sg0, de exemplu. Pentru detalii, consultați sane-scsi(5).
OPȚIUNI¶
- Opțiuni pentru modul de scanare:
- --preview[=(yes|no)] [no]
- Solicită o scanare cu calitate de previzualizare. Atunci când previzualizarea este stabilită la „yes”, compresia imaginii este dezactivată și imaginea este livrată într-un cadru SANE_FRAME_GRAY.
- --mode lineart|halftone [lineart]
- Selectează modul de scanare (de exemplu, lineart (desen grafic), monocrom sau color).
- --resolution 200|240|300dpi [200]
- Stabilește rezoluția imaginii scanate. Fiecare model de scaner acceptă o listă de rezoluții standard; numai aceste rezoluții pot fi utilizate.
- --compression none|g31d|g32d|g42d [none]
- Stabilește modul de compresie al scanerului. Determină tipul de date returnate de scaner. Valorile sunt:
none - date necomprimate - livrate într-un cadru SANE_FRAME_GRAY
g31d - CCITT G3 1 dimension (MH) - livrate într-un cadru SANE_FRAME_G31D
g32d - CCITT G3 2 dimensions (MR, K=4) - livrate într-un cadru SANE_FRAME_G32D
g42d - CCITT G4 (MMR) - livrate într-un cadru SANE_FRAME_G42D
NOTĂ: Utilizarea valorilor de compresie g31d, g32d și g42d determină controlorul să genereze formate de cadre opționale care pot să nu fie acceptate de toate interfețele SANE.
- Opțiuni geometrie:
- --autoborder[=(yes|no)] [yes]
- Activează/dezactivează detectarea automată a marginii imaginii. Atunci când este activată, unitatea RSC detectează automat zona imaginii și ajustează geometria ferestrei pentru a se potrivi.
- --paper-size Custom|Letter|Legal|A3|A4|A5|A6|B4|B5 [Custom]
- Specifică geometria ferestrei de scanare prin specificarea dimensiunii hârtiei documentelor care urmează să fie scanate.
- --tl-x 0..297.18mm [0]
- Poziția x din stânga-sus a zonei de scanare.
- --tl-y 0..431.8mm [0]
- Poziția y din stânga-sus a zonei de scanare.
- --br-x 0..297.18mm [297.18]
- Poziția x din dreapta-jos a zonei de scanare.
- --br-y 0..431.8mm [431.8]
- Poziția y din dreapta-jos a zonei de scanare.
- Opțiuni pentru alimentator:
- --source Automatic Document Feeder|Manual Feed Tray [Automatic Document Feeder]
- Selectează sursa de scanare (cum ar fi un alimentator de documente). Această opțiune este oferită pentru a permite scanarea mai multor imagini cu xsane(1); nu are alt scop.
- --batch[=(yes|no)] [no]
- Activează/dezactivează scanarea în modul lot. Modul lot permite scanarea la capacitate maximă prin stocarea datelor în memoria tampon din unitatea RSC. Această opțiune este recomandată la scanarea mai multor pagini până când alimentatorul este golit.
- --duplex[=(yes|no)] [no]
- Activează scanarea duplex (față-verso). Scanerul captează o imagine a fiecărei fețe a documentului în timpul unei singure treceri prin scaner. Prima pagină este livrată urmată de pagina din spate. Majoritatea opțiunilor, cum ar fi compresia, afectează atât pagina din față, cât și cea din spate.
- --timeout-adf 0..255 [0]
- Stabilește timpul de așteptare în secunde pentru alimentatorul automat de documente (ADF). Valoarea 0 specifică valoarea implicită hardware care variază în funcție de modelul scanerului.
- --timeout-manual 0..255 [0]
- Stabilește timpul de așteptare în secunde pentru alimentatorul semiautomat. Valoarea 0 specifică valoarea implicită hardware care variază în funcție de modelul scanerului.
- --check-adf[=(yes|no)] [no]
- Verifică starea ADF înainte de a începe scanarea utilizând comanda OBJECT POSITION (Poziția obiectului). Rețineți că această funcție necesită nivelul de firmware RSC 1.5 sau mai mare și comutatorul dip 4 trebuie să fie în poziția pornit. NOTĂ: Această opțiune nu a fost testată extensiv și poate produce rezultate nedorite.
- Îmbunătățire:
- --control-panel[=(yes|no)] [yes]
- Activează panoul de control al scanerului pentru selectarea parametrilor de îmbunătățire a imaginii. Atunci când opțiunea este stabilită la „no”, următoarele opțiuni sunt utilizate pentru a controla îmbunătățirea imaginii. Consultați ghidul de utilizare a scanerului Bell+Howell pentru informații complete privind funcționalitatea ACE.
- --ace-function -4..4 [3]
- Specifică funcția de îmbunătățire automată a contrastului („Automatic Contrast Enhancement”: ACE).
- --ace-sensitivity 0..9 [5]
- Specifică sensibilitatea îmbunătățirii automate a contrastului (ACE).
- --brightness 0..255 [0]
- Controlează luminozitatea imaginii achiziționate. Ignorată pentru scanerele compatibile ACE.
- --threshold 0..255 [0]
- Selectează luminozitatea minimă pentru a obține un punct alb. Ignorată pentru scanerele compatibile ACE.
- --contrast 0..255 [inactive]
- Controlează contrastul imaginii achiziționate. Această opțiune nu este utilizată în prezent de scaner (și poate că nu va fi niciodată).
- --negative[=(yes|no)] [no]
- Interschimbă albul și negrul, obținând o imagine video inversă.
- Pictogramă:
- --icon-width 0..3600pel (în pași de 8) [0]
- Lățimea imaginii pictogramei (miniaturii) în pixeli.
- --icon-length 0..3600pel (în pași de 8) [0]
- Lungimea imaginii pictogramei (miniaturii) în pixeli.
- Opțiuni cod de bare:
- --barcode-search-bar <a se vedea lista> [none]
- Specifică tipul de cod de bare care trebuie căutat. Dacă această opțiune nu este specificată sau este specificată cu o valoare de „none” (niciunul), funcția de decodificare a codurilor de bare este complet dezactivată. 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]
- Numărul de ori în care RSC efectuează algoritmul de decodificare. Specificați cel mai mic număr posibil pentru a crește performanța. Dacă aveți probleme cu recunoașterea codurilor de bare, se sugerează să măriți această opțiune la valoarea maximă (7).
- --barcode-search-mode <a se vedea lista> [horiz-vert]
- Alege orientarea codurilor de bare care urmează să fie căutate. Orientările valide sunt:
horiz-vert
horizontal
vertical
vert-horiz
- --barcode-hmin 0..1660mm [5]
- Stabilește înălțimea minimă a codului de bare în milimetri (valorile mai mari cresc viteza de recunoaștere). Desigur, codurile de bare reale din document trebuie să aibă dimensiuni suficiente.
- --barcode-search-timeout 20..65535us [10000]
- Stabilește timpul limită pentru căutarea codurilor de bare în milisecunde. Când expiră timpul de așteptare, decodificatorul nu va mai încerca să decodifice coduri de bare.
- --section <șir> []
- Specifică o serie de secțiuni de imagine. O secțiune poate fi utilizată pentru a colecta un subset de imagini sau pentru a oferi o zonă mică pentru decodificarea codurilor de bare. Fiecare secțiune este specificată în următorul format (unitățile sunt în milimetri):
<lățime>x<înălțime>+<stânga-sus-x>+<stânga-sus-y>[: cod-funcție...]
Mai multe secțiuni pot fi specificate prin separarea lor cu virgule.
De exemplu, 76.2x25.4+50.8+0:frontbar identifică o zonă de 3 inch lățime și 1 inch înălțime, cu un colț stânga sus în partea de sus a paginii, la doi inch de marginea stângă a paginii. Această secțiune va fi utilizată pentru decodificarea codurilor de bare numai pe prima pagină.
De exemplu, 50.8x25.4+25.4+0:frontbar:front:g42d identifică o zonă de 2 inci lățime și 1 inci înălțime, cu un colț stânga sus în partea de sus a paginii, la un inci de marginea stângă a paginii. Această secțiune va fi utilizată pentru decodificarea codurilor de bare pe prima pagină, precum și pentru generarea unei imagini comprimate în format g42d.
În mod normal, codurile de bare sunt căutate în întreaga imagine. Cu toate acestea, atunci când specificați secțiuni, toate căutările codurilor de bare se fac în secțiunile specifice identificate. Acest lucru poate accelera semnificativ procesul de decodificare.
Sunt disponibile următoarele coduri de funcție:
front - generează o imagine pentru secțiunea din față a paginii
back - generează o imagine pentru secțiunea din partea din spate a paginii
frontbar - efectuează căutarea codului de bare în secțiunea din față a paginii
backbar - efectuează căutarea codului de bare în secțiunea din partea din spate a paginii
frontpatch - efectuează căutarea de patchcode în secțiunea din față a paginii
frontpatch - efectuează căutarea de patchcode în secțiunea din partea din spate a paginii
none - nu utilizează compresia imaginii
g31d - utilizează compresia unidimensională a imaginii grupului 3
g31d - utilizează compresia bidimensională a imaginii grupului 3
g42d - utilizează compresia bidimensională a imaginii grupului 4
Dacă omiteți un cod de funcție de compresie, se utilizează valoarea de compresie a paginii complete. Dacă specificați mai multe coduri de funcție de compresie, se utilizează numai ultimul.
- --barcode-relmax 0..255 [0]
- Specifică relația maximă de la bara cea mai lată la cea mai îngustă.
- --barcode-barmin 0..255 [0]
- Specifică numărul minim de bare din codul Bar/Patch.
- --barcode-barmax 0..255 [0]
- Specifică numărul maxim de bare dintr-un cod Bar/Patch.
- --barcode-contrast 0..6 [3]
- Specifică contrastul imaginii utilizat în decodificare. Utilizați valori mai mari atunci când există mai mulți pixeli albi în cod.
- --barcode-patchmode 0..1 [0]
- Controlează detectarea codului de bare-patch.
CONFIGURARE¶
Conținutul fișierului bh.conf este o listă de nume de dispozitive care corespund scanerelor Bell+Howell. Consultați sane-scsi(5) pentru detalii despre ce constituie un nume de dispozitiv valid. În plus, pot fi specificate opțiuni; aceste linii încep cu cuvântul „option”. Fiecare opțiune este descrisă în detaliu mai jos. Liniile goale și liniile care încep cu un simbol hash (#) sunt ignorate.
OPȚIUNI¶
Următoarele opțiuni pot fi specificate în fișierul bh.conf:
- disable-optional-frames
- Această opțiune împiedică controlorul să trimită orice cadre opționale. Această opțiune poate fi utilă în cazul interfețelor care nu acceptă aceste cadre opționale. Atunci când această opțiune este în vigoare, datele sunt trimise într-un cadru SANE_FRAME_GRAY. Cadrele opționale trimise de acest controlor sunt: SANE_FRAME_G31D, SANE_FRAME_G32D, SANE_FRAME_G42D și SANE_FRAME_TEXT. Aceste cadre sunt generate pe baza opțiunilor de compresie și cod de bare. Aceste cadre nu sunt niciodată trimise în modul previzualizare.
- fake-inquiry
- Această opțiune este utilizată în scopuri de depanare și utilizarea sa nu este încurajată. În esență, permite controlorului să se inițializeze în absența unui scaner. Acest lucru este util pentru dezvoltare și nu prea multe altele. Această opțiune trebuie să fie specificată mai înainte în fișierul de configurare de dispozitivele care urmează să fie „falsificate”.
FIȘIERE¶
- /etc/sane.d/bh.conf
- Fișierul de configurare al controlorului (a se vedea, de asemenea, descrierea SANE_CONFIG_DIR de mai jos).
- /usr/lib/x86_64-linux-gnu/sane/libsane-bh.a
- Biblioteca statică care implementează acest controlor.
- /usr/lib/x86_64-linux-gnu/sane/libsane-bh.so
- Biblioteca partajată care implementează acest controlor (prezentă pe sistemele care acceptă încărcare dinamică).
MEDIU¶
- SANE_CONFIG_DIR
- Această variabilă de mediu specifică lista de directoare care pot conține fișierul de configurare. În sistemele *NIX, directoarele sunt separate prin două puncte („:”), în OS/2, ele sunt separate prin punct și virgulă („;”). Dacă această variabilă nu este definită, fișierul de configurare este căutat în două directoare implicite: mai întâi, în directorul de lucru curent („.”) și apoi în /etc/sane.d. Dacă valoarea variabilei de mediu se termină cu caracterul de separare a directoarelor, atunci directoarele implicite sunt căutate după directoarele specificate explicit. De exemplu, dacă se definește SANE_CONFIG_DIR la „/tmp/config:”, se vor căuta (în această ordine) directoarele tmp/config, . și /etc/sane.d.
- SANE_DEBUG_BH
- Dacă biblioteca a fost compilată cu suportul de depanare activat, această variabilă de mediu controlează nivelul de depanare pentru acest controlor. De exemplu, o valoare de 255 solicită imprimarea tuturor datelor de depanare. Nivelurile mai mici reduc volumul de informații.
CARACTERISTICI ACCEPTATE¶
- Suport ADF
- În cazul scanerelor de documente, suportul pentru alimentatorul automat de documente (ADF) este o caracteristică esențială. Controlorul acceptă în mod implicit ADF-ul și returnează SANE_STATUS_NO_DOCS atunci când este detectată condiția de ieșire din hârtie. Interfața SANE scanadf(1) este o interfață de linie de comandă care acceptă scanări de mai multe pagini. Aceasta a fost utilizată cu succes cu acest controlor. Interfața SANE xsane(1) este o interfață GUI îmbunătățită de Oliver Rauch. Suportul pentru scanări multipagină este inclus în «xsane» versiunea 0.35 și versiunile ulterioare.
- Scanare duplex
- Unele modele, cum ar fi COPISCAN II 6338, acceptă scanarea duplex. Adică, acestea scanează ambele părți ale documentului în timpul unei singure treceri prin scaner (scanerul are două camere). Acest controlor permite scanarea duplex (cu opțiunea --duplex). Imaginile de pe prima și a doua pagină sunt livrate consecutiv, ca și cum ar fi fost pagini scanate separat.
- Compresie hardware
- Scanerul este capabil să comprime datele în mai multe formate standard industriale (CCITT G3, CCITT G3-2D, CCITT G4). Acest lucru duce la creșterea performanței, deoarece mai puține date sunt transmise de la scaner la gazdă pe magistrala SCSI. Controlorul acceptă aceste formate de compresie prin opțiunile --g31d, --g32d, --g42d, respectiv. Cu toate acestea, multe interfețe SANE nu sunt echipate pentru a face față acestor formate. Interfața SANE scanadf(1) acceptă aceste formate de cadre opționale. Datele imaginii comprimate sunt scrise direct într-un fișier și pot fi apoi prelucrate de un scan-script folosind opțiunea --scan-script. Pe pagina de pornire scanadf(1) sunt oferite exemple în acest sens.
- Detectarea automată a marginilor
- Scanerul poate detecta automat dimensiunea hârtiei și poate ajusta corespunzător geometria ferestrei de scanare. Controlorul acceptă această caracteristică utilă cu opțiunea --autoborder. Aceasta este activată în mod implicit.
- Scanare în mod lot
- Modul de scanare pe loturi permite un randament maxim. Parametrii ferestrei configurate trebuie să rămână constanți pe parcursul întregului lot.
- Generarea de pictograme
- Funcția Icon generează o miniatură a imaginii întregii pagini, care poate fi transferată ca și cum ar fi o pagină separată. Acest lucru permite gazdei să afișeze rapid o reprezentare în miniatură în timpul operației de scanare. Poate că aceasta ar fi o modalitate excelentă de a implementa o scanare cu previzualizare, dar, deoarece o scanare normală este atât de rapidă, s-ar putea să nu merite osteneala.
- Secțiuni multiple
- Mai multe secțiuni (subferestre de scanare) pot fi definite pentru prima și ultima pagină. Fiecare secțiune poate avea caracteristici diferite (de exemplu, geometrie, compresie). Secțiunile sunt returnate ca și cum ar fi fost imagini scanate separat. În plus, secțiunile pot fi utilizate pentru a spori considerabil precizia și eficiența procesului de decodificare a codurilor de bare/patchcode-urilor prin limitarea zonei de căutare la o mică parte a paginii. Majoritatea scanerelor din seria Copiscan II acceptă până la 8 secțiuni definite de utilizator.
- Suport pentru decodificarea codurilor de bare/patchcode
- Unitatea RSC poate recunoaște coduri de bare și patchcode-uri de diferite tipuri încorporate în imaginea scanată. Codurile sunt decodificate, iar datele sunt returnate către interfață sub forma unui cadru de text. Textul este codificat în xml și conține o mulțime de informații despre datele decodificate, cum ar fi locul în care au fost găsite, orientarea lor și timpul necesar pentru a le găsi. Informații suplimentare privind conținutul acestui cadru de text, precum și câteva exemple de decodificare a codurilor de bare pot fi găsite pe pagina principală a controlorului.
LIMITĂRI¶
- Decodificarea unui singur tip de cod de bare per scanare
- Unitatea RSC poate căuta simultan până la șase tipuri diferite de coduri de bare. Deși codul acceptă, în general, și acest lucru, opțiunea --barcode-search-bar permite utilizatorului să specifice doar un singur tip de cod de bare. Poate că o altă opțiune care să permită o listă de coduri de tip cod de bare separate prin virgule ar putea fi adăugată pentru a rezolva această problemă.
- Scanarea unui număr fix de pagini în modul lot
- Separarea dintre funcționalitatea frontală (de interfață cu utilizatorul) și cea din spate (controlorul) în SANE prezintă o problemă în ceea ce privește susținerea funcționalității „anulare lot” în scaner. În modul lot, scanerul este întotdeauna cu o pagină înaintea gazdei. Gazda, știind dinainte care pagină va fi ultima, poate anula modul lot înainte de inițierea ultimei comenzi de scanare. În prezent, nu există niciun mecanism disponibil pentru ca interfața să transmită aceste informații către controlor. Dacă modul lot este activat și --end-count încheie o sesiune scanadf(1), o pagină suplimentară va fi scoasă prin scaner, dar nu va fi nici citită, nici transmisă către interfață. Problema poate fi evitată prin specificarea --batch=no la scanarea unui număr fix de pagini.
- Revizia 1.2 Patch detector
- Există un algoritm îmbunătățit de detectare a patchcode-urilor disponibil în RSC cu versiunea 1.2 sau superioară, care este mai rapid și mai fiabil decât decodorul standard de coduri de bare/patchcode-uri. Acesta nu este acceptat în prezent.
ERORI¶
Rapoartele detaliate despre erori sunt binevenite -- și așteptate ;)
Dacă ați găsit ceva care credeți că este o eroare, vă rugăm să încercați să o recreați cu variabila de mediu SANE_DEBUG_BH stabilită la 255 și să trimiteți un raport care să detalieze condițiile în care s-a produs eroarea la sane-devel@alioth-lists.debian.net.
CONSULTAȚI ȘI¶
AUTOR¶
controlorul sane-bh a fost scris de Tom Martone, pe baza controlorului sane-ricoh(5) de Feico W. Dillema și a programului «bnhscan» de Sean Reifschneider de la tummy.com ltd. Aproximativ 8000 de îmbunătățiri adăugate de Mark Temple.
TRADUCERE¶
Traducerea în limba română a acestui manual a fost făcută de Remus-Gabriel Chelu <remusgabriel.chelu@disroot.org>
Această traducere este documentație gratuită; citiți Licența publică generală GNU Versiunea 3 sau o versiune ulterioară cu privire la condiții privind drepturile de autor. NU se asumă NICIO RESPONSABILITATE.
Dacă găsiți erori în traducerea acestui manual, vă rugăm să trimiteți un e-mail la translation-team-ro@lists.sourceforge.net.
10 iulie 2008 |