1
#ifndef __KVS20XX_CMD_H
2
#define __KVS20XX_CMD_H
5
Copyright (C) 2008, Panasonic Russia Ltd.
6
Copyright (C) 2010, m. allan noah
9
Panasonic KV-S20xx USB-SCSI scanners.
12
#define COMMAND_BLOCK 1
14
#define RESPONSE_BLOCK 3
16
#define COMMAND_CODE 0x9000
17
#define DATA_CODE 0xb000
18
#define RESPONSE_CODE 0xa000
29
#define TEST_UNIT_READY 0x00
31
#define SET_WINDOW 0x24
35
#define REQUEST_SENSE 0x03
36
#define GET_BUFFER_STATUS 0x34
37
#define SET_TIMEOUT 0xE1
38
#define GET_ADJUST_DATA 0xE0
40
#define CHECK_CONDITION 2
45
CMD_IN = 0x81, /* scanner to pc */
46
CMD_OUT = 0x02 /* pc to scanner */
47
} CMD_DIRECTION; /* equals to endpoint address */
49
#define RESPONSE_SIZE 0x12
50
#define MAX_CMD_SIZE 12
53
unsigned char cmd[MAX_CMD_SIZE];
62
unsigned char data[RESPONSE_SIZE];
65
#define END_OF_MEDIUM (1<<6)
66
#define INCORRECT_LENGTH_INDICATOR (1<<5)
69
unsigned sense, asc, ascq;
74
0, 0, 0, SANE_STATUS_GOOD},
76
2, 0, 0, SANE_STATUS_DEVICE_BUSY},
78
2, 4, 1, SANE_STATUS_DEVICE_BUSY},
80
2, 4, 0x80, SANE_STATUS_COVER_OPEN},
82
2, 4, 0x81, SANE_STATUS_COVER_OPEN},
84
2, 4, 0x82, SANE_STATUS_COVER_OPEN},
86
2, 4, 0x83, SANE_STATUS_COVER_OPEN},
88
2, 4, 0x84, SANE_STATUS_COVER_OPEN},
90
2, 0x80, 1, SANE_STATUS_CANCELLED},
92
2, 0x80, 2, SANE_STATUS_CANCELLED},
94
3, 0x3a, 0, SANE_STATUS_NO_DOCS},
96
3, 0x80, 1, SANE_STATUS_JAMMED},
98
3, 0x80, 2, SANE_STATUS_JAMMED},
100
3, 0x80, 3, SANE_STATUS_JAMMED},
102
3, 0x80, 4, SANE_STATUS_JAMMED},
104
3, 0x80, 5, SANE_STATUS_JAMMED},
106
3, 0x80, 6, SANE_STATUS_JAMMED},
108
3, 0x80, 7, SANE_STATUS_JAMMED},
110
3, 0x80, 8, SANE_STATUS_JAMMED},
112
3, 0x80, 9, SANE_STATUS_JAMMED},};
114
SANE_Status usb_send_command (struct scanner *s, struct cmd *c,
115
struct response *r, void *buf);
116
SANE_Status send_command (struct scanner * s, struct cmd * c);
117
SANE_Status test_unit_ready (struct scanner *s);
118
SANE_Status set_timeout (struct scanner *s, int timeout);
119
SANE_Status set_window (struct scanner *s, int wnd_id);
120
SANE_Status reset_window (struct scanner *s);
121
SANE_Status read_picture_element (struct scanner *s, unsigned side,
122
SANE_Parameters * p);
123
SANE_Status read_image_data (struct scanner *s, unsigned page, unsigned side,
124
void *buf, unsigned max_size, unsigned *size);
125
SANE_Status document_exist (struct scanner *s);
126
SANE_Status get_buffer_status (struct scanner *s, unsigned *data_avalible);
127
SANE_Status scan (struct scanner *s);
128
SANE_Status get_adjust_data (struct scanner *s, unsigned *dummy_length);
129
SANE_Status sense_handler (int fd, u_char * sense_buffer, void *arg);
131
#endif /*__KVS20XX_CMD_H*/