113 lines
3.6 KiB
C
113 lines
3.6 KiB
C
#ifndef DTP92_H
|
|
|
|
/*
|
|
* Argyll Color Management System
|
|
*
|
|
* Xrite DTP92/94 related defines
|
|
*
|
|
* Author: Graeme W. Gill
|
|
* Date: 5/6/2001
|
|
*
|
|
* 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 dtp92_interp_error() and dtp92_interp_code() in dtp92.c */
|
|
/* if anything of these #defines are added or subtracted */
|
|
|
|
/* Fake Error codes */
|
|
#define DTP92_INTERNAL_ERROR 0x61 /* Internal software error */
|
|
#define DTP92_COMS_FAIL 0x62 /* Communication failure */
|
|
#define DTP92_UNKNOWN_MODEL 0x63 /* Not a DPT92 */
|
|
#define DTP92_DATA_PARSE_ERROR 0x64 /* Read data parsing error */
|
|
|
|
/* Real error code */
|
|
#define DTP92_OK 0x00
|
|
|
|
#define DTP92_BAD_COMMAND 0x01
|
|
#define DTP92_PRM_RANGE 0x02
|
|
#define DTP92_MEMORY_OVERFLOW 0x04
|
|
#define DTP92_INVALID_BAUD_RATE 0x05 /* 92 only */
|
|
#define DTP92_TIMEOUT 0x07
|
|
#define DTP92_SYNTAX_ERROR 0x08
|
|
#define DTP92_NO_DATA_AVAILABLE 0x0B
|
|
#define DTP92_MISSING_PARAMETER 0x0C
|
|
#define DTP92_CALIBRATION_DENIED 0x0D
|
|
#define DTP92_NEEDS_OFFSET_CAL 0x16
|
|
#define DTP92_NEEDS_RATIO_CAL 0x17 /* 92 only */
|
|
#define DTP92_NEEDS_LUMINANCE_CAL 0x18
|
|
#define DTP92_NEEDS_WHITE_POINT_CAL 0x19
|
|
#define DTP92_NEEDS_BLACK_POINT_CAL 0x1A
|
|
#define DTP92_NEEDS_OFFSET_DRIFT_CAL 0x1B /* 94 only */
|
|
#define DTP92_INVALID_READING 0x20
|
|
#define DTP92_BAD_COMP_TABLE 0x25
|
|
#define DTP92_TOO_MUCH_LIGHT 0x28
|
|
#define DTP92_NOT_ENOUGH_LIGHT 0x29
|
|
|
|
#define DTP92_BAD_SERIAL_NUMBER 0x40
|
|
|
|
#define DTP92_NO_MODULATION 0x50 /* 92 only */
|
|
|
|
#define DTP92_EEPROM_FAILURE 0x70
|
|
#define DTP92_FLASH_WRITE_FAILURE 0x71
|
|
#define DTP92_BAD_CONFIGURATION 0x72 /* 94 only */
|
|
#define DTP92_INST_INTERNAL_ERROR 0x7F /* 92 only */
|
|
|
|
|
|
/* DTP92 communication object */
|
|
struct _dtp92 {
|
|
INST_OBJ_BASE
|
|
|
|
inst_disptypesel *_dtlist; /* Base list */
|
|
inst_disptypesel *dtlist; /* Display Type list */
|
|
int ndtlist; /* Number of valid dtlist entries */
|
|
int icx; /* Internal calibration index, 0 = CRT, 1 = LCD */
|
|
disptech dtech; /* Display technology enum */
|
|
int cbid; /* current calibration base ID, 0 if not a base */
|
|
int ucbid; /* Underlying base ID if being used for matrix, 0 othewise */
|
|
int refrmode; /* 0 for constant, 1 for refresh display */
|
|
double ccmat[3][3]; /* Colorimeter correction matrix */
|
|
|
|
int need_offset_cal; /* Flags to indicate type of calibration needed */
|
|
int need_ratio_cal;
|
|
inst_opt_type trig; /* Reading trigger mode */
|
|
|
|
}; typedef struct _dtp92 dtp92;
|
|
|
|
/* Constructor */
|
|
extern dtp92 *new_dtp92(icoms *icom, instType itype);
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#define DTP92_H
|
|
#endif /* DTP92_H */
|