119 lines
3.9 KiB
C
119 lines
3.9 KiB
C
#ifndef DTP22_H
|
|
|
|
/*
|
|
* Argyll Color Management System
|
|
*
|
|
* Xrite DTP22 related defines
|
|
*
|
|
* Author: Graeme W. Gill
|
|
* Date: 17/11/2006
|
|
*
|
|
* Copyright 2001 - 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.
|
|
*/
|
|
|
|
/*
|
|
If you make use of the instrument driver code here, please note
|
|
that it is the author(s) of the code who are 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"
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
/* Note: update dtp22_interp_error() and dtp22_interp_code() in dtp22.c */
|
|
/* if anything of these #defines are added or subtracted */
|
|
|
|
/* Fake Error codes */
|
|
#define DTP22_INTERNAL_ERROR 0x61 /* Internal software error */
|
|
#define DTP22_COMS_FAIL 0x62 /* Communication failure */
|
|
#define DTP22_UNKNOWN_MODEL 0x63 /* Not a DPT22 */
|
|
#define DTP22_DATA_PARSE_ERROR 0x64 /* Read data parsing error */
|
|
#define DTP22_UNKN_OEM 0x69 /* Unrecognized OEM */
|
|
#define DTP22_BAD_PASSWORD 0x6A /* Password wasn't accepted */
|
|
|
|
/* Real error code */
|
|
#define DTP22_OK 0x00
|
|
|
|
#define DTP22_BAD_COMMAND 0x01
|
|
#define DTP22_PRM_RANGE 0x02
|
|
#define DTP22_MEMORY_OVERFLOW 0x04
|
|
#define DTP22_INVALID_BAUD_RATE 0x05
|
|
#define DTP22_TIMEOUT 0x07
|
|
#define DTP22_SYNTAX_ERROR 0x08
|
|
#define DTP22_INCORRECT_DATA_FORMAT 0x09
|
|
#define DTP22_WEAK_LAMP 0x10
|
|
#define DTP22_LAMP_FAILED 0x11
|
|
#define DTP22_UNSTABLE_CAL 0x12
|
|
#define DTP22_CAL_GAIN_ERROR 0x13
|
|
#define DTP22_SENSOR_FAILURE 0x14
|
|
#define DTP22_BLACK_CAL_TOO_HIGH 0x15
|
|
#define DTP22_UNSTABLE_BLACK_CAL 0x16
|
|
#define DTP22_CAL_MEM_ERROR 0x17
|
|
#define DTP22_FILTER_MOTOR 0x21
|
|
#define DTP22_LAMP_FAILED_READING 0x22
|
|
#define DTP22_POWER_INTR_READING 0x23
|
|
#define DTP22_SIG_OFFSETS_READING 0x24
|
|
#define DTP22_RD_SWITCH_TO_SOON 0x25
|
|
#define DTP22_OVERRANGE 0x26
|
|
#define DTP22_FILT_POS_ERROR 0x28
|
|
#define DTP22_FACT_TST_CONNECT 0x2A
|
|
#define DTP22_FACT_TST_LAMP_INH 0x2B
|
|
|
|
|
|
#define DTP22_EEPROM_FAILURE 0x70
|
|
#define DTP22_PROGRAM_WRITE_FAIL 0x71
|
|
#define DTP22_MEMORY_WRITE_FAIL 0x72
|
|
|
|
/* DTP22 communication object */
|
|
struct _dtp22 {
|
|
INST_OBJ_BASE
|
|
|
|
/* *** DTP41 private data **** */
|
|
unsigned char key[4]; /* Challenge/response key */
|
|
int keyvalid; /* nz if key is valid */
|
|
int serno; /* Serial number of instrument */
|
|
int oemsn; /* Serial number of OEM */
|
|
int plaqueno; /* Serial number of calibration plaque */
|
|
inst_mode mode; /* Currently instrument mode */
|
|
inst_mode lastmode; /* Last requested mode */
|
|
int need_cal; /* White calibration needed flag */
|
|
int noutocalib; /* Don't mode change or auto calibrate */
|
|
inst_opt_type trig; /* Reading trigger mode */
|
|
|
|
xcalstd native_calstd; /* Instrument native calibration standard */
|
|
xcalstd target_calstd; /* Returned calibration standard */
|
|
|
|
int custfilt_en; /* Custom filter enabled */
|
|
xspect custfilt; /* Custom filter */
|
|
|
|
}; typedef struct _dtp22 dtp22;
|
|
|
|
/* Constructor */
|
|
extern dtp22 *new_dtp22(icoms *icom, instType itype);
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#define DTP22_H
|
|
#endif /* DTP22_H */
|