Added support for Q-Scan A6 - see bug report #312073

merge-requests/1/head
Gerhard Jaeger 2013-02-13 10:32:28 +01:00
rodzic b91010f240
commit 00167c20c5
6 zmienionych plików z 141 dodań i 8 usunięć

Wyświetl plik

@ -7,7 +7,7 @@
* @brief Main defines for the USB devices.
*
* Based on sources acquired from Plustek Inc.<br>
* Copyright (C) 2001-2007 Gerhard Jaeger <gerhard@gjaeger.de>
* Copyright (C) 2001-2013 Gerhard Jaeger <gerhard@gjaeger.de>
*
* History:
* - 0.40 - starting version of the USB support
@ -45,6 +45,7 @@
* - added DEVCAPSFLAG_SheetFed
* - added dpi_thresh and lineend to motor structure
* - 0.52 - added MODEL_QSCAN
* - added MODEL_QSCAN_A6 (thanks to Hiroshi Miura)
* - changed DCapsDef, lamp -> misc_io
* - bPCB is now ushort to be "missused" by non Plustek
* devices (as threshhold for resetting sensor order)
@ -338,7 +339,8 @@ typedef enum
MODEL_UMAX1200, /**< for UMAX 5400 */
MODEL_TSCAN, /**< for Syscan TravelScan A6 */
MODEL_TSCAN_A4, /**< for Syscan TravelScan A4 */
MODEL_QSCAN, /**< for PandP Q-Scan */
MODEL_QSCAN, /**< for PandP Q-Scan A4 */
MODEL_QSCAN_A6, /**< for PandP Q-Scan A6 */
MODEL_LAST
} eModelDef;

Wyświetl plik

@ -7,7 +7,7 @@
* @brief Here we have our USB device definitions.
*
* Based on sources acquired from Plustek Inc.<br>
* Copyright (C) 2001-2009 Gerhard Jaeger <gerhard@gjaeger.de>
* Copyright (C) 2001-2013 Gerhard Jaeger <gerhard@gjaeger.de>
*
* History:
* - 0.40 - starting version of the USB support
@ -69,6 +69,7 @@
* Canon has built-in different motortypes
* - also fixed Motorsettings for LiDE30
* - 0.52 - added Q-Scan USB001 settings
* - added Q-Scan USB201 settings (thanks to Hiroshi Miura)
* - tweaked motor settings for Bearpaw 1200
* - added TravelScan 464 settings
* - tweaked highspeed motor settings for Epson 1260
@ -798,6 +799,25 @@ static DCapsDef Cap0x0A53_0x1000 =
_PS_INP1
};
/* PandP USB201 Q-Scan A6 Scanner
*/
static DCapsDef Cap0x0A53_0x2000 =
{
{{ 0, 0}, 0, -1, {1226, 3508}, { 50, 50 }},
{{ 0, 0}, 0, 0, {0, 0}, { 0, 0 }},
{{ 0, 0}, 0, 0, {0, 0}, { 0, 0 }},
{{ 0, 0}, 0, 0, {0, 0}, { 0, 0 }},
{600, 600},
DEVCAPSFLAG_SheetFed,
SENSORORDER_rgb,
4,
0,
kNEC8861,
0,
_WAF_NONE,
_PS_INP1
};
/******************* additional Hardware descriptions ************************/
/** U24, UT12 and UT16
@ -2655,6 +2675,78 @@ static HWDef Hw0x0A53_0x1000 =
1.1
};
/** PandP USB201 Q-Scan A6 Scanner */
static HWDef Hw0x0A53_0x2000 =
{
0.5, /* dMaxMotorSpeed */
0.2, /* dMaxMoveSpeed */
0.0, /* dHighSpeed */
100, /* wIntegrationTimeLowLamp */
100, /* wIntegrationTimeHighLamp */
570, /* wMotorDpi (Full step DPI) */
512, /* wRAMSize (KB) */
3.75, /* dMinIntegrationTimeLowres (ms) */
5.75, /* dMinIntegrationTimeHighres (ms) */
0x0fff, /* wGreenPWMDutyCycleLow (reg 0x2a + 0x2b) */
0x0fff, /* wGreenPWMDutyCycleHigh (reg 0x2a + 0x2b) */
0x02, /* bSensorConfiguration (0x0b) */
0x00, /* sensor control settings (reg 0x0c) */
0x25, /* sensor control settings (reg 0x0d) */
0x06, /* sensor control settings (reg 0x0e) */
{0x05, 0x0a, 0x01, 0x02, 0x00, 0x01, 0x00, 0x00, 0x04, 0x07},
/* mono (reg 0x0f to 0x18) */
{0x05, 0x0a, 0x01, 0x02, 0x00, 0x01, 0x00, 0x00, 0x04, 0x07},
/* color (reg 0x0f to 0x18) */
(_BLUE_CH | _ONE_CH_COLOR), /* bReg_0x26 color mode */
0x00, /* bReg 0x27 color mode */
2, /* bReg 0x29 illumination mode */
{ 3, 0, 0, 10, 450, 0, 0 },
/* initial illumination settings - mono */
{ 2, 10, 1000, 10, 880, 10, 630 },
/* initial illumination settings - color */
0x0101, /* StepperPhaseCorrection (reg 0x1a + 0x1b) */
0x004d, /* bOpticBlackStart (reg 0x22 + 0x23) */
0x11, /* bOpticBlackEnd */
0x0011, /* wActivePixelsStart */
0x0bb8, /* wLineEnd (reg 0x20 + 0x21) */
10, /* red lamp on (reg 0x2c + 0x2d) */
1000, /* red lamp off (reg 0x2e + 0x2f) */
10, /* green lamp on (reg 0x30 + 0x31) */
880, /* green lamp off (reg 0x32 + 0x33) */
10, /* blue lamp on (reg 0x34 + 0x35) */
630, /* blue lamp off (reg 0x36 + 0x37) */
0x13, /* stepper motor control (reg 0x45) */
0x0000, /* wStepsAfterPaperSensor2 (reg 0x4c + 0x4d) */
0, /* steps to reverse when buffer is full reg 0x50) */
0, /* acceleration profile (reg 0x51) */
0, /* lines to process (reg 0x54) */
0x1b, /* kickstart (reg 0x55) */
0x08, /* pwm freq (reg 0x56) */
0x15, /* pwm duty cycle (reg 0x57) */
0x00, /* Paper sense (reg 0x58) */
0x20, /* misc io12 (reg 0x59) */
0x02, /* misc io34 (reg 0x5a) */
0x90, /* misc io56 (reg 0x5b) */
0, /* test mode ADC Output CODE MSB (reg 0x5c) */
0, /* test mode ADC Output CODE LSB (reg 0x5d) */
0, /* test mode (reg 0x5e) */
_LM9832,
MODEL_QSCAN_A6,
1.8
};
/******************** all available combinations *****************************/
/** here we have all supported devices and their settings...
@ -2735,6 +2827,7 @@ static SetDef Settings[] =
/* Portable Peripheral Co., Ltd. */
{"0x0A53-0x1000", &Cap0x0A53_0x1000, &Hw0x0A53_0x1000, "Q-Scan USB001" },
{"0x0A53-0x2000", &Cap0x0A53_0x2000, &Hw0x0A53_0x2000, "Q-Scan USB201" },
/* Please add other devices here...
* The first entry is a string, composed out of the vendor and product id,
@ -2981,6 +3074,20 @@ static ClkMotorDef Motors[] = {
/* Gray mode MCLK settings */
{ 6.5, 6.5, 6.5, 6.0, 6.0, 6.0, 6.0, 6.0, 6.0, 6.0 },
{ 6.5, 6.5, 6.5, 6.0, 6.0, 6.0, 6.0, 6.0, 6.0, 6.0 },
},
{ MODEL_QSCAN_A6, 8, 15, 6, 0, 0,
/* Motor settings (PWM and PWM_Duty) */
/* <=75dpi <=100dpi <=150dpi <=200dpi <=300dpi */
{{ 8, 15, 1}, { 8, 15, 1 }, { 8, 15, 1 }, { 8, 15, 1 }, { 8, 15, 1 },
/* <=400dpi <=600dpi <=800dpi <=1200dpi <=2400dpi */
{ 8, 15, 1 }, { 8, 15, 1 }, { 8, 15, 1 }, { 8, 15, 1 }, { 8, 15, 1 }},
/* Color mode MCLK settings */
{ 7.5, 7.5, 7.5, 7.5, 7.5, 7.5, 7.5, 7.5, 7.5, 7.5 },
{ 7.5, 7.5, 7.5, 7.5, 7.5, 7.5, 7.5, 7.5, 7.5, 7.5 },
/* Gray mode MCLK settings */
{ 15.0, 15.0, 15.0, 15.0, 15.0, 15.0, 15.0, 15.0, 15.0, 15.0 },
{ 15.0, 15.0, 15.0, 15.0, 15.0, 15.0, 15.0, 15.0, 15.0, 15.0 },
}
};

Wyświetl plik

@ -7,7 +7,7 @@
* @brief Functions to control the scanner hardware.
*
* Based on sources acquired from Plustek Inc.<br>
* Copyright (C) 2001-2007 Gerhard Jaeger <gerhard@gjaeger.de>
* Copyright (C) 2001-20013 Gerhard Jaeger <gerhard@gjaeger.de>
*
* History:
* - 0.40 - starting version of the USB support
@ -48,12 +48,14 @@
* - added special misc I/O setup for CIS devices (usb_ResetRegisters)
* - 0.51 - change usb_AdjustLamps() and use it now in usb_switchLamp()
* - added usb_Wait4ScanSample() and usb_InCalibrationMode()
* - tweaked EjectPaper to work correctly with the supported sheetfed
* - tweaked EjectPaper to work correctly with the supported sheet-fed
* devices
* - fixed button handling for Plustek/Genius devices and added
* some more debug output to that code path
* - 0.52 - changed DCapsDef, lamp -> misc_io
* - hammer in output bit, when using misc io pins for lamp switching
* - increased wait time for sheet-fed scanner (needed for Q-SCAN A6,
* patch by Hiroshi Miura)
* .
* <hr>
* This file is part of the SANE package.
@ -105,6 +107,9 @@
#define DEV_LampPositive 4
#define DEV_LampNegative 5
#define WAIT_TIME_FOR_SCAN_SAMPLE 20 /* 20 seconds maximum wait time */
/** the NatSemi 983x is a big endian chip, and the line protocol data all
* arrives big-endian. This determines if we need to swap to host-order
*/
@ -308,7 +313,6 @@ usb_Wait4ScanSample( Plustek_Device *dev )
{
struct timeval start_time, t2;
/* we wait about 10s for something to scan... */
if( !usb_IsSheetFedDevice(dev))
return SANE_TRUE;
@ -317,7 +321,7 @@ usb_Wait4ScanSample( Plustek_Device *dev )
do {
gettimeofday( &t2, NULL );
if( t2.tv_sec > start_time.tv_sec + 10 ) {
if( t2.tv_sec > start_time.tv_sec + WAIT_TIME_FOR_SCAN_SAMPLE ) {
DBG( _DBG_ERROR, "Nothing to scan!!!\n" );
return SANE_FALSE;
}
@ -473,6 +477,12 @@ usb_ModuleMove( Plustek_Device *dev, u_char action, u_long dwStep )
double d = hw->dMaxMoveSpeed;
/* FIXME */
if (hw->motorModel == MODEL_QSCAN_A6){
DBG( _DBG_INFO2, "Q-SCAN-A6 may not be able to detect ejected papers\n");
return SANE_TRUE;
}
hw->dMaxMoveSpeed += 0.8; /* was 0.6 */
DBG( _DBG_INFO2, "Ejecting paper...\n" );

Wyświetl plik

@ -268,6 +268,11 @@
:usbid "0x0a53" "0x1000"
:status :complete
:model "Q-Scan USB201 (A6 portable scanner)"
:interface "USB"
:usbid "0x0a53" "0x2000"
:status :good
;* Visioneer ****************************************************************************************
:mfg "Visioneer"

Wyświetl plik

@ -3,6 +3,14 @@ Plustek.changes - Gerhard Jaeger <gerhard@gjaeger.de>
Note: All other not mentioned builds have never been released.
V 0.52-11 (2013-02-13)
---------------------
Added support for Q-Scan A6 scanner (see report #312073)
V 0.52-10 (2012-03-19)
---------------------
Fixed batch scanning
V 0.52-9 (2009-04-27)
---------------------
Tweaked highspeed settings for Epson 1260

Wyświetl plik

@ -1,4 +1,4 @@
.TH sane\-plustek 5 "25 Aug 2008" "@PACKAGEVERSION@" "SANE Scanner Access Now Easy"
.TH sane\-plustek 5 "13 Feb 2013" "@PACKAGEVERSION@" "SANE Scanner Access Now Easy"
.IX sane\-plustek
.SH NAME
sane\-plustek \- SANE backend for LM983[1/2/3] based
@ -165,6 +165,7 @@ Vendor Portable Peripheral Co., Ltd. \- ID: 0x0A53
USB Model: ASIC: Properties: Prod-ID
----------------------------------------------------------
Q-Scan USB001 LM9832 300x600dpi 42bit 512Kb 0x1000
Q-Scan USB201 LM9832 300x600dpi 42bit 512Kb 0x2000
.fi
.ft R
.PP