[sane-devel] New scanner Canon MF4770N Multi function

littlesincanada littlesincanada at yahoo.co.uk
Fri Sep 20 04:34:50 UTC 2013


Hi Rolf,
OK, diff included for pixma-imageclass.c to git unstable.

I figured out the issue with the underrun: when the printer is scanning 
with the ADF for Preview (full area scan), it auto detects the end of 
paper and terminates the scan earlier than the sane driver is expecting. 
It sees the end of the paper and knows to stop at that point (nothing 
left to scan).

It cannot do this when scanning from the platen since it doesn't know 
where the end of the page is. Therefore, I don't get the warning when 
Previewing from the platen.

I couldn't really get any response from the buttons. My time with the 
printer is running out (I have to ship it to my daughter in Uni) so I'm 
going to have to call it a do at that.

Everything else seems to work great!

Cheers,
Ralph


On 19/09/13 12:59, Rolf Bensch wrote:
> export SANE_DEBUG_PIXMA=11

-------------- next part --------------
--- orig_pixma_imageclass.c	2013-09-18 11:52:34.000000000 -0700
+++ pixma_imageclass.c	2013-09-19 20:50:28.316508325 -0700
@@ -81,6 +81,7 @@
 #define MF6500_PID 0x2686
 #define MF4410_PID 0x2737
 #define MF3010_PID 0x2759
+#define MF4770_PID 0x2774
 /* the following are all untested */
 #define MF5630_PID 0x264e
 #define MF5650_PID 0x264f
@@ -279,11 +280,15 @@
   const int hlen = 2 + 6;
 
   memset (mf->cb.buf, 0, 11);
-  pixma_set_be16 (((s->cfg->pid == MF3010_PID || s->cfg->pid == MF4410_PID || s->cfg->pid == MF4550_PID) ? cmd_read_image2 : cmd_read_image), mf->cb.buf);
+  pixma_set_be16 (((s->cfg->pid == MF3010_PID ||
+                    s->cfg->pid == MF4410_PID ||
+                    s->cfg->pid == MF4770_PID ||
+                    s->cfg->pid == MF4550_PID) ? cmd_read_image2 : cmd_read_image), mf->cb.buf);
   mf->cb.buf[8] = flag;
   mf->cb.buf[10] = 0x06;
   expected_len = (s->cfg->pid == MF3010_PID ||
                   s->cfg->pid == MF4410_PID ||
+                  s->cfg->pid == MF4770_PID ||
                   s->cfg->pid == MF4550_PID ||
                   s->cfg->pid == MF4600_PID ||
                   s->cfg->pid == MF6500_PID ||
@@ -297,6 +302,7 @@
 
       if (s->cfg->pid == MF3010_PID ||
           s->cfg->pid == MF4410_PID ||
+          s->cfg->pid == MF4770_PID ||
           s->cfg->pid == MF4550_PID ||
           s->cfg->pid == MF4600_PID ||
           s->cfg->pid == MF6500_PID ||
@@ -322,6 +328,7 @@
   
   maxchunksize = MAX_CHUNK_SIZE * ((s->cfg->pid == MF3010_PID ||
                                     s->cfg->pid == MF4410_PID ||
+                                    s->cfg->pid == MF4770_PID ||
                                     s->cfg->pid == MF4550_PID ||
                                     s->cfg->pid == MF4600_PID ||
                                     s->cfg->pid == MF6500_PID ||
@@ -639,6 +646,7 @@
           if (s->param->channels != 1 &&
                   s->cfg->pid != MF3010_PID &&
                   s->cfg->pid != MF4410_PID &&
+                  s->cfg->pid != MF4770_PID &&
 	          s->cfg->pid != MF4550_PID &&
 	          s->cfg->pid != MF4600_PID &&
 	          s->cfg->pid != MF6500_PID &&
@@ -770,7 +778,8 @@
   DEV ("Canon imageCLASS MF4410", "MF4410", MF4410_PID, 600, 640, 877, PIXMA_CAP_ADF),
   DEV ("Canon i-SENSYS MF4550d", "MF4550", MF4550_PID, 600, 640, 877, PIXMA_CAP_ADF),
   DEV ("Canon i-SENSYS MF3010", "MF3010", MF3010_PID, 600, 640, 877, 0),
-  /* FIXME: the following capabilities all need updating/verifying */
+  DEV ("Canon imageCLASS MF4770n", "MF4770", MF4770_PID, 600, 640, 877, PIXMA_CAP_ADF),
+    /* FIXME: the following capabilities all need updating/verifying */
   DEV ("Canon imageCLASS MF5630", "MF5630", MF5630_PID, 600, 640, 877, PIXMA_CAP_ADF),
   DEV ("Canon laserBase MF5650", "MF5650", MF5650_PID, 600, 640, 877, PIXMA_CAP_ADF),
   DEV ("Canon imageCLASS MF8170c", "MF8170c", MF8100_PID, 600, 640, 877, PIXMA_CAP_ADF),


More information about the sane-devel mailing list