sane-test - SANE-Backend zum Testen von Frontends
Die Bibliothek
sane-test implementiert ein SANE-(Scanner Access Now Easy)
Backend, das das Testen von SANE-Installationen und SANE-Oberflächen
erlaubt. Es stellt einen Zugriff auf eine (fast) unbegrenzte Anzahl an
virtuellen Geräten bereit. Es gibt keinerlei Unterstützung
für echte Scanner oder Kameras. Allerdings simuliert das Backend das
Scannen und Setzen von Optionen.
Die Idee besteht darin, nicht nur Fehler in Oberflächen zu finden,
sondern auch alle Möglichkeiten von SANE zu zeigen. Daher implementiert
sane-test Funktionen und Optionen, die nicht (oder selten) in anderen
Backends gefunden werden können.
Das Backend ist in
/etc/sane.d/dll.conf auskommentiert, so dass entweder
das Kommentarzeichen entfernt oder das Backend explizit aufgerufen werden
muss. Z.B.
scanimage -d test oder
xscanimage test.
Die Option
mode wählt den Scan-Modus (Gray oder Color) aus.
Die Option
depth bestimmt die Anzahl der Bits pro Probe (1, 8 oder 16).
Denken Sie daran, dass sich dieser Wert auf die Probe bezieht, nicht den
Bildpunkt. Daher führt »depth=16« im Farbmodus zu 48 bit
pro Bildpunkt. Die gebräuchlichsten Kombinationen sind
»mode=Gray, depth=1« für den Lineart-, »mode=Gray,
depth=8« für den Graustufen- und »mode=Color,
depth=8« für den Farbmodus. Die Kombination von Farbe und
1-bit-Modus ist recht unbedeutend (8 Farben), aber vom SANE-Standard erlaubt.
Allerdings ist die Bedeutung von Bits nicht definiert. Derzeit wird 1 = Hohe
Intensität und 0 = Niedrige Intensität verwendet.
Setzen der Option
hand-scanner führt dazu, dass sich das
Test-Backend wie ein Hand-Scanner verhält. Handscanner kennen die
Bildhöhe vorab nicht. Stattdessen liefern sie eine Höhe von -1.
Durch Setzen dieser Option kann geprüft werden, ob eine
Oberfläche damit korrekt umgeht. Diese Option aktiviert auch eine feste
Breite von 11 cm.
Setzen der Option
three-pass simuliert einen Scanner mit drei
Durchläufen. Ältere Farbscanner mussten das Bild jeweils einmal
pro Farbe scannen (rot/grün/blau), um das komplette Bild zu erhalten.
Daher werden in diesem Modus drei einzelne Teilbilder im Farbmodus
übertragen.
Die Option
three-pass-order stellt eine Unterstützung zum
Ändern der Reihenfolge der drei Teilbilder dar (siehe obige Option
»three-pass«). Eine Oberfläche sollte alle Reihenfolgen
unterstützen.
Die Option
resolution setzt die Auflösung des Bildes in Punkte pro
Zoll.
Die Option
source kann zum Simulieren eines Automatischen
Dokumenteneinzugs (ADF) verwendet werden. Nach 10 Scans wird der ADF
»leer« sein.
Die Option
test-picture ermöglicht das Setzen des Bildes, das der
Oberfläche zurückgeliefert wird. Die Optionen »Solid
white« (vollständig weiß) und »Solid black«
(vollständig schwarz) sind relativ offensichtlich, die weiteren
Optionen benötigen zusätzliche Erklärungen. Farbmuster
werden dazu verwendet, zu bestimmen, ob alle Modi und ihre Farben durch die
Oberfläche korrekt dargestellt werden. Das Gitter sollte in jedem Modus
und jeder Auflösung gleich aussehen. Eine Tabelle aller Testbilder kann
unter
http://www.meier-geinitz.de/sane/test-backend/test-pictures.html
gefunden werden.
Falls die Option
invert-endianness gesetzt ist, werden die oberen und
unteren Bytes der Bilddaten in 16-bit-Modi ausgetauscht. Diese Option kann zum
Testen der 16-bit-Modi von Oberflächen verwendet werden, z.B. ob die
Oberfläche die korrekte Bytereihenfolge (engl. endianness) verwendet.
Falls die Option
read-limit gesetzt ist, wird die maximal mit jedem
Aufruf von
sane_read() übertragene Datenmenge begrenzt.
Die Option
read-limit-size setzt die Begrenzung für die Option
»read-limit«. Eine untere Begrenzung verlangsamt das Scannen. Es
kann zum Erkennen von Fehlern in Oberflächen verwendet werden, die
aufgrund falscher Annahmen über die Größe des Puffers
oder Problemen mit den Zeitvorgaben auftreten.
Die Option
read-delay ermöglicht das Verzögern der
Weiterleitung von Daten an die Oberfläche.
Die Option
read-delay-duration wählt die Anzahl an Mikrosekunden
aus, die das Backend nach jeder Übertragung an einen Puffer wartet.
Diese Option ist nützlich, um Probleme mit den Zeitvorgaben zu finden,
insbesondere falls es über das Netzwerk verwendet wird.
Falls die Option
read-return-value von »Default« (Vorgabe)
verschieden ist, wird der ausgewählte Status bei jedem Aufruf von
sane_read() zurückgeliefert. Dies ist nützlich, um die
Handhabung der SANE-Zustände durch die Oberfläche zu testen.
Falls die Option
ppl-loss von 0 verschieden ist, bestimmt sie die Anzahl
der Pixel, die am Ende jeder Zeile »verloren« gehen. Das
bedeutet, die Zeilen sind mit nicht benutzten Daten aufgefüllt.
Die Option
fuzzy-parameters wählt aus, das unscharfe (ungenaue)
Parameter zurückgeliefert werden, solange der Scan noch nicht begonnen
wurde. Diese Option kann dazu verwandt werden, zu testen, ob die
Oberfläche die erhaltenen Parameter verwendet, bevor der Scan beginnt
(was sie nicht sollte).
Die Option
non-blocking ermittelt, ob für
sane_read() nicht
blockierendes E/A verwendet werden sollte, falls die Oberfläche dies
unterstützt.
Falls die Option
select-fd gesetzt ist, bietet das Backend einen
Auswahl-Dateideskriptor an, um zu erkennen, ob
sane_read() Daten
zurückliefert.
Falls die Option
enable-test-options gesetzt ist, wird eine recht lange
Liste an Optionen zum Testen der verschiedenen SANE-Optionstypen aktiviert.
Die Option
print-options kann zur Ausgabe aller Optionen auf die
Standardfehlerausgabe verwandt werden.
Die Option
tl-x bestimmt die obere linke X-Position des Scan-Bereichs.
Die Option
tl-y bestimmt die obere linke Y-Position des Scan-Bereichs.
Die Option
br-x bestimmt die untere rechte X-Position des Scan-Bereichs.
Die Option
br-y bestimmt die untere rechte Y-Position des Scan-Bereichs.
Es gibt insgesamt 6 logische Testoptionen. Jede Option hat eine Zahl. (3/6)
bedeutet: dies ist die Option 3 von 6. Das Zählschema ist zur
einfacheren Erkennung von Optionen, die von der Oberfläche nicht
angezeigt werden (aufgrund fehlender Unterstützung oder Fehlern),
gedacht.
Die Option
bool-soft-select-soft-detect (1/6) ist eine logische
Testoption, die eine sanfte Auswahl und sanfte Erkennung (und
fortgeschrittene) Fähigkeiten hat. Sie ist nur eine einfache logische
Option.
Die Option
bool-hard-select-soft-detect (2/6) ist eine logische
Testoption, die eine harte Auswahl und sanfte Erkennung (und fortgeschrittene)
Fähigkeiten hat. Das bedeutet, die Option kann nicht durch die
Oberfläche, sondern nur durch den Benutzer (z.B. durch Drücken
eines Knopfs auf dem Gerät) gesetzt werden.
Die Option
bool-hard-select (3/6) ist eine logische Testoption, die eine
harte Auswahl (und fortgeschrittene) Fähigkeiten hat. Das bedeutet, die
Option kann nicht durch die Oberfläche, sondern nur durch den Benutzer
(z.B. durch Drücken eines Knopfs auf dem Gerät) gesetzt und
nicht durch die Oberfläche ausgelesen werden.
Die Option
bool-soft-detect (4/6) ist eine logische Testoption, die eine
weiche Auswahl (und fortgeschrittene) Fähigkeiten hat. Das bedeutet,
die Option kann nur ausgelesen werden.
Die Option
bool-soft-select-soft-detect-emulated (5/6) ist eine logische
Testoption, die eine weiche Auswahl, weiche Erkennung und emulierte (und
fortgeschrittene) Fähigkeiten hat.
Die Option
bool-soft-select-soft-detect-auto (6/6) ist eine logische
Testoption, die eine weiche Auswahl, weiche Erkennung und automatische (und
fortgeschrittene) Fähigkeiten hat. Diese Option kann durch das Backend
automatisch gesetzt werden.
Es gibt insgesamt 7 Ganzzahl-Testoptionen.
Die Option
int (1/7) ist eine Ganzzahl-Testoption ohne gesetzte Einheit
und Begrenzung.
Die Option
int-constraint-range (2/7) ist eine Ganzzahl-Testoption mit
der Einheit Pixel und einem gesetzten Begrenzungsbereich. Minimum ist 4,
Maximum ist 192 und Quant ist 2.
Die Option
int-constraint-word-list (3/7) ist eine Ganzzahl-Testoption
mit der Einheit Bit und einer gesetzten begrenzten Wortliste.
Die Option
int-constraint-array (4/7) ist eine Ganzzahl-Testoption mit
der Einheit mm und der Verwendung eines Feldes ohne Begrenzung.
Die Option
int-constraint-array-constraint-range (5/7) ist eine
Ganzzahl-Testoption mit der Einheit mm und der Verwendung eines Feldes mit
einer Bereichsbegrenzung. Minimum ist 4, Maximum ist 192 und Quant ist 2.
Die Option
int-constraint-array-constraint-word-list (6/7) ist eine
Ganzzahl-Testoption mit der Einheit Prozent und der Verwendung eines Feldes
mit einer Wortlistenbegrenzung.
Die Option
int-inexact (7/7) ist eine Ganzzahl-Testoption, die den
erbetenen Wert erhöht und den Schalter SANE_INFO_INEXACT
zurückliefert.
Es gibt insgesamt 3 feste Testoptionen.
Die Option
fixed (1/3) ist eine feste Testoption ohne gesetzte Einheit
und Begrenzung.
Die Option
fixed-constraint-range (2/3) ist eine feste Testoption mit der
Einheit Mikrosekunden und gesetztem Begrenzungsbereich. Minimum ist -42.17,
Maximum 32767.9999 und Quant ist 2.0.
Die Option
fixed-constraint-word-list (3/3) ist eine feste Testoption
ohne gesetzte Einheit und gesetzter Wortlistenbegrenzung.
Es gibt insgesamt 3 Zeichenkettentestoptionen.
Die Option
string (1/3) ist eine Zeichenkettentestoption ohne Begrenzung.
Die Option
string-constraint-string-list (2/3) ist eine
Zeichenkettentestoption mit Zeichenkettenlistenbeschränkung.
Die Option
string-constraint-long-string-list (3/3) ist eine
Zeichenkettentestoption mit Zeichenkettenlistenbeschränkung.
Enthält einige weitere Einträge …
Die Option
button (1/1) ist eine Knopftestoption. Gibt Text aus …
- /etc/sane.d/test.conf
- Die Backendkonfigurationsdatei (siehe auch die nachfolgende
Beschreibung von SANE_CONFIG_DIR). Die anfänglichen Werte
der meisten grundlegenden SANE-Optionen können in dieser Datei
konfiguriert werden. Eine Vorlage, die alle Vorgabewerte enthält,
wird mit diesem Backend zusammen bereitgestellt. Einer der interessanteren
Werte könnte number_of_devices sein. Dies kann dazu
verwendet werden, die Möglichkeiten der Oberfläche zu
testen, eine lange Liste an Geräten anzuzeigen. Die
Konfigurationswerte bezüglich Auflösung und Geometrie
können zum Testen des Umgangs mit großen Dateien verwendet
werden.
- /usr/lib/x86_64-linux-gnu/sane/libsane-test.a
- Die statische Bibliothek, die dieses Backend
implementiert.
- /usr/lib/x86_64-linux-gnu/sane/libsane-test.so
- Die dynamische Bibliothek, die dieses Backend implementiert
(auf Systemen verfügbar, die dynamisches Laden
unterstützen).
- SANE_CONFIG_DIR
- Diese Umgebungsvariable gibt eine Liste von Verzeichnissen
an, die die Konfigurationsdatei enthalten können. Auf *NIX-Systemen
sind die Verzeichnisse durch Doppelpunkte (:) getrennt, unter OS/2 durch
Semikola (;). Falls diese Variable nicht gesetzt ist, wird in zwei
Standardverzeichnissen nach der Konfigurationsdatei gesucht: zuerst im
aktuellen Arbeitsverzeichnis (.) und dann in /etc/sane.d. Falls der
Wert der Umgebungsvariable mit dem Verzeichnis-Trennzeichen endet, dann
werden die Standardverzeichnisse nach den explizit angegebenen
Verzeichnissen durchsucht. Wenn Sie beispielsweise SANE_CONFIG_DIR
auf »/tmp/config:« setzen, wird in den Verzeichnissen
»tmp/config«, ».« und
»/etc/sane.d« gesucht (in dieser Reihenfolge).
- SANE_DEBUG_TEST
- Falls die Bibliothek mit Debug-Unterstützung
kompiliert wurde, steuert diese Umgebungsvariable die Debug-Stufe
für dieses Backend. Größere Werte erhöhen die
Ausführlichkeit der Ausgabe.
Beispiel: export SANE_DEBUG_TEST=4
sane(7),
scanimage(1),
xscanimage(1)
http://www.meier-geinitz.de/sane/test-backend/
Henning Meier-Geinitz <
[email protected]>
- Konfigurationsdateiwerte werden nicht auf Korrektheit geprüft
Die deutsche Übersetzung dieser Handbuchseite wurde von Mario
Blättermann <
[email protected]> und Helge Kreutzmann
<
[email protected]> erstellt.
Diese Übersetzung ist Freie Dokumentation; lesen Sie die
GNU
General Public License Version 3 oder neuer bezüglich der
Copyright-Bedingungen. Es wird KEINE HAFTUNG übernommen.
Wenn Sie Fehler in der Übersetzung dieser Handbuchseite finden, schicken
Sie bitte eine E-Mail an die
Mailingliste
der Übersetzer