[sane-devel] Script to interpret USB logs for GL841 based scanners
John Dalton
john.dalton at daltons.info
Wed Nov 23 04:24:39 UTC 2005
For the last couple of weeks I've been writing a script
to interpret the output of 'usbsniff' and a modified
version of 'parseusbsnoop.awk'.
This PERL script assumes a GL841 based scanner and is currently
to the point where is can convert a USB log into a sequence
of reads and writes to the various registers and bit fields
of a G841. In the case of a register containing multiple
bit fields it also highlights the bit field which has been
modified.
I'm pushing ahead to get the script to recognise higher
level functions, which may or may not be specific to the
LiDE 60.
In case anyone is interested, I've put the script on my
website:
https://john.daltons.info/lide60/
Hopefully it will be useful to anyone working with GL841
based scanners.
Here is an example of the output for portion of an LiDE60's cyle
where it starts the scan and reads the image data from the
scanner:
---------- BEGIN CUT HERE----------------------------------------------
24253 : 216128ms Start motor movement.
24254-24597: 216129ms Wait for image buffer to contain data. ([0x41] bit 6)==1
24598-24603: 216474ms [gl841:validword] -> 564 Read number of bytes available to read from the image buffer (564) from the GL841.
24604-24609: 216480ms [gl841:validword] -> 1204 Read number of bytes available to read from the image buffer (1204) from the GL841.
24610-24615: 216486ms [gl841:validword] -> 1740 Read number of bytes available to read from the image buffer (1740) from the GL841.
24616-24621: 216492ms [gl841:validword] -> 2252 Read number of bytes available to read from the image buffer (2252) from the GL841.
24622 : 216498ms Point to the read port of the GL841 image buffer DRAM (address 0x45) in preparation for a bulk read.
24623-24725: 216499ms Multiple reads from image buffer (1678578 bytes)
24726 : 225445ms 0xa0 -> [gl841:scanner_setup] Write scanner setup.
*scan process : disable
shading area : whole line
DRAM size : 4Mx1
DRAM size : 4M or 8M
shading : enable
watchdog timer (register 0x1e): disable
scanner type : CIS
24727-24730: 225446ms 0b 11 0000 0010 -> [gpio18..9] set GPIO18-9 to known state (includes pins which control motor?)
24731-24732: 225450ms [gl841:motor_status] -> 0x03 Read motor status.
*scanner mode: command
*motor is : moving
motor speed : normal
24733-24734: 225452ms [gl841:scanner_status] -> 0xf5 Read scanner status.
motor is : processing
front end is : not busy (ready to read/write)
lamp is : on
scanner is position: not home
*scanning is : finished
motor feeding : finished
*image buffer is : empty
power : on
---------- END CUT HERE----------------------------------------------
More information about the sane-devel
mailing list