hi sane developers, i recently bought a Canon i-SENSYS MF4570dn printer/scanner for use in a LAN and carelessly forgot to check for linux support for scanning. (printing is another issue...)
by analyzing the udp and tcp traffic generated from scanning with the windows driver, i've constructed a simple proof-of-concept program that can start a scan and save the output to a file. (the current program is restricted to scanning a fixed area with hardcoded settings; reverse-engineering the parameters from the windows gui should be sufficiently easy. the other missing feature compared to the windows driver is device autodetection, which seems to work using snmp. and of course, i don't know how much this is restricted to my hardware, as i have no other for testing.) that being done, i had a closer look at the existing sane backends again (my first attempt at looking for existing drivers came to a halt when the product name rang no bell at the sane websites), i noticed some similarities with what is described in `pixma_bjnp_private.h` (i recognized the port number, and some of the status codes seemed similar), but other parts indicated that there are significant differences (my dumps always show 'MFNP' at the beginning of every package; that seems to be 'BJNP' in the existing backends). is there documentation on how the information at `pixma_bjnp_private.h` was obtained? (from comments like "unknown, always 0?" i read that it was probably created just like i did with my code.) i'd like to contribute to the sane project with what i find out while enhancing my proof-of-concept scanning program, but can't write a complete sane backend, due to time constraints, lack of c language skills and because i'm not sure that this scanner would need its own backend (rather an extension of the existing bjnp stuff). (to be honest, it might happen that i'm out of here once my proof-of-concept program is feature complete and works on my server, where it files everything that is scanned in a shared directory.) so my questions to the list are: * what is the background of the existing bjnp code, and how extensible is it? (this question probably goes to louis lagendijk (judging from the copyright notes), and the answer will partially depend on the differences between the protocol variants in use, which i hope to be able to judge better once i understand what the current code does.) * are there other (similar, i-sensys or other mf) devices in reach of list readers, which could help me to understand more of the protocol and test the implementation? * is there a way to have an out-of-process backend in sane? (i could provide that easily with the current python implementation, and messing around with signals for udp timeouts feels much more comfortable when i'm in my own process) * do you have any general recommendations on how we could get on with this project? regards chrysn -- A beginning is the time for taking the most delicate care that the balances are correct. -- Princess Irulan, Manual of Muad'Dib -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 198 bytes Desc: Digital signature URL: <http://lists.alioth.debian.org/pipermail/sane-devel/attachments/20110224/9c620254/attachment-0001.pgp>
