39
Spectrophotometer Serial interface manual Edition 2 GretagMacbeth 98.50.31 SI 0303 en Printed in Switzerland

GRETAG SPMxx Serial Interface Teil 1 - sdg-net.co.jp · Table of contents Table of contents ... protocol and functional descriptions of the serial interface of the ... CIE L*a*b*,

  • Upload
    dothuy

  • View
    218

  • Download
    1

Embed Size (px)

Citation preview

Spectrophotometer

Serial interface manual

Edition 2

GretagMacbeth 98.50.31 SI 0303 en Printed in Switzerland

Table of contents

Table of contents

1 GENERAL 5

1.1 Compatibility to other GretagMacbeth spectrophotometers 5

1.2 Start of communication 5

1.3 Short introduction in the principles of communication 6

1.4 Data transmission format 7 1.4.1 The decimal format 7 1.4.2 The hexadecimal format 8

2 PROGRAMMING THE SPECTROEYE 9

2.1 Procedure to initialize the SpectroEye 9

2.2 Procedure to execute measurements 10

2.3 Execute measurements and read values 11 2.3.1 Executing measurement by a remote host 11 2.3.2 Executing measurement by pressing measurement key 12

3 SPECTROEYE COMMUNICATION PROTOCOL 13

3.1 The SpectroEye communication functions 13 3.1.1 Measurements 13 3.1.2 Optical parameters 14 3.1.3 Query measuring results 15 3.1.4 Table values 18 3.1.5 Device data's 18 3.1.6 Several other instructions 19 3.1.7 Error messages 21

4 ALL COMMUNICATION TYPES 23 4.1.1 General 23 4.1.2 Alphabetical listing and description of all types 23

APPENDIX A - CONNECTIONS 33

APPENDIX B - SERIAL INTERFACE SPECIFICATION 35

APPENDIX C - SPECTROEYE COMMAND SUMMARY 37

3

General

1 General This manual contains specifications, protocol and functional descriptions of the serial interface of the SpectroEye spectrophotometer. All commands for the SpectroEye are listed in chapter 3. Each command is built up with different types. Detailed description of each type can be found in chapter 4 listed in alphabetical order.

1.1 Compatibility to other GretagMacbeth spectrophotometers The communication protocol of the SpectroEye is compatible to the protocol of the SPM and Spectrolino spectrophotometers. This makes it possible to use former programs written for this units. However, a few new commands have been introduced and some commands have been removed for the SpectroEye. The SpectroEye commands only work in the "Single measurement" mode.

1.2 Start of communication Since the computer in the SpectroEye switches off immediately after every task, ASCII(255) must be transmitted for at least 250 ms to initialize and synchronize the SpectroEye prior to every communication type. At 9600 Baud, this corresponds to a repetition of ASCII(255) 250 times. At least 2 characters must be sent when the data transmission rate is less than 300 Baud. The SpectroEye must be queried immediately after these startup characters. In general, the initializing characters must be sent before any query, and it must be ensured that there is never an interruption during data transmission of a query. Otherwise, the SpectroEye will switch off immediately. It is therefore advisable to first set up the query consisting of the startup characters and query characters in a string and then transfer the entire string.

5

Section 1

1.3 Short introduction in the principles of communication Data transmission is performed using the query / reply principle: For each query sent from the host computer, the SpectroEye sends the respective reply. - Each query from the host begins with a start character. - Each reply from the SpectroEye begins with a start character. Queries and replies are concluded with "<CR><LF>". (<CR> = ASCII (13)) and (<LF> = ASCII (10)). After each query has been terminated with "<CR><LF>" the SpectroEye executes the command and sends the respective reply. All data are transmitted in ASCII code. Only printable characters are used which facilitates monitoring of data line communication. A complete query from the host is structured as followed: <Start character> <Message Number> [no, one or more parameters] <CR><LF>

↑ ↑ ↑ ↑ a) b) c) d)

where

a) <Start character> → Host start mark: Each query from the host starts with a special character to indicate the beginning.

b) <Message Number> → Each message has its message number to determine the function of the query.

c) [no, one or more parameters] → Some queries need no additional parameters, others need one or more parameters. Refer to section 3 for more detailed information about the function of the queries.

d) <CR><LF> → Each message has to be terminated by the stop mark <CR><LF>.

A complete reply from the SpectroEye is structured as followed:

<Start character> <Message Number> [one or more parameters] <CR><LF>

↑ ↑ ↑ ↑ a) b) c) d)

where

a) <Start character> → SpectroEye start mark: Each reply from the SpectroEye starts with a special start sign to indicate the beginning.

b) <Message Number> → Each reply has its message number to determine the function of the reply.

c) [one or more parameters] → The results of the reply.

d) <CR><LF> → Each reply will be terminated by the stop mark <CR><LF>.

6

General

1.4 Data transmission format Two data formats, i.e. the hexadecimal and decimal formats are available for data transmission. In the hexadecimal format, a copy of the memory contents is transferred, while in the decimal format, values are converted into readable ones. The SpectroEye answers each query in the format in which it was received. 1.4.1 The decimal format The SpectroEye will read the parameters of a query as decimal values if the first character after the start mark is a blank. At least one blank (' ' = ASCII(32)) must be sent prior to each parameter in order to separate individual values. Each value may only be displayed with a maximum of 12 characters (excluding blanks). If a value has more than 12 characters, the SpectroEye considers only the first 12 characters. The device replies with the same format as the query was. Different data types are coded as follows: One byte types: (e.g. BOOLEAN, CHAR, tabulation types) Decimal value: 81 Perm. query formats: ' 81', ' 000000000081 ', ' 081', ' +81', ... Reply format: ' 81' (= ASCII(32, 32, 56, 49)) Two byte types: (e.g. INTEGER, CARDINAL, SET) Decimal value: 1234 Perm. query formats: ' 1234', ' 1234', ' +00000001234', ... CARDINAL reply format: ' 1234' (= ASCII(32, 32, 49, 50, 51, 52)) INTEGER reply format: ' 1234' (= ASCII(32, 32, 32, 49, 50, 51, 52)) Four byte type: (FLOAT) Decimal value: -3.456 Perm. query formats: ' -3.456', ' -0000003.456', ' -3456E-03', ... Reply format: ' -3.4560' (= ASCII(32, 32, 32, 32, 45, 51, 46, 52, 53, 54, 48)) Example of a complete query and the respective reply: Query: '; 3 9<CR><LF>' Reply: ': 14 9 1.2712 1.2229 1.3888 2.3538 3 1 0<CR><LF>' The above-mentioned query/reply in ASCII: Query: ASCII( 59, 32, 51, 32, 57, 13, 10) Reply: ASCII( 58, 32, 32, 49, 52, 32, 32, 32, 57, 32, 32, 32, 32, 32, 49, 46, 50, 55, 49, 50, 32,

32, 32, 32, 32, 49, 46, 50, 50, 50, 57, 32, 32, 32, 32, 32, 49, 46, 51, 56, 56, 56, 32, 32, 32, 32, 32, 51, 46, 51, 53, 51, 56, 32, 32, 32, 51, 32, 32, 32, 49, 32, 32, 32, 32, 32, 48, 13, 10)

(The meaning of the above-mentioned query will be explained later).

7

Section 1

1.4.2 The hexadecimal format The hexadecimal format will be recognized when the message value starts immediately after the start character ';'. No Space is required between two message parameters. The answer of a query will also be in hexadecimal format. Note: The SpectroEye uses the INTEL format. For all data which consists of more than one

byte, the least significant byte is always transferred first. Different Data Types are coded as followed: One byte types: (e.g. BOOLEAN, tabulation types) Decimal value: 181 Hexadecimal value: B5 Transmitted as: 'B5' (= ASCII(66,53)) Two byte types: (e.g. INTEGER, CARDINAL, SET) Decimal value: 2346 Hexadecimal value: 092A Transmitted as: '2A09' (= ASCII(50,65,48,57)) Four byte type: (FLOAT) The FLOAT type corresponds to the IEEE 754 single precision float format and is defined as follows: SEEE EEEE EMMM MMMM MMMM MMMM MMMM MMMM (32 Bit) S-field: (Sign) 1: negative; 0: positive E-field: exponent + 127 (E-field: 0..255 ➙ exponent: -127..128) M-field: Mantisse standardized, 23 bit (MSB is always 1 and is therefore omitted) Example: value: 0.1516 Hexadecimal value: 3E1B3D07 Transmitted as: '073D1B3E' (= ASCII(48,55,51,68,49,66,51,69)) Example of a complete query and the respective reply: Query: ';0309<CR><LF>' Reply: ':0E0918B6A23FD6869C3F37C5B13FE3A4164003010000<CR><LF>' The above-mentioned query/reply in ASCII: Query: ASCII( 59, 48, 51, 48, 57, 13, 10) Reply: ASCII( 58, 48, 69, 48, 57, 49, 56, 66, 54, 65, 50, 51, 70, 68, 54, 56, 54, 57, 67, 51, 70,

51, 55, 67, 53, 66, 49, 51, 70, 69, 51, 65, 52, 49, 54, 52, 48, 48, 51, 48, 49, 48, 48, 48, 48, 13, 10)

(The meaning of the above-mentioned query will be explained later.)

8

Programming the SpectroEye

2 Programming the SpectroEye

2.1 Procedure to initialize the SpectroEye When starting a program, it is recommended to do an initialization sequence at first to make sure the measuring device is in a defined state.

Check baud rate Change the baud rate of the host

Check connection

Start initialization routine

Correct answer ?

Device is a SpectroEye ?

All baud rates checked ?

End of initialization routine

Refer to the manual of the device

No

Yes

Yes

Yes

No

No

Check baud rate: • Send the instruction "ParameterRequest" (<;00>/{; 0}) to the

SpectroEye. If the reply starts with "ParameterAnswer" (<;0B>/{;11}), the baud rate is correct. If not, change the baud rate of thecomputer and try again until the correct answer is received.

• It is recommended to scan for the baud rate in the following order: 9600, 19200, 57600, 38400, 28800, 4800, 2400, 1200, 600, 300 Baud.

Device is a SpectroEye: • Send the instruction "TargetIdRequest" (<;2B>/{; 43}) and check the

<TargetTechType> (refer to section 3.1.5.2).

9

Section 2

2.2 Procedure to execute measurements To execute reflection measurements it is recommended to use the following sequence:

Yes

Set measurement conditions

Start of measurement routine

First measurement after starting host

application?

Execute more measurements ?

End of measurement routine

Yes

Set physical filter

Perform a measurement and read values

No

No

First measurement after starting host application ?: • Control with the host application, if this is the first measurement after

starting the application. If the first measurement will be executed, the physical filter must be set.

Set physical filter: • Send the instruction "FilterDownload" (<;B2.....>/{; 178 ....}) and set

the physical filter (refer to section 3.1.2.3). Set measurement conditions: • Send the instruction "ParameterDownload" (<;16.....>/{; 22 ....}) and

set the measurement conditions (white base, illuminant, ...) (refer to section 3.1.2.2).

Perform a measurement and read values: • (refer to section 2.3). If you use paper white, in advance perform a

paper white measurement.

10

Programming the SpectroEye

2.3 Execute measurements and read values There are different methods to get measurement values of a color field. A measurement can be performed by the computer or by pressing the measurement key of the SpectroEye. 2.3.1 Executing measurement by a remote host After performing a measurement with 'ExecMeasurement', the values of the color field can be queried. See section 3.1.3 for further information.

Start of perform measurement

and read values

End of perform measurement

and read values

Execute more measurements ?

No

Yes

Query the measuring result

Perform a measurement

Perform a measurement: • Send the instruction "ExecMeasurement" (<;20>/{; 32}) (refer to section

3.1.1.1). Query the measuring result: • Query the desired measuring result (e.g.: CIE L*a*b*, Spectrum). (refer to

section 3.1.3) Execute more measurements ?: • Another measurement may be performed.

Example 1: (hexadecimal protocol) ;20<CR><LF> Perform a measurement :2500<CR><LF> ;BA0903<CR><LF> Query 'CIE L*u*v*' :BB09039B3F054247D68B423A7391400010301020000<CR><LF> ;BA0900<CR><LF> Query 'CIE xyY' :BB09008131093FF4DEA33EC4D4F540010301020000<CR><LF> Example 2: (decimal protocol) ; 32<CR><LF> Perform a measurement : 37 0<CR><LF> ; 186 9 3<CR><LF> Query 'CIE L*u*v*' : 187 9 3 33.3121 69.9185 4.5453 1 3 1 2 0<CR><LF> ; 186 9 0<CR><LF> Query 'CIE xyY' : 187 9 0 0.5359 0.3201 7.6822 1 3 1 2 0<CR><LF>

11

Section 2

2.3.2 Executing measurement by pressing measurement key If a measurement should be executed directly at the device, the handling is a little bit more difficult. Here, the computer has to poll with the command 'NewMeasureRequest' until a measurement has been executed. Then, further commands can be sent by the computer in order to get the desired values.

Start of perform measurement

and read values

End of perform measurement

and read values

Execute more measurements ?

No

Yes

Query the measuring result

Query if new measurement done ?

No

Yes

Query if new measurement done ?: • Send the instruction "NewMeasureRequest" (<;07>/{; 7}) and check if a

new measurement has be performed by pressing the measurement key (refer to section 3.1.6.1).

Query the measuring result: • Query the desired measuring result (e.g.: CIE L*a*b*, Spectrum). (refer to

section 3.1.3) Execute more measurements ?: • Another measurement may be performed.

Example: (hexadecimal protocol) ;07<CR><LF> Measurement performed since the last query? :120109<CR><LF> No ask again / Yes continue ;BA0900<CR><LF> Query 'CIE xyY' :BB09008131093FF4DEA33EC4D4F540010301020000<CR><LF> ;BA0903<CR><LF> Query 'CIE L*u*v*' :BB09039B3F054247D68B423A7391400010301020000<CR><LF>

12

SpectroEye communication protocol

3 SpectroEye communication protocol

3.1 The SpectroEye communication functions All queries and instructions, that can be performed using the serial interface, are listed in this section. The types (building blocks of the instructions) are listed in alphabetical order in section 4. When type names are written within the characters "<" and ">" (e.g. <ErrorType>) the values consist of one byte. Names within brackets (e.g. [SpectrumType]) consist of more than one byte. 3.1.1 Measurements 3.1.1.1 Perform measurement Performs a measurement. (Message numbers <20>/{32}, <25>/{37})

ExecMeasurement ;<20> <CR><LF> ExecError :<25> <ErrorType> <CR><LF>

Example: Hexadecimal query --> ;20<CR><LF> Hexadecimal reply --> :2500<CR><LF> Decimal query --> ; 32<CR><LF> Decimal reply --> : 37 0<CR><LF>

Meaning of the reply: Measurement performed, no error occurred.

1) : These functions are only valid for the SpectroEye *)x.xx : These features are not available for Software-Releases earlier than x.xx

13

Section 3

3.1.2 Optical parameters 3.1.2.1 Query colorimetric parameters Queries on the parameters density standard, white base, illuminant, observer angle, physical filter setting: (Message numbers <00>/{0}, <0B>/{11})

ParameterRequest ;<00> <CR><LF> ParameterAnswer :<0B> <DStdType> <WBaseType> <IllumType> <ObserverType>

<ActualFilterType> <CR><LF>

Example: Hexadecimal query --> ;00<CR><LF> Hexadecimal reply --> :0B0001000002<CR><LF> Decimal query --> ; 0<CR><LF> Decimal reply --> : 11 0 1 0 0 2<CR><LF>

Meaning of the reply: Density standard = ANSI A; White base = Absolute; Illuminant type = Illuminant A; Observer angle = 2°; Physical filter = Pol

3.1.2.2 Sets the colorimetric parameters Set parameters density standard, white base, illuminant, observer angle. (Message numbers <16>/{22}, <1F>/{31})

ParameterDownload ;<16> <DStdType> <WBaseType> <IllumType> <ObserverType> <CR><LF>

DownloadError :<1F> [RemoteErrorSet] <CR><LF> 3.1.2.3 Set physical filter

1)

Sets the physical filter in the device. (Message numbers <B2>/{178}, <1F>/{31})

FilterDownload ;<B2> <ActualFilterType> <CR><LF> DownloadError :<1F> [RemoteErrorSet]<CR><LF>

1): These functions are only valid for the SpectroEye *)x.xx: These features are not available for Software-Releases earlier than x.xx

14

SpectroEye communication protocol

3.1.3 Query measuring results 3.1.3.1.1 Query of spectral measuring results and belonging parameters Queries the spectrum of the last measured field and the actual parameters: (Message numbers <B8>/{184}, <B9>/{185}).

SpecParameterRequest ;<B8> <09> <SpectType> <CR><LF> SpecParameterAnswer :<B9> <09> <SpectType> [SpectrumType] <RefValidType>

<ActualFilterType> <WBaseType> <02> [RemoteErrorSet] <CR><LF>

Example: Hexadecimal query --> ;B80901<CR><LF> Hexadecimal reply --> :B9090141498940F8E2634032F04740E8613540930F2A40F5DA20408C27174

0E8FF0E407BBA0840955902405774F93FC054F03FDA0EE63FA381D83F8265CA3F6FD6BD3FBE97B53F0B6FB03F9CA3AD3F37A6A83F28A6A33FAEBEA23F4E00A43FB277A63F6B4FA93FCBB0AC3F9A09B03FC87CB33FC8DDB63F9271BA3F128DBE3F99ACC33FFB22C93FDE90CF3F1B40D73F72EFE03F010301020000 <CR><LF>

Decimal query --> ; 184 9 1<CR><LF> Decimal reply --> : 185 9 1 4.2902 3.5607 3.1240 2.8341 2.6572 2.5134 2.3618

2.2344 2.1364 2.0367 1.9489 9.8776 1.7973 1.6915 1.5812 1.4831 1.4187 1.3784 1.3566 1.3176 1.2785 1.2714 1.2813 1.3005 1.3227 1.3491 1.3753 1.4022 1.4286 1.4566 1.4887 1.5287 1.5714 1.6216 1.6816 1.7573 1 3 1 2 0<CR><LF>

Meaning of the reply: Density spectrum of measured field: D[380] = 4.2902; .. D[730] = 1.7573; the measured values are valid; Actual filter is D65; White base is absolute; no communication error reported.

3.1.3.1.2 Query of spectral measuring results Similar to the upper command "SpecParameterRequest" this command queries the spectrum of a measured field, but without the measurement parameter. This command is also valid for the SPM family. For new developments, the command "SpecParameterRequest" is recommended. (Message numbers <05>/{5},<10>/{16}).

SpectrumRequest ;<05> <09> <SpectType> <CR><LF> SpectrumAnswer :<10> <09> <SpectType> [SpectrumType] <RefValidType>

[RemoteErrorSet] <CR><LF>

1) : These functions are only valid for the SpectroEye *)x.xx : These features are not available for Software-Releases earlier than x.xx

15

Section 3

3.1.3.2 Query of colorimetric measuring results 3.1.3.2.1 Query of colorimetric measuring results and belonging parameters Query of all 3 parameters (e.g. L*, a*, b*) in the respective color space for the last measured field and the actual parameters: (Message numbers <BA>/{186}, <BB>/{187})

CParameterRequest ;<BA> <09> <CType> <CR><LF> CParameterAnswer :<BB> <09> <CType> [ColorType] <RefValidType> <ActualFilterType>

<WBaseType> <02> <IllumType> <ObserverType> [RemoteErrorSet] <CR><LF>

Example: Hexadecimal query --> ;BA0903<CR><LF> Hexadecimal reply --> :BB090311178D421305B642B5E30F420102010200000000<CR><LF> Decimal query --> ; 186 9 3<CR><LF> Decimal reply --> : 187 9 3 70.5451 91.0099 35.9724 1 2 1 2 0 0 0<CR><LF>

Meaning of the reply: CIE L*u*v* values of a measured field: L = 70.5451, u = 91.0099, v = 35.9724; the measured value is valid; Actual filter is Pol; White base is absolute; Illuminant is Illuminant A; Observer angle is 2°, no communication error.

3.1.3.2.2 Query of colorimetric measuring results and belonging parameters Similar to the upper command "CParameterRequest" this command queries all 3 parameters (e.g. L*, a*, b*) in the respective color space for the last measured field, but without the measurement parameter. This command is also valid for the SPM family. For new developments, the command "CParameterRequest" is recommended. (Message numbers <06>/{6}, <11>/{17})

CRequest ;<06> <09> <CType> <CR><LF> CAnswer :<11> <09> <CType> [ColorType] <RefValidType> [RemoteErrorSet]

<CR><LF>

1): These functions are only valid for the SpectroEye *)x.xx: These features are not available for Software-Releases earlier than x.xx

16

SpectroEye communication protocol

3.1.3.3 Query of densitometric measuring results 3.1.3.3.1 Query of densitometric measuring results and belonging parameters Query density of the last measured field and the actual parameters: (Message numbers <BC>/{188}, <BD>/{189})

DensityParameterRequest ;<BC> <09> <CR><LF> DensityParameterAnswer :<BD> <09> [DensityFilterArrayType] <StdDensityFilterType>

<RefValidType> <ActualFilterType> <WBaseType> <02> <DStdType> [RemoteErrorSet] <CR><LF>

Explanation: StdDensityFilterType filter selected from automatic filter selection

Example: Hexadecimal query --> ;BC09<CR><LF> Hexadecimal reply --> :BD0918B6A23FD6869C3F37C5B13FE3A416400301020002020000<CR><LF> Decimal query --> ; 188 9<CR><LF> Decimal reply --> : 189 9 1.2712 1.2229 1.3888 2.3538 3 1 2 0 2 2 0<CR><LF>

Meaning of the reply: Density value: Db = 1.2712; ... Dy = 2.3538; Automatic filter selection: Dy; Measuring value is valid; Actual filter is Pol; White base is paper; Density standard is DIN; no communication error

3.1.3.3.2 Query of densitometric measuring results Similar to the upper command "DensityParameterRequest" this command queries the density of the last measured field, but without the measurement parameter. This command is also valid for the SPM family. For new developments, the command "DensityParameterRequest" is recommended. (Message numbers <03>/{3}, <0E>/{14})

DensityRequest ;<03> <09> <CR><LF> DensityAnswer :<0E> <09> [DensityFilterArrayType] <StdDensityFilterType>

<RefValidType> [RemoteErrorSet] <CR><LF>

3.1.3.4 Queries regarding the maximum density values of a sample (Message numbers <04>/{4}, <0F>/{15}).

DmaxRequest ;<04> <09> <CR> <LF> DmaxAnswer :<0F> <09> <DmaxType> <LambdaType> <DmaxokType>

<RefValidType> [RemoteErrorSet] <CR> <LF>

1) : These functions are only valid for the SpectroEye *)x.xx : These features are not available for Software-Releases earlier than x.xx

17

Section 3

3.1.4 Table values 3.1.4.1 Queries slope values of densitometry Query slope values: (Message numbers <01>/{1}, <0C>/{12})

SlopeRequest ;<01> <CR><LF> SlopeAnswer :<0C> [DensityFilterArrayType] <CR><LF>

Example: Hexadecimal query --> ;01<CR><LF> Hexadecimal reply --> :0CFEA9813FE97C7F3F86EB813F0000A03F<CR><LF> Decimal query --> ; 1<CR><LF> Decimal reply --> : 12 1.0130 0.9980 1.0150 1.2500<CR><LF>

Meaning of the reply: Slope factor: Db = 1.0130 ... Dy = 1.2500 3.1.5 Device data's 3.1.5.1 Query for specific device data Query for device data's such as serial number, software release. (Message numbers <B5>/{181}, <B6>/{182})

DeviceDataRequest ;<B5> <CR><LF> DeviceDataAnswer :<B6> [DeviceNameType] <DeviceNumberType> [ArticleNumberType]

[SerialNumberType] [SoftwareReleaseType] [ReserveType] <CR><LF>

3.1.5.2 Query special device data's This command gives more special data's about the device. It is manly introduced because of compatibility reasons. Therefore, the above command 'DeviceDataRequest' should be used for future applications. (Message numbers <2B>/{43}, <31>/{49})

TargetIdRequest ;<2B> <CR><LF> TargetIdAnswer :<31> [DeviceNameType] [TargetIdType] [TargetTechType]

[TargetSpecType] <CR><LF>

1): These functions are only valid for the SpectroEye *)x.xx: These features are not available for Software-Releases earlier than x.xx

18

SpectroEye communication protocol

3.1.6 Several other instructions 3.1.6.1 Queries whether a new measurement was performed since the last access The commands returns, whether a new measurement was performed since the last query. The answer indicates the type of the last measurement. (Message numbers <07>/{7}, <12>/{18})

NewMeasureRequest ;<07> <CR><LF> NewMeasureAnswer :<12> <NewMeasurementType> <09> <CR><LF>

Example: Hexadecimal query --> ;07<CR><LF> Hexadecimal reply --> :120109<CR><LF> Decimal query --> ; 7<CR><LF> Decimal reply --> : 18 1 9<CR><LF>

Meaning of the reply: One measurement was performed since the last query. 3.1.6.2 Query for the current measurement type This instruction permits to ask for the measurement type. In the "MeasControlAnswer", the first <ControlType> is set to the value of the "MeasControlRequest", the second <ControlType> is set to the value according to the actual setting of the spectrophotometer: (Message numbers <5B>/{91}, <5C>/{92})

MeasControlRequest ;<5B> <ControlType> <CR><LF> MeasControlAnswer :<5C> <ControlType> <ControlType> [RemoteErrorSet] <CR><LF>

3.1.6.3 Set interface parameters This instruction permits to set the interface parameters, (baud rate. and handshake): (Message numbers <4D>/{77}, <1F>/{31})

MeasControlDownload ;<4D> <ControlType> <CR><LF> DownloadError :<1F> [RemoteErrorSet] <CR><LF>

Note: If you change the baud rate (communication speed of the serial interface), the answer of the

command will already be sent in the new baud rate. Therefore, it is recommended to ignore the answer of the spectrophotometer and change the baud rate of the host after a delay of 1 second.

1) : These functions are only valid for the SpectroEye *)x.xx : These features are not available for Software-Releases earlier than x.xx

19

Section 3

3.1.6.4 Query for the current interface parameters This instruction permits to ask for the current interface parameters of the SpectroEye. In the "MeasControlAnswer", the first <ControlType> is set to the value of the "MeasControlRequest", the second <ControlType> is set to the value according to the actual setting of the spectrophotometer: (Message numbers <5B>/{91}, <5C>/{92})

MeasControlRequest ;<5B> <ControlType> <CR><LF> MeasControlAnswer :<5C> <ControlType> <ControlType> [RemoteErrorSet] <CR><LF>

3.1.6.5 Total reset of the device Perform a total reset to get the same status like after the startup. (Message numbers <5A>/{90},<1F>/{31})

ResetStatusDownload ;<5A> <01> <04> <StatusModeType> <CR><LF> DownloadError :<1F> [RemoteErrorSet] <CR><LF>

3.1.6.6 Queries the actual time and date of the device This instructions returns the actual time of the clock in the SpectroEye. (Message numbers <68>/{104}, <69>/{105})

TimeRequest ;<68> <ActualTimeValType><CR><LF> TimeAnswer :<69> <ActualTimeValType>[TimeType][RemoteErrorSet]<CR><LF>

3.1.6.7 Download the actual time and date to the device (Message numbers <6A>/{106}, <1F>/{31})

TimeDownload ;<6A> <ActualTimeValType>[TimeType]<CR><LF> DownloadError :<1F> [RemoteErrorSet]<CR><LF>

1): These functions are only valid for the SpectroEye *)x.xx: These features are not available for Software-Releases earlier than x.xx

20

SpectroEye communication protocol

3.1.7 Error messages 3.1.7.1 Reply to an erroneous query The measuring device always sends a reply when it receives a <CR><LF>. The unit replies with "COMErr" if this query was incomplete or invalid: (Message number <26>/{38})

xxxx ;<??> <??> <CR><LF> COMErr :<26> <DTCOMErrType> <CR><LF>

Example: Hexadecimal query --> ;<CR><LF> Hexadecimal reply --> :2604<CR><LF> Decimal query --> ; <CR><LF> Decimal reply --> : 38 4<CR><LF>

Meaning of the reply: The SpectroEye indicates that no valid message number was received. 3.1.7.2 Query for the general error status (Message numbers <29>/{41}, <2F>/{47})

ActErrorRequest ;<29> <CR><LF> ActErrorAnswer :<2F> [ErrorType][UnitStatusSetType]<CR><LF>

1) : These functions are only valid for the SpectroEye *)x.xx : These features are not available for Software-Releases earlier than x.xx

21

All communication types

4 All communication types 4.1.1 General The communication types are represented in hexadecimal format and in decimal format: Hexadecimal format: Decimal format: <00>-<FF>: value in HEX {0}-{65535} or {-9999.9999}-{+9999.9999}: Decimal value <..>: one byte {..}: one value [..]: several bytes [..]: several values 4.1.2 Alphabetical listing and description of all types All types used for the commands of the SpectroEye in the sections 3 are listed below in alphabetical order. ActualFilterType: Actual physical filter.

<00>/{0} NoDefined --> Filter type has not been defined

<01>/{1} NoFilter --> No physical filter

<02>/{2} PolFilter --> Polarizer filter

<03>/{3} D65Filter --> Filter type 'D65'

<05>/{5} UVCutFilter --> Filter type 'UVCut'

ActualTimeValType: Value used by the instruction to set or get the actual time of the device.

<FD>/{253} vActualTime --> actual time of the device

ArticleNumberType: Article number: String of 8 characters. (8 bytes)

<..><..> ... <..>/{..}{..} ... {..} --> Article number with a length of 8 characters

ColorType: The 3 values of a colorimetric space. (3 x 4 bytes / 3 FLOAT)

<..><..><..><..>/{..} --> 1. Color value as FLOAT (e.g. x or L)

<..><..><..><..>/{..} --> 2. Color value as FLOAT (e.g. y or a)

<..><..><..><..>/{..} --> 3. Color value as FLOAT (e.g. Y or b)

1) : These functions are only valid for the SpectroEye *)x.xx : These features are not available for Software-Releases earlier than x.xx

23

Section 4 COMFloatValueType: Float value. (4 bytes / FLOAT)

<..><..><..><..>/{..} --> FLOAT

ControlType: Indicates the Baud rate, Handshake, etc.

<00>/{0} AveragingON --> Averaging

<01>/{1} AveragingOFF --> Averaging

<03>/{3} SampleStorOFF --> Sample storage

<08>/{8} StartAutoREF --> Automatic reference selection

<09>/{9} StopAutoREF -->

<1E>/{30} ProtocolWithXonXoff --> Xon/Xoff handshake

<1F>/{31} ProtocolWithoutXonXoff

ProtocolHardwareHS --> see no. <CF>/{207}

<22>/{34} SetBaud300 --> Data transmission speed of serial communication

<23>/{35} SetBaud600

<24>/{36} SetBaud1200

<25>/{37} SetBaud2400

<26>/{38} SetBaud4800

<27>/{39} SetBaud9600

<28>/{40} SetBaud19200

SetBaud28800 --> see no. <98>/{152}

SetBaud57600 --> see no. <99>/{153}

<45>/{69} PrintToEPSONLX --> EPSON LX800 printer

<46>/{70} PrintToHPThinkJet --> HP ThinkJet printer

PrintToHPDeskJet --> see no. <4F>/{79}

PrintToHPLaserJet --> see no. <50>/{80}

PrintToSeikoDPU411 --> see no. <52>/{82}

PrintToBJ10SX --> see no. <4E>/{78}

PrintToBJ10vCustom --> see no. <C8>/{200}

PrintToCBM510 --> see no. <C9>/{201}

PrintToPC --> see no. <CA>/{202}

<47>/{71} PrintTimeDateON --> Write time stamp on print out of measuring values

<48>/{72} PrintTimeDateOFF --> No time stamp on print out

<49>/{73} TimeDateFormatEuro --> Define the time (00:00:00) and date (dd.mm.yyyy) format

<4A>/{74} TimeDateFormatAmerican --> Define the time (00:00:00 am) and date (mm/dd/yyyy) format

<4E>/{78} PrintToBJ10SX --> CANON BJ10 SX printer

<4F>/{79} PrintToHPDeskJet --> HP DeskJet printer

<50>/{80} PrintToHPLaserJet --> HP LaserJet printer

<52>/{82} PrintToSeikoDPU411 --> Seiko DPU 411 printer

<98>/{152} SetBaud28800

<99>/{153} SetBaud57600

<C8>/{200} PrintToBJ10vCustom --> CANON BJ10vCustom (Japanese printer)

<C9>/{201} PrintToCBM510 --> CBM 510 printer

<CA>/{202} PrintToPC --> PC (no escape sequences)

<CF>/{207} ProtokolHardwareHS --> Hardware handshake on serial interface

<D0>/{208} LanguageEnglish --> Device language English

<D1>/{209} LanguageGerman --> Device language German

<D2>/{210} LanguageSpanish --> Device language Spanish

<D3>/{211} LanguageFrench --> Device language French

<D4>/{212} LanguageItalian --> Device language Italian

1) : These functions are only valid for the SpectroEye *)x.xx : These features are not available for Software-Releases earlier than x.xx

24

All communication types

<D5>/{213} LanguageDutch --> Device language Dutch

<D6>/{214} LanguageSwedish --> Device language Swedish

<D7>/{215} LanguageFinnish --> Device language Finnish

<D8>/{216} LanguageJapanese --> Device language Japanese

<D9>/{217} LanguageDanish --> Device language Danish

<DA>/{218} LanguageChinese --> Device language Chinese

<DB>/{219} LanguagePortuguese --> Device language Portuguese

<DC>/{220} LanguageHungarian --> Device language Hungarian

<DD>/{221} LanguageCzech --> Device language Czech

<DE>/{222} LanguagePolish --> Device language Polish

<DF>/{223} LanguageRussian --> Device language Russian

<E0>/{224} ProtocolNo --> No print protocol

<E3>/{227} ProtocolSpectroEye --> Print protocol SpectroEye

<E8>/{232} LanguageBulgarian --> Device language Bulgarian

CType: Different color spaces supported by the SpectroEye.

<00>/{0} XyY --> CIE xyY

<01>/{1} Lab --> CIE L*a*b*

<02>/{2} Lchab --> CIE L*C*h(a*b*)

<03>/{3} Luv --> CIE L*u*v*

<04>/{4} XYZ --> CIE XYZ

<05>/{5} RxRyRz --> Reflection values

<06>/{6} HLab --> Hunter Lab

<0B>/{11} LABmg --> LABmg

<0C>/{12} LCHmg --> LCHmg

<0D>/{13} LChuv --> CIE L*C*h(u*v*)

DensFilSpecArrayType: One set of 4 [Db .. Dy] tables for densitometric calculations (Spectral product = illuminant A * densitometer filter). These tables can be queried or programmed. (4 x 36 x 4 bytes / 4 x 36 FLOAT) Note: Rounding-off errors (insignificant for calculations) occur when these tables are

accessed since they are stored as compressed files.

<..><..><..><..>/{..} --> Db Spectrum[380] as FLOAT

... ...

<..><..><..><..>/{..} --> Db Spectrum[730] as FLOAT

<..><..><..><..>/{..} --> Dc Spectrum[380] as FLOAT

... ...

<..><..><..><..>/{..} --> Dc Spectrum[730] as FLOAT

<..><..><..><..>/{..} --> Dm Spectrum[380] as FLOAT

... ...

<..><..><..><..>/{..} --> Dm Spectrum[730] as FLOAT

<..><..><..><..>/{..} --> Dy Spectrum[380] as FLOAT

... ...

<..><..><..><..>/{..} --> Dy Spectrum[730] as FLOAT

1) : These functions are only valid for the SpectroEye *)x.xx : These features are not available for Software-Releases earlier than x.xx

25

Section 4 DensityFilterArrayType: Four measuring or slope values (FLOAT) for Db, Dc, Dm and Dy. (4 x 4 bytes / 4 FLOAT)

<..><..><..><..>/{..} --> Db as FLOAT

<..><..><..><..>/{..} --> Dc as FLOAT

<..><..><..><..>/{..} --> Dm as FLOAT

<..><..><..><..>/{..} --> Dy as FLOAT

DensityFilterType: Densitometric filter for measuring the respective color

<00>/{0} Db --> V lambda filter for black measurement

<01>/{1} Dc --> red filter for cyan measurement

<02>/{2} Dm --> green filter for magenta measurement

<03>/{3} Dy --> blue filter for yellow measurement

<04>/{4} Dmax --> Maximum filter for measurement of special colors

<05>/{5} Dauto --> Automatic filter selection for measurement of Db .. Dy

DeviceNameType: String with name of the device: 18 characters as ASCII. (18 bytes)

<..><..> ... <..>/{..}{..} ... {..} --> String with 18 characters

DeviceNumberType: Each measurement device has a specific number.

<00>/{0} SPM10 --> SPM 10

<01>/{1} SPM50 --> SPM 50

<02>/{2} SPM55 --> SPM 55

<03>/{3} SPM60 --> SPM 60

<04>/{4} SPM100 --> SPM 100

<05>/{5} SPM100II --> SPM 100-II without Library

<06>/{6} SPM100II --> SPM 100-II

<10>/{16} D196 --> D196

<11>/{17} D19C --> D19C

<12>/{18} D118C --> D118C

<13>/{19} DM620 --> DM 620

<20>/{32} SPECTROLINO --> Spectrolino

<30>/{48} VIDEOLINO --> Videolino

<40>/{64} SPECTROSCAN --> SpectroScan

<50>/{80} SPECTROEYE --> SpectroEye

DmaxokType: Indicates whether an optimal filter could be found.

<00>/{0} FALSE --> Dmax not OK

<01>/{1} TRUE --> Dmax OK

1) : These functions are only valid for the SpectroEye *)x.xx : These features are not available for Software-Releases earlier than x.xx

26

All communication types DmaxType: Value of maximum density. (4 bytes / FLOAT)

<..><..><..><..>/{..} --> Dmax as FLOAT

DStdType: Standard according to which densitometric calculations are performed.

<00>/{0} ANSIA --> Tables as defined in ANSI Status A

<01>/{1} ANSIT --> Tables as defined in ANSI (ISO) Status T

<02>/{2} DIN --> Tables as defined in DIN 16536

<03>/{3} DINNB --> Narrowband tables as defined in DIN 16536

<08>/{8} DS1 --> Freely programmable tables

<09>/{9} ANSIE --> Tables as defined in ANSI (ISO) Status E *)1.42

<0A>/{10} ANSII --> Tables as defined in ANSI (ISO) Status I *)1.42

DTCOMErrType: The SpectroEye always sends a reply if both stop characters <CR><LF> are properly received (1 byte). In the event of an error, it indicates what was wrong with the received message.

<00>/{0} DTCOMNoError --> No error

<01>/{1} StopButNoStart --> No start character received

<02>/{2} IllegalCharInRec --> Invalid character received

<03>/{3} IncorrectRecLen --> Transmitted record length incorrect

<04>/{4} IllegalRecType --> Invalid message number

<06>/{6} NoTagField --> No message number received

<07>/{7} ConvError --> Received data could not be converted

<10>/{16} NoAccess --> Failure in user identification

1) : These functions are only valid for the SpectroEye *)x.xx : These features are not available for Software-Releases earlier than x.xx

27

Section 4 ErrorType:

<00>/{0} NoError --> No error

<01>/{1} MemoryFailure --> Memory failure

<02>/{2} PowerFailure --> Power failure

<04>/{4} LampFailure --> Lamp failure

<05>/{5} HardwareFailure --> Hardware failure (contact your GretagMacbeth representative)

<06>/{6} FilterOutOfPos --> Filter wheel out of position

<07>/{7} SendTimeout --> Data transmission error

<08>/{8} DriveError --> Drive defect

<09>/{9} MeasDisabled --> Measuring error

<0A>/{10} DensCalError --> Incorrect input during densitometric calibration

<0D>/{13} EPROMFailure --> Defective EPROM (contact your GretagMacbeth representative)

<0E>/{14} RemOverFlow --> Too much light or wrong white calibration

<10>/{16} MemoryError --> Checksum error in memory (contact your GretagMacbeth representative)

<11>/{17} FullMemory --> Memory full

<13>/{19} WhiteMeasOK --> White measurement OK

<15>/{21} NotReady --> The SpectroEye is not ready, please wait

<33>/{51} ResetDone --> Reset done

<36>/{54} CheckSumWrong --> Wrong checksum

<37>/{55} NoValidMeas --> No valid measurement (e.g. no white measurement)

<38>/{56} BackupError --> Error by backup values (contact your GretagMacbeth representative)

<3C>/{57} ........ <40>/{64}

ProgramROMError --> Errors by programming ROM (contact your GretagMacbeth representative)

HandshakeType:

<00>/{0} No handshake

<01>/{1} Handshake Xon/Xoff

<02>/{2} Hardware Handshake

1) : These functions are only valid for the SpectroEye *)x.xx : These features are not available for Software-Releases earlier than x.xx

28

All communication types IllumType: Illuminant according to which colorimetric calculations are performed.

<00>/{0} IlluminantA --> Illuminant A

<01>/{1} IlluminantC --> Illuminant C

<02>/{2} IlluminantD65 --> Illuminant D65

<03>/{3} IlluminantD50 --> Illuminant D50

<08>/{8} Il1 --> User definable illuminant table

<10>/{16} Dxx1 --> Variable daylight table

<18>/{24} IlluminantF1 --> CIE illuminant F1

<19>/{25} IlluminantF2 --> CIE illuminant F2

<1A>/{26} IlluminantF3 --> CIE illuminant F3

<1B>/{27} IlluminantF4 --> CIE illuminant F4

<1C>/{28} IlluminantF5 --> CIE illuminant F5

<1D>/{29} IlluminantF6 --> CIE illuminant F6

<1E>/{30} IlluminantF7 --> CIE illuminant F7

<1F>/{31} IlluminantF8 --> CIE illuminant F8

<20>/{32} IlluminantF9 --> CIE illuminant F9

<21>/{33} IlluminantF10 --> CIE illuminant F10

<22>/{34} IlluminantF11 --> CIE illuminant F11

<23>/{35} IlluminantF12 --> CIE illuminant F12

<24>/{36} IlluminantFxx --> Variable F illuminant (1...12)

LambdaType: Wavelength in nm, where maximum density was measured. (2 bytes / CARDINAL)

<..><..>/{..} --> Lambda in nm as CARDINAL

Name18Type: String specifies a name: 18 characters as ASCII. (18 bytes)

<..><..> ... <..>/{..}{..} ... {..} --> String with 18 characters

NewMeasurementType: Indicates whether a new measurement was performed since the last NewMeasureRequest and the type of the last measurement.

<00>/{0} NoNewMeas --> No new measurement performed <01>/{1} NewMeas --> New measurement performed

ObserverType: Observer angle for colorimetric calculations.

<00>/{0} TwoDeg --> 2° observer angle

<01>/{1} TenDeg --> 10° observer angle

1) : These functions are only valid for the SpectroEye *)x.xx : These features are not available for Software-Releases earlier than x.xx

29

Section 4 RefValidType: Indicates valid reference values

<00>/{0} FALSE --> Reference value not valid

<01>/{1} TRUE --> Reference value valid

RemoteErrorSet: Error in communication instruction. (2 bytes / 1 SET, Sum of individual elements)

<00><00>/{0} NoError

<00><01>/{1} SlopeOutOfRange

<00><02>/{2} DorIOutOfRange

<00><04>/{4} ReflectionOutOfRange

<00><08>/{8} Color1OutOfRange

<00><10>/{16} Color2OutOfRange

<00><20>/{32} Color3OutOfRange

<00><40>/{64} FunctionNotAvailable

<00><80>/{128} NoValidValOrRef

<01><00>/{256} NoValidDStd

<02><00>/{512} NoValidWhite

<04><00>/{1024} NoValidIllum

<08><00>/{2048} NoValidObserver

<10><00>/{4096} NoValidMaxLambda

<20><00>/{8192} NoValidSpect

<40><00>/{16384} NoValidColSysOrIndex

<80><00>/{32768} WriteFileError

Example: NoValidDStd <01><00>/{256} + NoValidIllum <04><00>/{1024} + NoValidObserver <08><00>/{2048} = RemoteErrorSet <0D><00>/{3328}

ReserveType: Reserved space for future applications: 16 bytes

<..><..> ... <..>/{..}{..} ... {..} --> Reserved space with a length of 16 bytes

SerialNumberType: Serial number: 2 CARDINAL. (4 bytes)

1. CARD.: <..><..>/{..} --> Lower word of serial number (Serial number mod 65536) 2. CARD.: <..><..>/{..} --> Higher word of serial number (Serial number div 65536)

The effective serial number is calculated as followed: Serial number = Higher word x 65536 + lower word

1) : These functions are only valid for the SpectroEye *)x.xx : These features are not available for Software-Releases earlier than x.xx

30

All communication types SoftwareReleaseType: String specifies the release of the software: 12 characters as ASCII. (12 bytes)

<..><..> ... <..>/{..}{..} ... {..} --> String with 12 characters

SpectrumType: Spectral data from 36 scale points. (36 x 4 bytes / 36 FLOAT)

<..><..><..><..>/{..} --> Spectrum[380] as FLOAT

... ...

<..><..><..><..>/{..} --> Spectrum[730] as FLOAT

SpectType: Different spectral measuring parameters of the SpectroEye.

<00>/{0} RS --> Reflection spectrum

<01>/{1} DS --> Density spectrum

StatusModeType: Indicates part of status to be reset

<00>/{0} InitAll --> Total Status

<05>/{5} InitWithoutRemote --> Total Status without remote (baud rate and handshake)

StdDensityFilterType: Same as DensityFilterType but only Db .. Dy. TargetIdType: Identification information of a SpectroEye (7 x 2 bytes / 7 CARDINAL)

1. CARD.: <..><..>/{..} --> Serial number (1 - 65535)

2. CARD.: <..><..>/{..} --> Software Release

3. CARD.: <..><..>/{..} --> Year of production (e.g. 1996)

4. CARD.: <..><..>/{..} --> Month of production (1 - 12)

5. CARD.: <..><..>/{..} --> Day of production (1 - 31)

6. CARD.: <..><..>/{..} --> Hour of production (0 - 23)

7. CARD.: <..><..>/{..} --> Minute of prod. (0 - 59)

TargetSpecType: Specification of a SpectroEye. (3 x 2 bytes / 3 CARDINAL)

1. CARD.: <..><..>/{..} --> FirstSpecWaveL as CARD. -> 1. spectral data point [nm] 2. CARD.: <..><..>/{..} --> NoOfSpecData as CARD. -> Number of spectral data

points

3. CARD.: <..><..>/{..} --> SpecDistance as CARD. -> Distance between spectral data points

1) : These functions are only valid for the SpectroEye

*)x.xx : These features are not available for Software-Releases earlier than x.xx

31

Section 4 TargetTechType: Information on the type of connected unit

<00>/{0} SPM --> Instrument is a SPM

<01>/{1} D190 --> Instrument is a D190

<02>/{2} Spectrolino --> Instrument is a Spectrolino

<03>/{3} Videolino --> Instrument is a Videolino <04>/{4} SpectroScan --> Instrument is a SpectroScan <05>/{5} SpectroScan T Instrument is a SpectroScan T <06>/{6} SpectroEye --> Instrument is a SpectroEye

TimeType: Time and date information (7 x 2 bytes / 7 CARDINAL) If there is no clock in the GretagMacbeth SpectroEye, all values will be set to 99.

1. CARD.: <..><..>/{..} --> 1/100 second as CARDINAL

2. CARD.: <..><..>/{..} --> second as CARDINAL

3. CARD.: <..><..>/{..} --> minute as CARDINAL

4. CARD.: <..><..>/{..} --> hour as CARDINAL

5. CARD.: <..><..>/{..} --> day as CARDINAL

6. CARD.: <..><..>/{..} --> month as CARDINAL

7. CARD.: <..><..>/{..} --> year as CARDINAL

UnitStatusSetType: Indicates the status of the unit.

<00><00>/{0} UnitNormal

<00><01>/{1} BatteryLow

<00><02>/{2} NoBattery

<00><04>/{4} BatteryCharging

ValNrType: Cardinal number of a value. (2 bytes / CARDINAL)

<..><..>/{..} --> ValNr as CARDINAL

WBaseType: White base on which the spectrum is based.

<00>/{0} Pap --> Paper white reference

<01>/{1} Abs --> Absolute white reference

1) : These functions are only valid for the SpectroEye *)x.xx : These features are not available for Software-Releases earlier than x.xx

32

Appendix A - Connections

Appendix A - Connections Connecting to a PC with 25 pin serial interface port 1. Insert connecting cable 36.64.31 into the SpectroEye data port. 2. Insert the other end of the connecting cable into the "GretagMacbeth instrument" socket of the

communications adapter 36.64.64. 3. Connect the "Serial" socket on the communications adapter to the PC port.

Connecting to a PC with 9 pin serial interface port 1. Insert connecting cable 36.64.31 into the SpectroEye data port. 2. Insert the other end of the connecting cable into the "GretagMacbeth instrument" socket of the

communications adapter 36.64.64. 3. Insert the intermediate cable 36.50.55 between the "Serial" socket on the communications adapter

and the PC port.

Connecting to a Macintosh 1. Insert connecting cable 36.64.31 into the SpectroEye data port. 2. Insert the other end of the connecting cable into the "GretagMacbeth instrument" socket of the

communications adapter 36.64.64. 3. Insert the intermediate cable 36.50.54 between the "Serial" socket on the communications adapter

and the Macintosh port.

33

Appendix B - Interface specification

Appendix B - Serial Interface specification Serial interface RS-232, bipolar, +/-5V level Input Output logic 0 -15.0 V ... +0.8 V -8.0 V ... -5.0 V for load < 1.6 mA logic 1 +2.4 V ... +15.0 V +8.0 V ... +5.0 V for load < 1.6 mA Input resistance > 3 kOhm Interface parameters Data transmission rate: 300 .. 57600 Baud GretagMacbeth factory setting: 9600 Baud Data bit: 8 Parity bit: No Stop bit: 1 Handshake: No, Xon/Xoff,

Hardware GretagMacbeth factory setting: Xon/Xoff (<Xon> = ASCII(17), <Xoff> = ASCII(19))

Lead designations on the RJ45 socket

1 10

1 2 3 4 5 6 7 8 9

10

POWER + (+ 10 ... 24V) ETHERNET T+ ETHERNET T- ETHERNET R+ HS IN HS OUT ETHERNET R- DATA OUT DATA IN POWER - (GND)

PC SpectroEye

5

4

3

2

7

CTS

RTS

RD

TD

GND

HS_OUT

HS_IN

DATA_OUT

DATA_IN

GND

35

Appendix D - SpectroEye command summary

Appendix C - SpectroEye command summary Listing of all instructions of the SpectroEye protocol grouped according to meaning All instructions of the SpectroEye protocol are listed below according to their meaning. Numbers indicated are the message numbers; names designate the instructions. Refer to Section 3 for a detailed description. Topic Subtopic Short Description Message Name M. No. Cap. Measuring results

Densitometric Query of densitometric measuring results

DensityParameterRequest <BC> 3.1.3.3.1

Query of densitometric measuring results

DensityRequest <03> 3.1.3.3.2

Query for the maximum density DmaxRequest <04> 3.1.3.4 Spectral Query of spectra and parameters SpecParameterRequest <B8> 3.1.3.1.1 Query of spectra SpectrumRequest <05> 3.1.3.1.2 Colorimetric Query of colorimetric results and

parameters CParameterRequest <BA> 3.1.3.2.1

Query of colorimetric results CRequest <06> 3.1.3.2.2 Status Colorimetric and

densitometric Queries on parameters ParameterRequest <00> 3.1.2.1

parameters Set parameters ParameterDownload <16> 3.1.2.2 Physical filter Set filter FilterDownload <B2> 3.1.2.3 1) Slope values for Query of slope values SlopeRequest <01> 3.1.4.1 densitometry Error messages

Erroneous query Reply of the SpectroEye after an erroneous query

COMErr <26> 3.1.7.1

Error after measurement

Queries for the error status after the last measurement

ActErrorRequest <29> 3.1.7.2

Other Interface Query the interface configuration MeasControlRequest <5B> 3.1.6.4

instructions Load the interface configuration MeasControlDownload <4D> 3.1.6.3

Reset device Reset the device ResetStatusDownload <5A> 3.1.6.5

Simultaneous operation via

Measurement Query whether a new measurement was performed

NewMeasureRequest <07> 3.1.6.1

Device data Specific device data

Query for device data DeviceDataRequest <B5> 3.1.5.1

Special device data

Additional data of the device TargetIdRequest <2B> 3.1.5.2

1) : These functions are only valid for the SpectroEye *)x.xx : These features are not available for Software-Releases earlier than x.xx

37

Appendix D - SpectroEye command summary

Numerical listing of all instructions of the SpectroEye protocol The following is a listing of all queries of the SpectroEye protocol according to message numbers. Refer to Section 3 for query definitions and examples. Refer to Section 4 for definitions of types. Values of type numbers are given in hexadecimal format. When the decimal format is used, the value must be converted accordingly. Types are listed as follows: Upper type sent from host computer Lower type respective reply from the SpectroEye

Message Name Message Cap. ParameterRequest ;<00> <CR><LF> 3.1.2.1 ParameterAnswer :<0B> <DStdType> <WBaseType> <IllumType> <ObserverType>

<ActualFilterType> <CR><LF>

SlopeRequest ;<01> <CR><LF> 3.1.4.1 SlopeAnswer :<0C> [DensityFilterArrayType] <CR><LF> DensityRequest ;<03> <09> <CR><LF> 3.1.3.3.2 DensityAnswer :<0E> <09> [DensityFilterArrayType] <StdDensityFilterType>

<RefValidType> [RemoteErrorSet] <CR><LF>

DmaxRequest ;<04> <09> <CR><LF> 3.1.3.4 DmaxAnswer :<0F> <09> <DmaxType> <LambdaType> <DmaxokType><RefValidType>

[RemoteErrorSet] <CR> <LF>

SpectrumRequest ;<05> <09> <SpectType> <CR><LF> 3.1.3.1.2 SpectrumAnswer :<10> <09> <SpectType> [SpectrumType] <RefValidType>

[RemoteErrorSet] <CR><LF>

CRequest ;<06> <09> <CType> <CR><LF> 3.1.3.2.2 CAnswer :<11> <09><CType> [ColorType] <RefValidType>[RemoteErrorSet]

<CR><LF>

NewMeasureRequest ;<07> <CR><LF> 3.1.6.1 NewMeasureAnswer :<12> <NewMeasurementType> <09> <CR><LF> ParameterDownload ;<16> <DStdType> <WBaseType> <IllumType> <ObserverType>

<CR><LF> 3.1.2.2

DownloadError :<1F> [RemoteErrorSet] <CR><LF> ExecMeasurement ;<20> <CR><LF> 3.1.1.1 ExecError :<25> <ErrorType> <CR><LF> ActErrorRequest ;<29> <CR><LF> 3.1.7.2 ActErrorAnswer :<2F> [ErrorType][UnitStatusSetType]<CR><LF> TargetIdRequest ;<2B> <CR><LF> 3.1.5.2 TargetIdAnswer :<31> [DisplayStringType] [TargetIdType] [TargetTechType]

[TargetSpecType] <CR><LF>

1) : These functions are only valid for the SpectroEye *)x.xx : These features are not available for Software-Releases earlier than x.xx

38

Appendix D - SpectroEye command summary

1) : These functions are only valid for the SpectroEye *)x.xx : These features are not available for Software-Releases earlier than x.xx

39

Message Name Message Cap. MeasControlDownload ;<4D> <ControlType> <CR><LF> 3.1.6.3 DownloadError :<1F> [RemoteErrorSet] <CR><LF> ResetStatusDownload ;<5A> <01> <04> <StatusModeType> <CR><LF> 3.1.6.5 DownloadError :<1F> [RemoteErrorSet] <CR><LF> MeasControlRequest ;<5B> <ControlType> <CR><LF> 3.1.6.2 MeasControlAnswer :<5C> <ControlType> <ControlType> [RemoteErrorSet] <CR><LF> 3.1.6.4 TimeRequest ;<68> <ActualTimeValType><CR><LF> 3.1.6.6 TimeAnswer :<69> <ActualTimeValType>[TimeType][RemoteErrorSet]<CR><LF> TimeDownload ;<6A> <ActualTimeValType>[TimeType]<CR><LF> 0 DownloadError :<1F> [RemoteErrorSet]<CR><LF> FilterDownload ;<B2> <ActualFilterType> <CR><LF> 3.1.2.3 1) DownloadError :<1F> [RemoteErrorSet] <CR><LF> DeviceDataRequest ;<B5> <CR><LF> 3.1.5.1 DeviceDataAnswer :<B6> [DeviceNameType] <DeviceNumberType> [ArticleNumberType]

[SerialNumberType] [SoftwareReleaseType] [ReserveType] <CR><LF>

SpecParameterRequest ;<B8> <09> <SpectType> <CR><LF> 3.1.3.1.1 SpecParameterAnswer :<B9> <09> <SpectType> [SpectrumType] <RefValidType>

<ActualFilterType> <WBaseType> <02> [RemoteErrorSet] <CR><LF>

CParameterRequest ;<BA> <09> <CType> <CR><LF> 3.1.3.2.1 CParameterAnswer :<BB> <09><CType> [ColorType] <RefValidType> <ActualFilterType>

<WBaseType> <02> <IllumType> <ObserverType> [RemoteErrorSet] <CR><LF>

DensityParameterRequest ;<BC> <09> <CR><LF> 3.1.3.3.1 DensityParameterAnswer :<BD> <09> [DensityFilterArrayType] <StdDensityFilterType>

<RefValidType> <ActualFilterType> <WBaseType> <02> <DStdType> [RemoteErrorSet] <CR><LF>

xxxx ;<??> <??> <CR><LF> COMErr :<26> <DTCOMErrType> <CR><LF> 3.1.7.1