1141cc406Sopenharmony_cistatic void
2141cc406Sopenharmony_ciputnbyte (unsigned char *pnt, unsigned int value, unsigned int nbytes)
3141cc406Sopenharmony_ci{
4141cc406Sopenharmony_ci  int i;
5141cc406Sopenharmony_ci
6141cc406Sopenharmony_ci  for (i = nbytes - 1; i >= 0; i--) {
7141cc406Sopenharmony_ci    pnt[i] = value & 0xff;
8141cc406Sopenharmony_ci    value = value >> 8;
9141cc406Sopenharmony_ci  }
10141cc406Sopenharmony_ci}
11141cc406Sopenharmony_ci
12141cc406Sopenharmony_ci#define SET_WINDOW_LEN 72
13141cc406Sopenharmony_ci#define set_SW_byte7(out, val)  out[7] = val
14141cc406Sopenharmony_ci#define set_SW_xres(out, val)   putnbyte(out + 0x0a, val, 2)
15141cc406Sopenharmony_ci#define set_SW_yres(out, val)   putnbyte(out + 0x0c, val, 2)
16141cc406Sopenharmony_ci#define set_SW_xpix(out, val)   putnbyte(out + 0x16, val, 4)
17141cc406Sopenharmony_ci#define set_SW_ypix(out, val)   putnbyte(out + 0x1a, val, 4)
18141cc406Sopenharmony_ci#define set_SW_compo(out, val)  out[0x21] = val /*color=5,gray=2*/
19141cc406Sopenharmony_ci#define set_SW_bpp(out, val)    out[0x22] = val
20141cc406Sopenharmony_ci#define set_SW_byte31(out, val) out[0x31] = val
21141cc406Sopenharmony_ci#define set_SW_byte32(out, val) out[0x32] = val
22141cc406Sopenharmony_ci#define set_SW_byte33(out, val) out[0x33] = val
23141cc406Sopenharmony_ci#define set_SW_lpb(out, val)    out[0x34] = val
24141cc406Sopenharmony_ci#define set_SW_byte35(out, val) out[0x35] = val
25141cc406Sopenharmony_ci#define set_SW_byte36(out, val) out[0x36] = val
26141cc406Sopenharmony_ci#define set_SW_byte38(out, val) out[0x38] = val /*move motor?*/
27141cc406Sopenharmony_ci#define set_SW_fres(out, val)   putnbyte(out + 0x39, val, 2)
28141cc406Sopenharmony_ci
29141cc406Sopenharmony_ci/*************** COARSE CALIBRATION DEFAULT PAYLOAD *************/
30141cc406Sopenharmony_ci/* 1b c6 (send coarse cal) command payload - not resolution specific? */
31141cc406Sopenharmony_ci/* first group of 3 is offset?, larger # == brighter */
32141cc406Sopenharmony_ci/* second group of 3 is gain?, larger # == brighter */
33141cc406Sopenharmony_cistatic unsigned char coarseCalData_FI60F[] = {
34141cc406Sopenharmony_ci0x01, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x26, 0x00, 0x26, 0x00, 0x26,
35141cc406Sopenharmony_ci0x00, 0x00, 0x0b, 0x22, 0x00, 0x00, 0x0b, 0x22, 0x00, 0x00, 0x0b, 0x22
36141cc406Sopenharmony_ci};
37141cc406Sopenharmony_cistatic unsigned char coarseCalData_S300[] = {
38141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x2d, 0x00, 0x2b, 0x00, 0x00, 0x00, 0x24, 0x00, 0x28, 0x00, 0x00,
39141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
40141cc406Sopenharmony_ci};
41141cc406Sopenharmony_cistatic unsigned char coarseCalData_S1300i[] = {
42141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x2d, 0x00, 0x2b, 0x00, 0x00, 0x00, 0x24, 0x00, 0x28, 0x00, 0x00,
43141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
44141cc406Sopenharmony_ci};
45141cc406Sopenharmony_cistatic unsigned char coarseCalData_S1100[] = {
46141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x25, 0x00, 0x25, 0x00, 0x00, 0x00, 0x26, 0x00, 0x26, 0x00, 0x00,
47141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
48141cc406Sopenharmony_ci};
49141cc406Sopenharmony_ci
50141cc406Sopenharmony_ci/*************** fi-60F 300dpi gray *************/
51141cc406Sopenharmony_ci#if 0
52141cc406Sopenharmony_cistatic unsigned char setWindowScan_FI60F_300_g[] = {
53141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x01, 0x2c, 0x01, 0x2c, 0x00, 0x00,
54141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xe0, 0x00, 0x00, 0x06, 0xd5, 0x00, 0x00,
55141cc406Sopenharmony_ci0x00, 0x02, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
56141cc406Sopenharmony_ci0x00, 0x80, 0x80, 0x01, 0x6c, 0x01, 0x08, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
57141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
58141cc406Sopenharmony_ci};
59141cc406Sopenharmony_ci
60141cc406Sopenharmony_ci/*************** fi-60F 400dpi gray *************/
61141cc406Sopenharmony_cistatic unsigned char setWindowScan_FI60F_400_g[] = {
62141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x02, 0x58, 0x01, 0x90, 0x00, 0x00,
63141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x60, 0x00, 0x00, 0x09, 0x1c, 0x00, 0x00,
64141cc406Sopenharmony_ci0x00, 0x02, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
65141cc406Sopenharmony_ci0x00, 0x80, 0x80, 0x01, 0xca, 0x00, 0x08, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
66141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
67141cc406Sopenharmony_ci};
68141cc406Sopenharmony_ci
69141cc406Sopenharmony_ci/*************** fi-60F 600dpi gray *************/
70141cc406Sopenharmony_cistatic unsigned char setWindowScan_FI60F_600_g[] = {
71141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x02, 0x58, 0x02, 0x58, 0x00, 0x00,
72141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x60, 0x00, 0x00, 0x0d, 0xaa, 0x00, 0x00,
73141cc406Sopenharmony_ci0x00, 0x02, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
74141cc406Sopenharmony_ci0x00, 0x80, 0x80, 0x01, 0xca, 0x00, 0x08, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
75141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
76141cc406Sopenharmony_ci};
77141cc406Sopenharmony_ci#endif
78141cc406Sopenharmony_ci
79141cc406Sopenharmony_ci/*************** fi-60F 150dpi *************/
80141cc406Sopenharmony_cistatic unsigned char setWindowScan_FI60F_150[] = {
81141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x01, 0x2c, 0x00, 0x96, 0x00, 0x00,
82141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x60, 0x00, 0x00, 0x03, 0x6b, 0x00, 0x00,
83141cc406Sopenharmony_ci0x00, 0x05, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
84141cc406Sopenharmony_ci0x00, 0x80, 0x80, 0x01, 0x48, 0x00, 0x08, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
85141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
86141cc406Sopenharmony_ci};
87141cc406Sopenharmony_ci
88141cc406Sopenharmony_ci/*************** fi-60F 200dpi *************/
89141cc406Sopenharmony_cistatic unsigned char setWindowScan_FI60F_200[] = {
90141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x01, 0x2c, 0x00, 0xc8, 0x00, 0x00,
91141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x60, 0x00, 0x00, 0x04, 0x8e, 0x00, 0x00,
92141cc406Sopenharmony_ci0x00, 0x05, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
93141cc406Sopenharmony_ci0x00, 0x80, 0x80, 0x01, 0x48, 0x00, 0x08, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
94141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
95141cc406Sopenharmony_ci};
96141cc406Sopenharmony_ci
97141cc406Sopenharmony_ci/*************** fi-60F 300dpi *************/
98141cc406Sopenharmony_ci/* 1b d1 (set window) before coarse cal (read 1 line of 0x1c20 bytes) */
99141cc406Sopenharmony_cistatic unsigned char setWindowCoarseCal_FI60F_300[] = {
100141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x01, 0x2c, 0x01, 0x2c, 0x00, 0x00,
101141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x60, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
102141cc406Sopenharmony_ci0x00, 0x05, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
103141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
104141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
105141cc406Sopenharmony_ci};
106141cc406Sopenharmony_ci/* 1b d1 (set window) before fine cal (read 16 lines of 0x1c20 bytes) */
107141cc406Sopenharmony_cistatic unsigned char setWindowFineCal_FI60F_300[] = {
108141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x01, 0x2c, 0x03, 0x20, 0x00, 0x00,
109141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x60, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00,
110141cc406Sopenharmony_ci0x00, 0x05, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
111141cc406Sopenharmony_ci0x00, 0x80, 0x80, 0x00, 0x10, 0x00, 0x08, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
112141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
113141cc406Sopenharmony_ci};
114141cc406Sopenharmony_ci/* 1b d1 (set window) before gain/offset tables (write 1 line of 0x3840 bytes) */
115141cc406Sopenharmony_cistatic unsigned char setWindowSendCal_FI60F_300[] = {
116141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x01, 0x2c, 0x03, 0x20, 0x00, 0x00,
117141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x60, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00,
118141cc406Sopenharmony_ci0x00, 0x05, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
119141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x01, 0x10, 0x00, 0x08, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
120141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
121141cc406Sopenharmony_ci};
122141cc406Sopenharmony_ci/* 1b c3 (gain?) command header */
123141cc406Sopenharmony_cistatic unsigned char sendCal1Header_FI60F_300[] = { /* plus 0x3840 data bytes */
124141cc406Sopenharmony_ci0x8c, 0x0f, 0x8c, 0x0f, 0x8c, 0x0f, 0x8c, 0x0f, 0x8c, 0x0f, 0x8c, 0x0f, 0x00, 0x04
125141cc406Sopenharmony_ci};
126141cc406Sopenharmony_ci/* 1b c4 (offset?) command header */
127141cc406Sopenharmony_cistatic unsigned char sendCal2Header_FI60F_300[] = {
128141cc406Sopenharmony_ci0x39, 0x3f, 0x39, 0x3f, 0x39, 0x3f, 0x07
129141cc406Sopenharmony_ci};
130141cc406Sopenharmony_ci/* 1b d1 (set window) before scan */
131141cc406Sopenharmony_cistatic unsigned char setWindowScan_FI60F_300[] = {
132141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x01, 0x2c, 0x01, 0x2c, 0x00, 0x00,
133141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x60, 0x00, 0x00, 0x06, 0xd5, 0x00, 0x00,
134141cc406Sopenharmony_ci0x00, 0x05, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
135141cc406Sopenharmony_ci0x00, 0x80, 0x80, 0x01, 0x48, 0x00, 0x08, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
136141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
137141cc406Sopenharmony_ci};
138141cc406Sopenharmony_ci
139141cc406Sopenharmony_ci/*************** fi-60F 400dpi *************/
140141cc406Sopenharmony_cistatic unsigned char setWindowScan_FI60F_400[] = {
141141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x02, 0x58, 0x01, 0x90, 0x00, 0x00,
142141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0b, 0x20, 0x00, 0x00, 0x09, 0x1c, 0x00, 0x00,
143141cc406Sopenharmony_ci0x00, 0x05, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
144141cc406Sopenharmony_ci0x00, 0x80, 0x80, 0x01, 0x3d, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
145141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
146141cc406Sopenharmony_ci};
147141cc406Sopenharmony_ci
148141cc406Sopenharmony_ci/*************** fi-60F 600dpi *************/
149141cc406Sopenharmony_ci/* 1b d1 (set window) before coarse cal (read 1 line of 0x2160 bytes) */
150141cc406Sopenharmony_cistatic unsigned char setWindowCoarseCal_FI60F_600[] = {
151141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x02, 0x58, 0x02, 0x58, 0x00, 0x00,
152141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0b, 0x20, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
153141cc406Sopenharmony_ci0x00, 0x05, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
154141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
155141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
156141cc406Sopenharmony_ci};
157141cc406Sopenharmony_ci/* 1b d1 (set window) before fine cal (read 16 lines of 0x2160 bytes) */
158141cc406Sopenharmony_cistatic unsigned char setWindowFineCal_FI60F_600[] = {
159141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x02, 0x58, 0x03, 0x20, 0x00, 0x00,
160141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0b, 0x20, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00,
161141cc406Sopenharmony_ci0x00, 0x05, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
162141cc406Sopenharmony_ci0x00, 0x80, 0x80, 0x00, 0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
163141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
164141cc406Sopenharmony_ci};
165141cc406Sopenharmony_ci/* 1b d1 (set window) before gain/offset tables (write 1 line of 0x42c0 bytes) */
166141cc406Sopenharmony_cistatic unsigned char setWindowSendCal_FI60F_600[] = {
167141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x02, 0x58, 0x02, 0x58, 0x00, 0x00,
168141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0b, 0x20, 0x00, 0x00, 0x0d, 0xaa, 0x00, 0x00,
169141cc406Sopenharmony_ci0x00, 0x05, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
170141cc406Sopenharmony_ci0x00, 0x80, 0x80, 0x01, 0x3d, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
171141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
172141cc406Sopenharmony_ci};
173141cc406Sopenharmony_ci/* 1b c3 (gain?) command header */
174141cc406Sopenharmony_cistatic unsigned char sendCal1Header_FI60F_600[] = {
175141cc406Sopenharmony_ci0x4f, 0x10, 0x4f, 0x10, 0x4f, 0x10, 0x4f, 0x10, 0x4f, 0x10, 0x4f, 0x10, 0x00, 0x04
176141cc406Sopenharmony_ci};
177141cc406Sopenharmony_ci/* 1b c4 (offset?) command header */
178141cc406Sopenharmony_cistatic unsigned char sendCal2Header_FI60F_600[] = {
179141cc406Sopenharmony_ci0x2b, 0x40, 0x2b, 0x40, 0x2b, 0x40, 0x07
180141cc406Sopenharmony_ci};
181141cc406Sopenharmony_ci/* 1b d1 (set window) before scan */
182141cc406Sopenharmony_cistatic unsigned char setWindowScan_FI60F_600[] = {
183141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x02, 0x58, 0x02, 0x58, 0x00, 0x00,
184141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0b, 0x20, 0x00, 0x00, 0x0d, 0xaa, 0x00, 0x00,
185141cc406Sopenharmony_ci0x00, 0x05, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
186141cc406Sopenharmony_ci0x00, 0x80, 0x80, 0x01, 0x3d, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
187141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
188141cc406Sopenharmony_ci};
189141cc406Sopenharmony_ci
190141cc406Sopenharmony_ci/*************** S300 150dpi *************/
191141cc406Sopenharmony_ci/* 1b d1 (set window) before coarse cal (read 1 line of 0x63c0 bytes) */
192141cc406Sopenharmony_cistatic unsigned char setWindowCoarseCal_S300_150[] = {
193141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x01, 0x2c, 0x01, 0x2c, 0x00, 0x00,
194141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0b, 0x90, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
195141cc406Sopenharmony_ci0x00, 0x05, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
196141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x96, 0x00, 0x00, 0x00, 0x00, 0x00,
197141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
198141cc406Sopenharmony_ci};
199141cc406Sopenharmony_ci/* 1b d1 (set window) before fine cal (read 16 lines of 0x63c0 bytes) */
200141cc406Sopenharmony_cistatic unsigned char setWindowFineCal_S300_150[] = {
201141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x01, 0x2c, 0x03, 0x20, 0x00, 0x00,
202141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0b, 0x90, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00,
203141cc406Sopenharmony_ci0x00, 0x05, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
204141cc406Sopenharmony_ci0x00, 0x80, 0x80, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x96, 0x00, 0x00, 0x00, 0x00, 0x00,
205141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
206141cc406Sopenharmony_ci};
207141cc406Sopenharmony_ci/* 1b d1 (set window) before gain/offset tables (write 1 line of 0xc780 bytes) */
208141cc406Sopenharmony_cistatic unsigned char setWindowSendCal_S300_150[] = {
209141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x01, 0x2c, 0x03, 0x20, 0x00, 0x00,
210141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21, 0x40, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00,
211141cc406Sopenharmony_ci0x00, 0x05, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
212141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x96, 0x00, 0x00, 0x00, 0x00, 0x00,
213141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
214141cc406Sopenharmony_ci};
215141cc406Sopenharmony_ci/* 1b c3 (gain?) command header */
216141cc406Sopenharmony_cistatic unsigned char sendCal1Header_S300_150[] = { /* plus 0xc780 data bytes */
217141cc406Sopenharmony_ci0xe2, 0x0a, 0xe2, 0x0a, 0xe2, 0x0a, 0xe2, 0x0a, 0xe2, 0x0a, 0xe2, 0x0a, 0x00, 0x04
218141cc406Sopenharmony_ci/*0xa5, 0x0b, 0xa5, 0x0b, 0xa5, 0x0b, 0xa5, 0x0b, 0xa5, 0x0b, 0xa5, 0x0b, 0x00, 0x05*/
219141cc406Sopenharmony_ci};
220141cc406Sopenharmony_ci/* 1b c4 (offset?) command header */
221141cc406Sopenharmony_cistatic unsigned char sendCal2Header_S300_150[] = { /* plus 0xc780 data bytes */
222141cc406Sopenharmony_ci0x77, 0x26, 0x77, 0x26, 0x77, 0x26, 0x07
223141cc406Sopenharmony_ci/*0xd0, 0x34, 0xd0, 0x34, 0xd0, 0x34, 0x08*/
224141cc406Sopenharmony_ci};
225141cc406Sopenharmony_ci/* 1b d1 (set window) before scan */
226141cc406Sopenharmony_cistatic unsigned char setWindowScan_S300_150[] = {
227141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x96, 0x00, 0x96, 0x00, 0x00,
228141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0xc8, 0x00, 0x00, 0x06, 0xe2, 0x00, 0x00,
229141cc406Sopenharmony_ci0x00, 0x05, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
230141cc406Sopenharmony_ci0x00, 0x80, 0x80, 0x01, 0x29, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
231141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
232141cc406Sopenharmony_ci};
233141cc406Sopenharmony_ci
234141cc406Sopenharmony_ci/*************** S300 225dpi *************/
235141cc406Sopenharmony_ci/* 1b d1 (set window) before coarse cal (read 1 line of 0x63c0 bytes) */
236141cc406Sopenharmony_cistatic unsigned char setWindowCoarseCal_S300_225[] = {
237141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x01, 0x2c, 0x01, 0x2c, 0x00, 0x00,
238141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0xf0, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
239141cc406Sopenharmony_ci0x00, 0x05, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
240141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe1, 0x00, 0x00, 0x00, 0x00, 0x00,
241141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
242141cc406Sopenharmony_ci};
243141cc406Sopenharmony_ci/* 1b d1 (set window) before fine cal (read 16 lines of 0x63c0 bytes) */
244141cc406Sopenharmony_cistatic unsigned char setWindowFineCal_S300_225[] = {
245141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x01, 0x2c, 0x03, 0x20, 0x00, 0x00,
246141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0xf0, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00,
247141cc406Sopenharmony_ci0x00, 0x05, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
248141cc406Sopenharmony_ci0x00, 0x80, 0x80, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe1, 0x00, 0x00, 0x00, 0x00, 0x00,
249141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
250141cc406Sopenharmony_ci};
251141cc406Sopenharmony_ci/* 1b d1 (set window) before gain/offset tables (write 1 line of 0xc780 bytes) */
252141cc406Sopenharmony_cistatic unsigned char setWindowSendCal_S300_225[] = {
253141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x01, 0x2c, 0x03, 0x20, 0x00, 0x00,
254141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00,
255141cc406Sopenharmony_ci0x00, 0x05, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
256141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe1, 0x00, 0x00, 0x00, 0x00, 0x00,
257141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
258141cc406Sopenharmony_ci};
259141cc406Sopenharmony_ci/* 1b c3 (gain?) command header */
260141cc406Sopenharmony_cistatic unsigned char sendCal1Header_S300_225[] = { /* plus 0xc780 data bytes */
261141cc406Sopenharmony_ci0xe2, 0x0a, 0xe2, 0x0a, 0xe2, 0x0a, 0xe2, 0x0a, 0xe2, 0x0a, 0xe2, 0x0a, 0x00, 0x04
262141cc406Sopenharmony_ci/*0xa5, 0x0b, 0xa5, 0x0b, 0xa5, 0x0b, 0xa5, 0x0b, 0xa5, 0x0b, 0xa5, 0x0b, 0x00, 0x05*/
263141cc406Sopenharmony_ci};
264141cc406Sopenharmony_ci/* 1b c4 (offset?) command header */
265141cc406Sopenharmony_cistatic unsigned char sendCal2Header_S300_225[] = { /* plus 0xc780 data bytes */
266141cc406Sopenharmony_ci0x77, 0x26, 0x77, 0x26, 0x77, 0x26, 0x07
267141cc406Sopenharmony_ci/*0xd0, 0x34, 0xd0, 0x34, 0xd0, 0x34, 0x08*/
268141cc406Sopenharmony_ci};
269141cc406Sopenharmony_ci/* 1b d1 (set window) before scan */
270141cc406Sopenharmony_cistatic unsigned char setWindowScan_S300_225[] = {
271141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0xe1, 0x00, 0xc8, 0x00, 0x00,
272141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x34, 0x00, 0x00, 0x0c, 0x0c, 0x00, 0x00,
273141cc406Sopenharmony_ci0x00, 0x05, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
274141cc406Sopenharmony_ci0x00, 0x80, 0x80, 0x01, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
275141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
276141cc406Sopenharmony_ci};
277141cc406Sopenharmony_ci
278141cc406Sopenharmony_ci/*************** S300 300dpi *************/
279141cc406Sopenharmony_ci/* 1b d1 (set window) before coarse cal (read 1 line of 0x6000 bytes) */
280141cc406Sopenharmony_cistatic unsigned char setWindowCoarseCal_S300_300[] = {
281141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x01, 0x2c, 0x01, 0x2c, 0x00, 0x00,
282141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0xf0, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
283141cc406Sopenharmony_ci0x00, 0x05, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
284141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2c, 0x01, 0x00, 0x00, 0x00, 0x00,
285141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
286141cc406Sopenharmony_ci};
287141cc406Sopenharmony_ci/* 1b d1 (set window) before fine cal (read 16 lines of 0x6000 bytes) */
288141cc406Sopenharmony_cistatic unsigned char setWindowFineCal_S300_300[] = {
289141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x01, 0x2c, 0x03, 0x20, 0x00, 0x00,
290141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0xf0, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00,
291141cc406Sopenharmony_ci0x00, 0x05, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
292141cc406Sopenharmony_ci0x00, 0x80, 0x80, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2c, 0x01, 0x00, 0x00, 0x00, 0x00,
293141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
294141cc406Sopenharmony_ci};
295141cc406Sopenharmony_ci/* 1b d1 (set window) before gain/offset tables (write 1 line of 0xc000 bytes) */
296141cc406Sopenharmony_cistatic unsigned char setWindowSendCal_S300_300[] = {
297141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x01, 0x2c, 0x03, 0x20, 0x00, 0x00,
298141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00,
299141cc406Sopenharmony_ci0x00, 0x05, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
300141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2c, 0x01, 0x00, 0x00, 0x00, 0x00,
301141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
302141cc406Sopenharmony_ci};
303141cc406Sopenharmony_ci/* 1b c3 (gain?) command header */
304141cc406Sopenharmony_cistatic unsigned char sendCal1Header_S300_300[] = { /* plus 0xc000 data bytes */
305141cc406Sopenharmony_ci0xe2, 0x0a, 0xe2, 0x0a, 0xe2, 0x0a, 0xe2, 0x0a, 0xe2, 0x0a, 0xe2, 0x0a, 0x00, 0x04
306141cc406Sopenharmony_ci/*0x30, 0x0c, 0x30, 0x0c, 0x30, 0x0c, 0x30, 0x0c, 0x30, 0x0c, 0x30, 0x0c, 0x00, 0x05*/
307141cc406Sopenharmony_ci};
308141cc406Sopenharmony_ci/* 1b c4 (offset?) command header */
309141cc406Sopenharmony_cistatic unsigned char sendCal2Header_S300_300[] = { /* plus 0xc000 data bytes */
310141cc406Sopenharmony_ci0x77, 0x26, 0x77, 0x26, 0x77, 0x26, 0x07
311141cc406Sopenharmony_ci/*0xb8, 0x34, 0xb8, 0x34, 0xb8, 0x34, 0x08*/
312141cc406Sopenharmony_ci};
313141cc406Sopenharmony_ci/* 1b d1 (set window) before scan */
314141cc406Sopenharmony_cistatic unsigned char setWindowScan_S300_300[] = {
315141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x01, 0x2c, 0x01, 0x2c, 0x00, 0x00,
316141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0xf0, 0x00, 0x00, 0x0d, 0xc4, 0x00, 0x00,
317141cc406Sopenharmony_ci0x00, 0x05, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
318141cc406Sopenharmony_ci0x00, 0x80, 0x80, 0x01, 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
319141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
320141cc406Sopenharmony_ci};
321141cc406Sopenharmony_ci
322141cc406Sopenharmony_ci/*************** S300 600dpi USB and AC power *************/
323141cc406Sopenharmony_ci/* 1b d1 (set window) before coarse cal (read 1 line of 0xbc40 bytes) */
324141cc406Sopenharmony_cistatic unsigned char setWindowCoarseCal_S300_600[] = {
325141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x02, 0x58, 0x02, 0x58, 0x00, 0x00,
326141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x15, 0x40, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
327141cc406Sopenharmony_ci0x00, 0x05, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
328141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x58, 0x02, 0x00, 0x00, 0x00, 0x00,
329141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
330141cc406Sopenharmony_ci};
331141cc406Sopenharmony_ci/* 1b d1 (set window) before fine cal (read 16 lines of 0xbc40 bytes) */
332141cc406Sopenharmony_cistatic unsigned char setWindowFineCal_S300_600[] = {
333141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x02, 0x58, 0x03, 0x20, 0x00, 0x00,
334141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x15, 0x40, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00,
335141cc406Sopenharmony_ci0x00, 0x05, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
336141cc406Sopenharmony_ci0x00, 0x80, 0x80, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x58, 0x02, 0x00, 0x00, 0x00, 0x00,
337141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
338141cc406Sopenharmony_ci};
339141cc406Sopenharmony_ci/* 1b d1 (set window) before gain/offset tables (write 1 line of 0x17880 bytes) */
340141cc406Sopenharmony_cistatic unsigned char setWindowSendCal_S300_600[] = {
341141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x02, 0x58, 0x03, 0x20, 0x00, 0x00,
342141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3e, 0xc0, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00,
343141cc406Sopenharmony_ci0x00, 0x05, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
344141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x58, 0x02, 0x00, 0x00, 0x00, 0x00,
345141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
346141cc406Sopenharmony_ci};
347141cc406Sopenharmony_ci/* 1b c3 (gain?) command header */
348141cc406Sopenharmony_cistatic unsigned char sendCal1Header_S300_600[] = {
349141cc406Sopenharmony_ci0x7f, 0x0b, 0x7f, 0x0b, 0x7f, 0x0b, 0x7f, 0x0b, 0x7f, 0x0b, 0x7f, 0x0b, 0x00, 0x04
350141cc406Sopenharmony_ci};
351141cc406Sopenharmony_ci/* 1b c4 (offset?) command header */
352141cc406Sopenharmony_cistatic unsigned char sendCal2Header_S300_600[] = {
353141cc406Sopenharmony_ci0xc7, 0x23, 0xc7, 0x23, 0xc7, 0x23, 0x07
354141cc406Sopenharmony_ci};
355141cc406Sopenharmony_ci/* 1b d1 (set window) before scan */
356141cc406Sopenharmony_cistatic unsigned char setWindowScan_S300_600[] = {
357141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x02, 0x58, 0x02, 0x58, 0x00, 0x00,
358141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x15, 0x40, 0x00, 0x00, 0x24, 0x21, 0x00, 0x00,
359141cc406Sopenharmony_ci0x00, 0x05, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
360141cc406Sopenharmony_ci0x00, 0x80, 0x80, 0x01, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
361141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
362141cc406Sopenharmony_ci};
363141cc406Sopenharmony_ci
364141cc406Sopenharmony_ci/*S300/S1300/S1300i can also use a USB power cable, but it requires a different set of params?*/
365141cc406Sopenharmony_ci/*************** S300/S1300/S1300i 150dpi USB *************/
366141cc406Sopenharmony_ci/* 1b d1 (set window) before coarse cal (read 1 line of 0x63c0 bytes) */
367141cc406Sopenharmony_cistatic unsigned char setWindowCoarseCal_S300_150_U[] = {
368141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x01, 0x2c, 0x01, 0x2c, 0x00, 0x00,
369141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x17, 0x20, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
370141cc406Sopenharmony_ci0x00, 0x05, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
371141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x96, 0x00, 0x00, 0x00, 0x00, 0x00,
372141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
373141cc406Sopenharmony_ci};
374141cc406Sopenharmony_ci/* 1b d1 (set window) before fine cal (read 16 lines of 0x63c0 bytes) */
375141cc406Sopenharmony_cistatic unsigned char setWindowFineCal_S300_150_U[] = {
376141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x01, 0x2c, 0x03, 0x20, 0x00, 0x00,
377141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x17, 0x20, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00,
378141cc406Sopenharmony_ci0x00, 0x05, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
379141cc406Sopenharmony_ci0x00, 0x80, 0x80, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x96, 0x00, 0x00, 0x00, 0x00, 0x00,
380141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
381141cc406Sopenharmony_ci};
382141cc406Sopenharmony_ci/* 1b d1 (set window) before gain/offset tables (write 1 line of 0xc780 bytes) */
383141cc406Sopenharmony_cistatic unsigned char setWindowSendCal_S300_150_U[] = {
384141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x01, 0x2c, 0x03, 0x20, 0x00, 0x00,
385141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x60, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00,
386141cc406Sopenharmony_ci0x00, 0x05, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
387141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x96, 0x00, 0x00, 0x00, 0x00, 0x00,
388141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
389141cc406Sopenharmony_ci};
390141cc406Sopenharmony_ci/* 1b c3 (gain?) command header */
391141cc406Sopenharmony_cistatic unsigned char sendCal1Header_S300_150_U[] = { /* plus 0xc780 data bytes */
392141cc406Sopenharmony_ci0xe2, 0x0a, 0xe2, 0x0a, 0xe2, 0x0a, 0xe2, 0x0a, 0xe2, 0x0a, 0xe2, 0x0a, 0x00, 0x04
393141cc406Sopenharmony_ci/*0xa5, 0x0b, 0xa5, 0x0b, 0xa5, 0x0b, 0xa5, 0x0b, 0xa5, 0x0b, 0xa5, 0x0b, 0x00, 0x05*/
394141cc406Sopenharmony_ci};
395141cc406Sopenharmony_ci/* 1b c4 (offset?) command header */
396141cc406Sopenharmony_cistatic unsigned char sendCal2Header_S300_150_U[] = { /* plus 0xc780 data bytes */
397141cc406Sopenharmony_ci0x77, 0x26, 0x77, 0x26, 0x77, 0x26, 0x07
398141cc406Sopenharmony_ci/*0xd0, 0x34, 0xd0, 0x34, 0xd0, 0x34, 0x08*/
399141cc406Sopenharmony_ci};
400141cc406Sopenharmony_ci/* 1b d1 (set window) before scan */
401141cc406Sopenharmony_cistatic unsigned char setWindowScan_S300_150_U[] = {
402141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x96, 0x00, 0x96, 0x00, 0x00,
403141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0b, 0x90, 0x00, 0x00, 0x09, 0x0d, 0x00, 0x00,
404141cc406Sopenharmony_ci0x00, 0x05, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
405141cc406Sopenharmony_ci0x00, 0x80, 0x80, 0x01, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
406141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
407141cc406Sopenharmony_ci};
408141cc406Sopenharmony_ci
409141cc406Sopenharmony_ci/*************** S300/S1300/S1300i 225dpi USB *************/
410141cc406Sopenharmony_ci/* 1b d1 (set window) before coarse cal (read 1 line of 0x63c0 bytes) */
411141cc406Sopenharmony_cistatic unsigned char setWindowCoarseCal_S300_225_U[] = {
412141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x01, 0x2c, 0x01, 0x2c, 0x00, 0x00,
413141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x16, 0x80, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
414141cc406Sopenharmony_ci0x00, 0x05, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
415141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe1, 0x00, 0x00, 0x00, 0x00, 0x00,
416141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
417141cc406Sopenharmony_ci};
418141cc406Sopenharmony_ci/* 1b d1 (set window) before fine cal (read 16 lines of 0x63c0 bytes) */
419141cc406Sopenharmony_cistatic unsigned char setWindowFineCal_S300_225_U[] = {
420141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x01, 0x2c, 0x03, 0x20, 0x00, 0x00,
421141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x16, 0x80, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00,
422141cc406Sopenharmony_ci0x00, 0x05, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
423141cc406Sopenharmony_ci0x00, 0x80, 0x80, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe1, 0x00, 0x00, 0x00, 0x00, 0x00,
424141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
425141cc406Sopenharmony_ci};
426141cc406Sopenharmony_ci/* 1b d1 (set window) before gain/offset tables (write 1 line of 0xc780 bytes) */
427141cc406Sopenharmony_cistatic unsigned char setWindowSendCal_S300_225_U[] = {
428141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x01, 0x2c, 0x03, 0x20, 0x00, 0x00,
429141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x37, 0x20, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00,
430141cc406Sopenharmony_ci0x00, 0x05, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
431141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe1, 0x00, 0x00, 0x00, 0x00, 0x00,
432141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
433141cc406Sopenharmony_ci};
434141cc406Sopenharmony_ci/* 1b c3 (gain?) command header */
435141cc406Sopenharmony_cistatic unsigned char sendCal1Header_S300_225_U[] = { /* plus 0xc780 data bytes */
436141cc406Sopenharmony_ci0xe2, 0x0a, 0xe2, 0x0a, 0xe2, 0x0a, 0xe2, 0x0a, 0xe2, 0x0a, 0xe2, 0x0a, 0x00, 0x04
437141cc406Sopenharmony_ci/*0xa5, 0x0b, 0xa5, 0x0b, 0xa5, 0x0b, 0xa5, 0x0b, 0xa5, 0x0b, 0xa5, 0x0b, 0x00, 0x05*/
438141cc406Sopenharmony_ci};
439141cc406Sopenharmony_ci/* 1b c4 (offset?) command header */
440141cc406Sopenharmony_cistatic unsigned char sendCal2Header_S300_225_U[] = { /* plus 0xc780 data bytes */
441141cc406Sopenharmony_ci0x77, 0x26, 0x77, 0x26, 0x77, 0x26, 0x07
442141cc406Sopenharmony_ci/*0xd0, 0x34, 0xd0, 0x34, 0xd0, 0x34, 0x08*/
443141cc406Sopenharmony_ci};
444141cc406Sopenharmony_ci/* 1b d1 (set window) before scan */
445141cc406Sopenharmony_cistatic unsigned char setWindowScan_S300_225_U[] = {
446141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0xe1, 0x00, 0xc8, 0x00, 0x00,
447141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0xe0, 0x00, 0x00, 0x0c, 0x0c, 0x00, 0x00,
448141cc406Sopenharmony_ci0x00, 0x05, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
449141cc406Sopenharmony_ci0x00, 0x80, 0x80, 0x01, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
450141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
451141cc406Sopenharmony_ci};
452141cc406Sopenharmony_ci
453141cc406Sopenharmony_ci/*************** S300/S1300/S1300i 300dpi USB *************/
454141cc406Sopenharmony_ci/* 1b d1 (set window) before coarse cal (read 1 line of 0x63c0 bytes) */
455141cc406Sopenharmony_ci/* 1b d1 (set window) before coarse cal (read 1 line of 0x63c0 bytes) */
456141cc406Sopenharmony_cistatic unsigned char setWindowCoarseCal_S300_300_U[] = {
457141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x01, 0x2c, 0x01, 0x2c, 0x00, 0x00,
458141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x19, 0xf0, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
459141cc406Sopenharmony_ci0x00, 0x05, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
460141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2c, 0x01, 0x00, 0x00, 0x00, 0x00,
461141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
462141cc406Sopenharmony_ci};
463141cc406Sopenharmony_ci/* 1b d1 (set window) before fine cal (read 16 lines of 0x63c0 bytes) */
464141cc406Sopenharmony_cistatic unsigned char setWindowFineCal_S300_300_U[] = {
465141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x01, 0x2c, 0x03, 0x20, 0x00, 0x00,
466141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x19, 0xf0, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00,
467141cc406Sopenharmony_ci0x00, 0x05, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
468141cc406Sopenharmony_ci0x00, 0x80, 0x80, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2c, 0x01, 0x00, 0x00, 0x00, 0x00,
469141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
470141cc406Sopenharmony_ci};
471141cc406Sopenharmony_ci/* 1b d1 (set window) before gain/offset tables (write 1 line of 0xc780 bytes) */
472141cc406Sopenharmony_cistatic unsigned char setWindowSendCal_S300_300_U[] = {
473141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x01, 0x2c, 0x03, 0x20, 0x00, 0x00,
474141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00,
475141cc406Sopenharmony_ci0x00, 0x05, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
476141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2c, 0x01, 0x00, 0x00, 0x00, 0x00,
477141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
478141cc406Sopenharmony_ci};
479141cc406Sopenharmony_ci/* 1b c3 (gain?) command header */
480141cc406Sopenharmony_cistatic unsigned char sendCal1Header_S300_300_U[] = { /* plus 0xc780 data bytes */
481141cc406Sopenharmony_ci0xe2, 0x0a, 0xe2, 0x0a, 0xe2, 0x0a, 0xe2, 0x0a, 0xe2, 0x0a, 0xe2, 0x0a, 0x00, 0x04
482141cc406Sopenharmony_ci/*0xa5, 0x0b, 0xa5, 0x0b, 0xa5, 0x0b, 0xa5, 0x0b, 0xa5, 0x0b, 0xa5, 0x0b, 0x00, 0x05*/
483141cc406Sopenharmony_ci};
484141cc406Sopenharmony_ci/* 1b c4 (offset?) command header */
485141cc406Sopenharmony_cistatic unsigned char sendCal2Header_S300_300_U[] = { /* plus 0xc780 data bytes */
486141cc406Sopenharmony_ci0x77, 0x26, 0x77, 0x26, 0x77, 0x26, 0x07
487141cc406Sopenharmony_ci/*0xd0, 0x34, 0xd0, 0x34, 0xd0, 0x34, 0x08*/
488141cc406Sopenharmony_ci};
489141cc406Sopenharmony_ci/* 1b d1 (set window) before scan */
490141cc406Sopenharmony_cistatic unsigned char setWindowScan_S300_300_U[] = {
491141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x01, 0x2c, 0x01, 0x2c, 0x00, 0x00,
492141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x19, 0xf0, 0x00, 0x00, 0x12, 0x11, 0x00, 0x00,
493141cc406Sopenharmony_ci0x00, 0x05, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
494141cc406Sopenharmony_ci0x00, 0x80, 0x80, 0x01, 0x0b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
495141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
496141cc406Sopenharmony_ci};
497141cc406Sopenharmony_ci
498141cc406Sopenharmony_ci/*************** S300/S1300/S1300i USB is same as AC power *************/
499141cc406Sopenharmony_ci
500141cc406Sopenharmony_ci/*************** S1300i 150dpi *************/
501141cc406Sopenharmony_ci/* 1b d1 (set window) before coarse cal (read 1 line of 0x5e24 bytes) */
502141cc406Sopenharmony_cistatic unsigned char setWindowCoarseCal_S1300i_150[] = {
503141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x01, 0x2c, 0x01, 0x2c, 0x00, 0x00,
504141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0xa0, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
505141cc406Sopenharmony_ci0x00, 0x05, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
506141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x96, 0x00, 0x00, 0x00, 0x00, 0x00,
507141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
508141cc406Sopenharmony_ci};
509141cc406Sopenharmony_ci/* 1b d1 (set window) before fine cal (read 16 lines of 0x5e24 bytes) */
510141cc406Sopenharmony_cistatic unsigned char setWindowFineCal_S1300i_150[] = {
511141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x01, 0x2c, 0x03, 0x20, 0x00, 0x00,
512141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0xa0, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00,
513141cc406Sopenharmony_ci0x00, 0x05, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
514141cc406Sopenharmony_ci0x00, 0x80, 0x80, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x96, 0x00, 0x00, 0x00, 0x00, 0x00,
515141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
516141cc406Sopenharmony_ci};
517141cc406Sopenharmony_ci/* 1b d1 (set window) before gain/offset tables (write 1 line of 0xbc40 bytes) */
518141cc406Sopenharmony_cistatic unsigned char setWindowSendCal_S1300i_150[] = {
519141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x01, 0x2c, 0x03, 0x20, 0x00, 0x00,
520141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x60, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00,
521141cc406Sopenharmony_ci0x00, 0x05, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
522141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x96, 0x00, 0x00, 0x00, 0x00, 0x00,
523141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
524141cc406Sopenharmony_ci};
525141cc406Sopenharmony_ci/* 1b c3 (gain?) command header */
526141cc406Sopenharmony_cistatic unsigned char sendCal1Header_S1300i_150[] = { /* plus 0xc780 data bytes */
527141cc406Sopenharmony_ci0xc4, 0x06, 0xc4, 0x06, 0xc4, 0x06, 0xc4, 0x06, 0xc4, 0x06, 0xc4, 0x06, 0x00, 0x04
528141cc406Sopenharmony_ci};
529141cc406Sopenharmony_ci/* 1b c4 (offset?) command header */
530141cc406Sopenharmony_cistatic unsigned char sendCal2Header_S1300i_150[] = { /* plus 0xc780 data bytes */
531141cc406Sopenharmony_ci0xd7, 0x3b, 0xd7, 0x3b, 0xd7, 0x3b, 0x07
532141cc406Sopenharmony_ci};
533141cc406Sopenharmony_ci/* 1b d1 (set window) before scan */
534141cc406Sopenharmony_cistatic unsigned char setWindowScan_S1300i_150[] = {
535141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x96, 0x00, 0x96, 0x00, 0x00,
536141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x50, 0x00, 0x00, 0x06, 0xe2, 0x00, 0x00,
537141cc406Sopenharmony_ci0x00, 0x05, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
538141cc406Sopenharmony_ci0x00, 0x80, 0x80, 0x01, 0x2b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
539141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
540141cc406Sopenharmony_ci};
541141cc406Sopenharmony_ci
542141cc406Sopenharmony_ci/*************** S1300i 225dpi *************/
543141cc406Sopenharmony_ci/* 1b d1 (set window) before coarse cal (read 1 line of 0x63c0 bytes) */
544141cc406Sopenharmony_cistatic unsigned char setWindowCoarseCal_S1300i_225[] = {
545141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x01, 0x2c, 0x01, 0x2c, 0x00, 0x00,
546141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0xc0, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
547141cc406Sopenharmony_ci0x00, 0x05, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
548141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe1, 0x00, 0x00, 0x00, 0x00, 0x00,
549141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
550141cc406Sopenharmony_ci};
551141cc406Sopenharmony_ci/* 1b d1 (set window) before fine cal (read 16 lines of 0x63c0 bytes) */
552141cc406Sopenharmony_cistatic unsigned char setWindowFineCal_S1300i_225[] = {
553141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x01, 0x2c, 0x03, 0x20, 0x00, 0x00,
554141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0xc0, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00,
555141cc406Sopenharmony_ci0x00, 0x05, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
556141cc406Sopenharmony_ci0x00, 0x80, 0x80, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe1, 0x00, 0x00, 0x00, 0x00, 0x00,
557141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
558141cc406Sopenharmony_ci};
559141cc406Sopenharmony_ci/* 1b d1 (set window) before gain/offset tables (write 1 line of 0xc780 bytes) */
560141cc406Sopenharmony_cistatic unsigned char setWindowSendCal_S1300i_225[] = {
561141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x01, 0x2c, 0x03, 0x20, 0x00, 0x00,
562141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xa0, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
563141cc406Sopenharmony_ci0x00, 0x05, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
564141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe1, 0x00, 0x00, 0x00, 0x00, 0x00,
565141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
566141cc406Sopenharmony_ci};
567141cc406Sopenharmony_ci/* 1b c3 (gain?) command header */
568141cc406Sopenharmony_cistatic unsigned char sendCal1Header_S1300i_225[] = { /* plus 0xc780 data bytes */
569141cc406Sopenharmony_ci0x2f, 0x07, 0x2f, 0x07, 0x2f, 0x07, 0x2f, 0x07, 0x2f, 0x07, 0x2f, 0x07, 0x00, 0x04
570141cc406Sopenharmony_ci};
571141cc406Sopenharmony_ci/* 1b c4 (offset?) command header */
572141cc406Sopenharmony_cistatic unsigned char sendCal2Header_S1300i_225[] = { /* plus 0xc780 data bytes */
573141cc406Sopenharmony_ci0xa5, 0x3b, 0xa5, 0x3b, 0xa5, 0x3b, 0x07
574141cc406Sopenharmony_ci};
575141cc406Sopenharmony_ci/* 1b d1 (set window) before scan */
576141cc406Sopenharmony_cistatic unsigned char setWindowScan_S1300i_225[] = {
577141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0xe1, 0x00, 0xc8, 0x00, 0x00,
578141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x10, 0x00, 0x00, 0x0c, 0x0c, 0x00, 0x00,
579141cc406Sopenharmony_ci0x00, 0x05, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
580141cc406Sopenharmony_ci0x00, 0x80, 0x80, 0x01, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
581141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
582141cc406Sopenharmony_ci};
583141cc406Sopenharmony_ci
584141cc406Sopenharmony_ci/*************** S1300i 300dpi *************/
585141cc406Sopenharmony_ci/* 1b d1 (set window) before coarse cal (read 1 line of 0x5ee0 bytes) */
586141cc406Sopenharmony_cistatic unsigned char setWindowCoarseCal_S1300i_300[] = {
587141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x01, 0x2c, 0x01, 0x2c, 0x00, 0x00,
588141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0xc0, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
589141cc406Sopenharmony_ci0x00, 0x05, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
590141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2c, 0x01, 0x00, 0x00, 0x00, 0x00,
591141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
592141cc406Sopenharmony_ci};
593141cc406Sopenharmony_ci/* 1b d1 (set window) before fine cal (read 16 lines of 0x5ee0 bytes) */
594141cc406Sopenharmony_cistatic unsigned char setWindowFineCal_S1300i_300[] = {
595141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x01, 0x2c, 0x03, 0x20, 0x00, 0x00,
596141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0xc0, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00,
597141cc406Sopenharmony_ci0x00, 0x05, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
598141cc406Sopenharmony_ci0x00, 0x80, 0x80, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2c, 0x01, 0x00, 0x00, 0x00, 0x00,
599141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
600141cc406Sopenharmony_ci};
601141cc406Sopenharmony_ci/* 1b d1 (set window) before gain/offset tables (write 1 line of 0xbdc0 bytes) */
602141cc406Sopenharmony_cistatic unsigned char setWindowSendCal_S1300i_300[] = {
603141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x01, 0x2c, 0x03, 0x20, 0x00, 0x00,
604141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xa0, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
605141cc406Sopenharmony_ci0x00, 0x05, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
606141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2c, 0x01, 0x00, 0x00, 0x00, 0x00,
607141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
608141cc406Sopenharmony_ci};
609141cc406Sopenharmony_ci/* 1b c3 (gain?) command header */
610141cc406Sopenharmony_cistatic unsigned char sendCal1Header_S1300i_300[] = { /* plus 0xc000 data bytes */
611141cc406Sopenharmony_ci0xdd, 0x06, 0xdd, 0x06, 0xdd, 0x06, 0xdd, 0x06, 0xdd, 0x06, 0xdd, 0x06, 0x00, 0x04
612141cc406Sopenharmony_ci};
613141cc406Sopenharmony_ci/* 1b c4 (offset?) command header */
614141cc406Sopenharmony_cistatic unsigned char sendCal2Header_S1300i_300[] = { /* plus 0xc000 data bytes */
615141cc406Sopenharmony_ci0x75, 0x3c, 0x75, 0x3c, 0x75, 0x3c, 0x07
616141cc406Sopenharmony_ci};
617141cc406Sopenharmony_ci/* 1b d1 (set window) before scan */
618141cc406Sopenharmony_cistatic unsigned char setWindowScan_S1300i_300[] = {
619141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x01, 0x2c, 0x01, 0x2c, 0x00, 0x00,
620141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0xc0, 0x00, 0x00, 0x0d, 0xc4, 0x00, 0x00,
621141cc406Sopenharmony_ci0x00, 0x05, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
622141cc406Sopenharmony_ci0x00, 0x80, 0x80, 0x01, 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
623141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
624141cc406Sopenharmony_ci};
625141cc406Sopenharmony_ci
626141cc406Sopenharmony_ci/*************** S1300i 600dpi AC power is same as S300 *************/
627141cc406Sopenharmony_ci/*************** except the calibration headers *************/
628141cc406Sopenharmony_ci
629141cc406Sopenharmony_ci/* 1b c3 (gain?) command header */
630141cc406Sopenharmony_cistatic unsigned char sendCal1Header_S1300i_USB[] = {
631141cc406Sopenharmony_ci0x4d, 0x06, 0x4d, 0x06, 0x4d, 0x06, 0x4d, 0x06, 0x4d, 0x06, 0x4d, 0x06, 0x00, 0x04
632141cc406Sopenharmony_ci};
633141cc406Sopenharmony_ci/* 1b c4 (offset?) command header */
634141cc406Sopenharmony_cistatic unsigned char sendCal2Header_S1300i_USB[] = {
635141cc406Sopenharmony_ci0x8f, 0x40, 0x8f, 0x40, 0x8f, 0x40, 0x07
636141cc406Sopenharmony_ci};
637141cc406Sopenharmony_ci
638141cc406Sopenharmony_ci/*************** S1300i all resolutions USB power is same as S300 *************/
639141cc406Sopenharmony_ci
640141cc406Sopenharmony_ci/*************** S1100 300dpi USB *************/
641141cc406Sopenharmony_ci/* 1b d1 (set window) before coarse cal (read 1 line of 0x45a0 bytes) */
642141cc406Sopenharmony_cistatic unsigned char setWindowCoarseCal_S1100_300_U[] = {
643141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x01, 0x2c, 0x01, 0x2c, 0x00, 0x00,
644141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x58, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
645141cc406Sopenharmony_ci0x00, 0x05, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
646141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2c, 0x01, 0x00, 0x00, 0x00, 0x00,
647141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
648141cc406Sopenharmony_ci};
649141cc406Sopenharmony_ci/* 1b d1 (set window) before fine cal (read 16 lines of 0x45a0 bytes) */
650141cc406Sopenharmony_cistatic unsigned char setWindowFineCal_S1100_300_U[] = {
651141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x01, 0x2c, 0x03, 0x20, 0x00, 0x00,
652141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x58, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00,
653141cc406Sopenharmony_ci0x00, 0x05, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
654141cc406Sopenharmony_ci0x00, 0x80, 0x80, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2c, 0x01, 0x00, 0x00, 0x00, 0x00,
655141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
656141cc406Sopenharmony_ci};
657141cc406Sopenharmony_ci/* 1b d1 (set window) before gain/offset tables (write 1 line of 0x45a0 bytes) */
658141cc406Sopenharmony_cistatic unsigned char setWindowSendCal_S1100_300_U[] = {
659141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x01, 0x2c, 0x01, 0x2c, 0x00, 0x00,
660141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x22, 0xd0, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
661141cc406Sopenharmony_ci0x00, 0x05, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
662141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2c, 0x01, 0x00, 0x00, 0x00, 0x00,
663141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
664141cc406Sopenharmony_ci};
665141cc406Sopenharmony_ci/* 1b c3 (gain?) command header */
666141cc406Sopenharmony_cistatic unsigned char sendCal1Header_S1100_300_U[] = { /* plus 0x45a0 data bytes */
667141cc406Sopenharmony_ci0x1e, 0x10, 0x1e, 0x10, 0x1e, 0x10, 0x1e, 0x10, 0x1e, 0x10, 0x1e, 0x10, 0x00, 0x03
668141cc406Sopenharmony_ci};
669141cc406Sopenharmony_ci/* 1b c4 (offset?) command header */
670141cc406Sopenharmony_cistatic unsigned char sendCal2Header_S1100_300_U[] = { /* plus 0x45a0 data bytes */
671141cc406Sopenharmony_ci0x63, 0x86, 0x63, 0x86, 0x63, 0x86, 0x07
672141cc406Sopenharmony_ci};
673141cc406Sopenharmony_ci/* 1b d1 (set window) before scan */
674141cc406Sopenharmony_cistatic unsigned char setWindowScan_S1100_300_U[] = {
675141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x01, 0x2c, 0x01, 0x2c, 0x00, 0x00,
676141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x58, 0x00, 0x00, 0x1b, 0xe1, 0x00, 0x00,
677141cc406Sopenharmony_ci0x00, 0x05, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
678141cc406Sopenharmony_ci0x00, 0x80, 0x80, 0x01, 0x3a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
679141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
680141cc406Sopenharmony_ci};
681141cc406Sopenharmony_ci
682141cc406Sopenharmony_ci/*************** S1100 600dpi USB *************/
683141cc406Sopenharmony_ci/* 1b d1 (set window) before coarse cal (read 1 line of 0x3e20 bytes) */
684141cc406Sopenharmony_cistatic unsigned char setWindowCoarseCal_S1100_600_U[] = {
685141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x02, 0x58, 0x02, 0x58, 0x00, 0x00,
686141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, 0xf0, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
687141cc406Sopenharmony_ci0x00, 0x05, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
688141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x58, 0x02, 0x00, 0x00, 0x00, 0x00,
689141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
690141cc406Sopenharmony_ci};
691141cc406Sopenharmony_ci/* 1b d1 (set window) before fine cal (read 16 lines of 0x3e20 bytes) */
692141cc406Sopenharmony_cistatic unsigned char setWindowFineCal_S1100_600_U[] = {
693141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x02, 0x58, 0x03, 0x20, 0x00, 0x00,
694141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, 0xf0, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00,
695141cc406Sopenharmony_ci0x00, 0x05, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
696141cc406Sopenharmony_ci0x00, 0x80, 0x80, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x58, 0x02, 0x00, 0x00, 0x00, 0x00,
697141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
698141cc406Sopenharmony_ci};
699141cc406Sopenharmony_ci/* 1b d1 (set window) before gain/offset tables (write 1 line of 0x7c40 bytes) */
700141cc406Sopenharmony_cistatic unsigned char setWindowSendCal_S1100_600_U[] = {
701141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x02, 0x58, 0x02, 0x58, 0x00, 0x00,
702141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3e, 0x20, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
703141cc406Sopenharmony_ci0x00, 0x05, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
704141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x58, 0x02, 0x00, 0x00, 0x00, 0x00,
705141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
706141cc406Sopenharmony_ci};
707141cc406Sopenharmony_ci/* 1b c3 (gain?) command header */
708141cc406Sopenharmony_cistatic unsigned char sendCal1Header_S1100_600_U[] = { /* plus 0x7c40 data bytes */
709141cc406Sopenharmony_ci0xff, 0x11, 0xff, 0x11, 0xff, 0x11, 0xff, 0x11, 0xff, 0x11, 0xff, 0x11, 0x00, 0x03
710141cc406Sopenharmony_ci};
711141cc406Sopenharmony_ci/* 1b c4 (offset?) command header */
712141cc406Sopenharmony_cistatic unsigned char sendCal2Header_S1100_600_U[] = { /* plus 0x7c40 data bytes */
713141cc406Sopenharmony_ci0x4b, 0x81, 0x4b, 0x81, 0x4b, 0x81, 0x07
714141cc406Sopenharmony_ci};
715141cc406Sopenharmony_ci/* 1b d1 (set window) before scan */
716141cc406Sopenharmony_cistatic unsigned char setWindowScan_S1100_600_U[] = {
717141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x02, 0x58, 0x02, 0x58, 0x00, 0x00,
718141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, 0xf0, 0x00, 0x00, 0x37, 0xbf, 0x00, 0x00,
719141cc406Sopenharmony_ci0x00, 0x05, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
720141cc406Sopenharmony_ci0x00, 0x80, 0x80, 0x01, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
721141cc406Sopenharmony_ci0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
722141cc406Sopenharmony_ci};
723