ModularSensors > Files > src / sensors / ZebraTechDOpto.h

ZebraTechDOpto.h file

Contains the ZebraTechDOpto sensor subclass and the variable subclasses ZebraTechDOpto_Temp, ZebraTechDOpto_DOpct, and ZebraTechDOpto_DOmgL.

These are for the ZebraTech D-Opto digital dissolved oxygen sensor.

This depends on the SDI12Sensors parent class.

Classes

class ZebraTechDOpto
The Sensor sub-class for the Zebra-Tech D-Opto dissolved oxygen sensor.
class ZebraTechDOpto_Temp
The Variable sub-class used for the temperature output from a Zebra-Tech D-Opto dissolved oxygen sensor.
class ZebraTechDOpto_DOpct
The Variable sub-class used for the dissolved oxygen percent saturation output from a Zebra-Tech D-Opto dissolved oxygen sensor.
class ZebraTechDOpto_DOmgL
The Variable sub-class used for the dissolved oxygen concentration output from a Zebra-Tech D-Opto dissolved oxygen sensor.

Defines

#define DOPTO_NUM_VARIABLES = 3
Sensor::_numReturnedValues; the D-Opto can report 3 values.
#define DOPTO_INC_CALC_VARIABLES = 0
Sensor::_incCalcValues; we don't calculate any additional values.

Sensor Timing

The sensor timing for an ZebraTech D-Opto

#define DOPTO_WARM_UP_TIME_MS = 275
Sensor::_warmUpTime_ms; the D-Opto warms up in 275ms. Maximum warm-up time in SDI-12 mode: ~250ms, give a bit of extra for safety.
#define DOPTO_STABILIZATION_TIME_MS = 0
Sensor::_stabilizationTime_ms; the D-Opto is stable as soon as it warms up (0ms stabilization).
#define DOPTO_MEASUREMENT_TIME_MS = 5335
Sensor::_measurementTime_ms; the D-Opto takes 5335ms to complete a measurement.
#define DOPTO_EXTRA_WAKE_TIME_MS = 0
Extra wake time required for an SDI-12 sensor between the "break" and the time the command is sent. The D-Opto requires no extra time.

Temperature

The temperature variable from an ZebraTech D-Opto

  • Range is not specified in sensor datasheet
  • Accuracy is ± 0.1°C

ZebraTechDOpto_Temp(ZebraTechDOpto* parentSense, const char* uuid = "", const char* varCode = DOPTO_TEMP_DEFAULT_CODE) explicit

Construct a new ZebraTechDOpto_Temp object.

Parameters
parentSense The parent ZebraTechDOpto providing the result values.
uuid A universally unique identifier (UUID or GUID) for the variable; optional with the default value of an empty string.
varCode A short code to help identify the variable in files; optional with a default value of "DOtempC".

#define DOPTO_TEMP_RESOLUTION = 2
Decimals places in string representation; temperature should have 2 - resolution is 0.01°C.
#define DOPTO_TEMP_VAR_NUM = 0
Sensor variable number; temperature is stored in sensorValues[0].
#define DOPTO_TEMP_VAR_NAME = "temperature"
Variable name in ODM2 controlled vocabulary; "temperature".
#define DOPTO_TEMP_UNIT_NAME = "degreeCelsius"
Variable unit name in ODM2 controlled vocabulary; "degreeCelsius" (°C)
#define DOPTO_TEMP_DEFAULT_CODE = "DOtempC"
Default variable short code; "DOtempC".

Dissolved Oxygen Percent Saturation

The percent saturation variable from an ZebraTech D-Opto

  • Range is not specified in sensor datasheet
  • Accuracy is 1 % of reading or 0.02PPM, whichever is greater

ZebraTechDOpto_DOpct(ZebraTechDOpto* parentSense, const char* uuid = "", const char* varCode = DOPTO_DOPCT_DEFAULT_CODE) explicit

Construct a new ZebraTechDOpto_DOpct object.

Parameters
parentSense The parent ZebraTechDOpto providing the result values.
uuid A universally unique identifier (UUID or GUID) for the variable; optional with the default value of an empty string.
varCode A short code to help identify the variable in files; optional with a default value of "DOpercent".

#define DOPTO_DOPCT_RESOLUTION = 2
Decimals places in string representation; dissolved oxygen percent should have 2.
#define DOPTO_DOPCT_VAR_NUM = 1
Sensor variable number; dissolved oxygen percent is stored in sensorValues[1].
#define DOPTO_DOPCT_VAR_NAME = "oxygenDissolvedPercentOfSaturation"
Variable name in ODM2 controlled vocabulary; "oxygenDissolvedPercentOfSaturation".
#define DOPTO_DOPCT_UNIT_NAME = "percent"
Variable unit name in ODM2 controlled vocabulary; "percent" (% saturation)
#define DOPTO_DOPCT_DEFAULT_CODE = "DOpercent"
Default variable short code; "DOpercent".

Dissolved Oxygen Concentration

The DO concentration variable from an ZebraTech D-Opto

  • Range is not specified in sensor datasheet
  • Accuracy is 1 % of reading or 0.02PPM, whichever is greater

ZebraTechDOpto_DOmgL(ZebraTechDOpto* parentSense, const char* uuid = "", const char* varCode = DOPTO_DOMGL_DEFAULT_CODE) explicit

Construct a new ZebraTechDOpto_DOmgL object.

Parameters
parentSense The parent ZebraTechDOpto providing the result values.
uuid A universally unique identifier (UUID or GUID) for the variable; optional with the default value of an empty string.
varCode A short code to help identify the variable in files; optional with a default value of "DOppm".

#define DOPTO_DOMGL_RESOLUTION = 3
Decimals places in string representation; dissolved oxygen concentration should have 3 - resolution is 0.01 % / 0.001 PPM.
#define DOPTO_DOMGL_VAR_NUM = 2
Sensor variable number; dissolved oxygen concentration is stored in sensorValues[2].
#define DOPTO_DOMGL_VAR_NAME = "oxygenDissolved"
Variable name in ODM2 controlled vocabulary; "oxygenDissolved".
#define DOPTO_DOMGL_UNIT_NAME = "milligramPerLiter"
Variable unit name in ODM2 controlled vocabulary; "milligramPerLiter" (mg/L)
#define DOPTO_DOMGL_DEFAULT_CODE = "DOppm"
Default variable short code; "DOppm".