beautypg.com

3 analog outputs, Analog outputs – Campbell Scientific IRGASON Integrated CO2/H2O Open-Path Gas Analyzer and 3D Sonic Anemometer User Manual

Page 34

background image

IRGASON

®

Integrated CO

2

/H

2

O Open-Path Gas Analyzer and 3D Sonic Anemometer

The final data element in each row or output array is the signature. The

signature is a four character hexadecimal value that is a function of the

sequence and number of bytes in the output array. The recording device (i.e.,

PC or datalogger) calculates its own signature using each transmitted byte until

encountering the transmitted signature. The computed signature and the

transmitted signature are compared. If they match, the data were received

correctly. This is very similar to a cyclic redundancy check (CRC).

In most situations, a PC begins by reading the ASCII data and extracting the

last four ASCII characters and casting them as Long data type. The signature

is then calculated on the science data sent from the IRGASON, starting with

CO

2

and ending on the counter. All the characters after the counter are not part

of the signature. Once the signature is computed using the following

algorithm, it is compared to the transmitted signature. If signatures do not

match, the data should be disregarded.

Following is an example implementation of Campbell Scientific’s signature

algorithm in the programming language C. To generate the signature of an

output array of bytes, the “seed” needs to be initialized to 0xaaaa and a pointer

passed to the first byte of the output array. The number of bytes in the output

array should be entered in as the “swath”. The returned value is the computed

signature.

//signature(), signature algorithm.

// Standard signature is initialized with a seed of 0xaaaa.

// Returns signature.

unsigned short signature( unsigned char* buf, int swath,

unsigned short seed ) {

unsigned char msb, lsb;

unsigned char b;

int i;

msb = seed >> 8;

lsb = seed;

for( i = 0; i < swath; i++ ) {

b = (lsb << 1) + msb + *buf++;

if( lsb & 0x80 ) b++;

msb = lsb;

lsb = b;

}

return (unsigned short)((msb << 8) + lsb);

}

8.3 Analog Outputs

If analog output is enabled, the EC100 will output two analog signals that

correspond to CO

2

density and H

2

O density. These signals range from 0 to

5000 mV. TABLE 8-2 gives the multipliers and offsets for the analog outputs.

Note that the analog outputs contain no sonic data.

Be aware that the absence of diagnostic data in analog

output could make troubleshooting difficult if the user is not

aware of potential problems with the instrumentation.

CAUTION

24