blob: c575c67ec9b9287dbd25873ece9d58565d5c80f3 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
|
#ifndef DTP20_H
/*
* Argyll Color Correction System
*
* Xrite DTP20 related defines
*
* Author: Graeme W. Gill
* Date: 10/1/2007
*
* Copyright 1996 - 2013 Graeme W. Gill
* All rights reserved.
*
* This material is licenced under the GNU GENERAL PUBLIC LICENSE Version 2 or later :-
* see the License2.txt file for licencing details.
*
* Derived from DTP51.h
*/
/*
If you make use of the instrument driver code here, please note
that it is the author(s) of the code who take responsibility
for its operation. Any problems or queries regarding driving
instruments with the Argyll drivers, should be directed to
the Argyll's author(s), and not to any other party.
If there is some instrument feature or function that you
would like supported here, it is recommended that you
contact Argyll's author(s) first, rather than attempt to
modify the software yourself, if you don't have firm knowledge
of the instrument communicate protocols. There is a chance
that an instrument could be damaged by an incautious command
sequence, and the instrument companies generally cannot and
will not support developers that they have not qualified
and agreed to support.
*/
#include "inst.h"
/* Fake Error codes */
#define DTP20_INTERNAL_ERROR 0x81 /* Internal software error */
#define DTP20_COMS_FAIL 0x82 /* Communication failure */
#define DTP20_UNKNOWN_MODEL 0x83 /* Not a DPT51 or DTP52 */
#define DTP20_DATA_PARSE_ERROR 0x84 /* Read data parsing error */
#define DTP20_NOT_EMPTY 0x89 /* Trying to read strips when not empty */
#define DTP20_UNEXPECTED_STATUS 0x90 /* Instrument has unexpected status */
/* Real error code */
#define DTP20_OK 0x00
#define DTP20_MEASUREMENT_STATUS 0x01
#define DTP20_BAD_COMMAND 0x11
#define DTP20_BAD_PARAMETERS 0x12
#define DTP20_PRM_RANGE_ERROR 0x13
#define DTP20_BUSY 0x14
#define DTP20_MEASUREMENT_ERROR 0x20
#define DTP20_TIMEOUT 0x21
#define DTP20_BAD_STRIP 0x22
#define DTP20_NEEDS_CAL_ERROR 0x28
#define DTP20_CAL_FAILURE_ERROR 0x29
#define DTP20_INSTRUMENT_ERROR 0x30
#define DTP20_LAMP_ERROR 0x31
#define DTP20_BAD_TID 0x33
#define DTP20_FLASH_ERASE_FAILURE 0x34
#define DTP20_FLASH_WRITE_FAILURE 0x35
#define DTP20_FLASH_VERIFY_FAILURE 0x36
#define DTP20_MEMORY_ERROR 0x37
#define DTP20_ADC_ERROR 0x38
#define DTP20_PROCESSOR_ERROR 0x39
#define DTP20_BATTERY_ERROR 0x3A
#define DTP20_BATTERY_LOW_ERROR 0x3B
#define DTP20_INPUT_POWER_ERROR 0x3C
#define DTP20_BATTERY_ABSENT_ERROR 0x3E
#define DTP20_BAD_CONFIGURATION 0x3F
#define DTP20_BAD_SPOT 0x41
#define DTP20_END_OF_DATA 0x42
#define DTP20_DBASE_PROFILE_NOT_EMPTY 0x43
#define DTP20_MEMORY_OVERFLOW_ERROR 0x44
#define DTP20_BAD_CALIBRATION 0x45
#define DTP20_CYAN_CAL_ERROR 0x50
#define DTP20_MAGENTA_CAL_ERROR 0x51
#define DTP20_YELLOW_CAL_ERROR 0x52
#define DTP20_PATCH_SIZE_ERROR 0x53
#define DTP20_FAIL_PAPER_CHECK 0x54
#define DTP20_SHORT_SCAN_ERROR 0x55
#define DTP20_STRIP_READ_ERROR 0x56
#define DTP20_SHORT_TID_ERROR 0x57
#define DTP20_SHORT_STRIP_ERROR 0x58
#define DTP20_EDGE_COLOR_ERROR 0x59
#define DTP20_SPEED_ERROR 0x5A
#define DTP20_UNDEFINED_SCAN_ERROR 0x5B
#define DTP20_INVALID_STRIP_ID 0x5C
#define DTP20_BAD_SERIAL_NUMBER 0x5D
#define DTP20_TID_ALREADY_SCANNED 0x5E
#define DTP20_PROFILE_DATABASE_FULL 0x5F
#define DTP20_SPOT_DATABASE_FULL 0x60
#define DTP20_TID_STRIP_MIN_ERROR 0x61
#define DTP20_REREAD_DATABASE_FULL 0x62
#define DTP20_STRIP_DEFINE_TOO_SHORT 0x63
#define DTP20_STRIP_DEFINE_TOO_LONG 0x64
#define DTP20_BAD_STRIP_DEFINE 0x65
#define DTP20_BOOTLOADER_MODE 0x7F
/* DTP20 communication object */
struct _dtp20 {
/* **** base instrument class **** */
INST_OBJ_BASE
/* *** DTP20 private data **** */
inst_mode cap; /* Instrument mode capability */
inst2_capability cap2; /* Instrument capability 2 */
inst3_capability cap3; /* Instrument capability 3 */
inst_mode mode; /* Currently instrument mode */
int need_cal; /* Got a need_cal error */
inst_opt_type trig; /* Reading trigger mode */
int savix; /* Index of last saved spot reading read */
}; typedef struct _dtp20 dtp20;
/* Constructor */
extern dtp20 *new_dtp20(icoms *icom, instType itype);
#define DTP20_H
#endif /* DTP20_H */
|