ModularSensors > Files > src / sensors / InSituRDO.h

InSituRDO.h file

Contains the InSituRDO sensor subclass and the variable subclasses InSituRDO_Temp, InSituRDO_DOpct, and InSituRDO_DOmgL.

These are for the In-Situ RDO PRO-X digital dissolved oxygen sensor.

This depends on the SDI12Sensors parent class.

Classes

class InSituRDO
The Sensor sub-class for the In-Situ RDO PRO-X dissolved oxygen sensor.
class InSituRDO_DOmgL
The Variable sub-class used for the dissolved oxygen concentration output from a In-Situ RDO PRO-X dissolved oxygen sensor.
class InSituRDO_DOpct
The Variable sub-class used for the dissolved oxygen percent saturation output from a In-Situ RDO PRO-X dissolved oxygen sensor.
class InSituRDO_Temp
The Variable sub-class used for the temperature output from a In-Situ RDO PRO-X dissolved oxygen sensor.
class InSituRDO_Pressure
The Variable sub-class used for the oxygen partial pressure output from a In-Situ RDO PRO-X dissolved oxygen sensor.

Defines

#define INSITU_RDO_NUM_VARIABLES = 4
Sensor::_numReturnedValues; the RDO PRO-X can report 4 values.
#define INSITU_RDO_INC_CALC_VARIABLES = 0
Sensor::_incCalcValues; we don't calculate any additional values.

Sensor Timing

The sensor timing for an In-Situ RDO PRO-X.

None of these values are specified in the documentation for the sensor; this is all based on SRGD's testing.

#define INSITU_RDO_WARM_UP_TIME_MS = 125
Sensor::_warmUpTime_ms; ~125ms in SRGD tests.
#define INSITU_RDO_STABILIZATION_TIME_MS = 0
Sensor::_stabilizationTime_ms; the sensor is stable as soon as it can take a measurement.
#define INSITU_RDO_MEASUREMENT_TIME_MS = 850
Sensor::_measurementTime_ms; ~775 minimum.
#define INSITU_RDO_EXTRA_WAKE_TIME_MS = 0
Extra wake time required for an SDI-12 sensor between the "break" and the time the command is sent. We give the RDO an extra 10ms.

Dissolved Oxygen Concentration

The DO concentration variable from an In-Situ RDO PRO-X

  • Range is 0 to 50 mg/L concentration
  • Accuracy:
    • ± 0.1 mg/L from 0 to 8 mg/L
    • ± 0.2 mg/L of reading from 8-20 mg/L
    • ± 10% of reading from 20-50 mg/L

InSituRDO_DOmgL(InSituRDO* parentSense, const char* uuid = "", const char* varCode = INSITU_RDO_DOMGL_DEFAULT_CODE) explicit

Construct a new InSituRDO_DOmgL object.

Parameters
parentSense The parent InSituRDO 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 "RDOppm".

#define INSITU_RDO_DOMGL_RESOLUTION = 2
Decimals places in string representation; dissolved oxygen concentration should have 2 - resolution is 0.01 mg/L.
#define INSITU_RDO_DOMGL_VAR_NUM = 0
Variable number; dissolved oxygen concentration is stored in sensorValues[0].
#define INSITU_RDO_DOMGL_VAR_NAME = "oxygenDissolved"
Variable name in ODM2 controlled vocabulary; "oxygenDissolved".
#define INSITU_RDO_DOMGL_UNIT_NAME = "milligramPerLiter"
Variable unit name in ODM2 controlled vocabulary; "milligramPerLiter" (mg/L)
#define INSITU_RDO_DOMGL_DEFAULT_CODE = "RDOppm"
Default variable short code; "RDOppm".

Dissolved Oxygen Percent Saturation

The percent saturation variable from an In-Situ RDO PRO-X

  • Range is 0 to 50 mg/L concentration
  • Accuracy:
    • ± 0.1 mg/L from 0 to 8 mg/L
    • ± 0.2 mg/L of reading from 8-20 mg/L
    • ± 10% of reading from 20-50 mg/L

      InSituRDO_DOpct(InSituRDO* parentSense, const char* uuid = "", const char* varCode = INSITU_RDO_DOPCT_DEFAULT_CODE) explicit

      Construct a new InSituRDO_DOpct object.

      Parameters
      parentSense The parent InSituRDO 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 "RDOpercent".

#define INSITU_RDO_DOPCT_RESOLUTION = 2
Decimals places in string representation; dissolved oxygen percent saturation should have 1.
#define INSITU_RDO_DOPCT_VAR_NUM = 1
Variable number; dissolved oxygen percent is stored in sensorValues[1].
#define INSITU_RDO_DOPCT_VAR_NAME = "oxygenDissolvedPercentOfSaturation"
Variable name in ODM2 controlled vocabulary; "oxygenDissolvedPercentOfSaturation".
#define INSITU_RDO_DOPCT_UNIT_NAME = "percent"
Variable unit name in ODM2 controlled vocabulary; "percent" (% saturation)
#define INSITU_RDO_DOPCT_DEFAULT_CODE = "RDOpercent"
Default variable short code; "RDOpercent".

Temperature

The temperature variable from an In-Situ RDO PRO-X

  • Range is 0° to 50°C (32° to 122°F)
  • Accuracy is ± 0.1°C typical

InSituRDO_Temp(InSituRDO* parentSense, const char* uuid = "", const char* varCode = INSITU_RDO_TEMP_DEFAULT_CODE) explicit

Construct a new InSituRDO_Temp object.

Parameters
parentSense The parent InSituRDO 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 "RDOtempC".

#define INSITU_RDO_TEMP_RESOLUTION = 2
Decimals places in string representation; temperature should have 2 - resolution is 0.01°C.
#define INSITU_RDO_TEMP_VAR_NUM = 2
Variable number; temperature is stored in sensorValues[2].
#define INSITU_RDO_TEMP_VAR_NAME = "temperature"
Variable name in ODM2 controlled vocabulary; "temperature".
#define INSITU_RDO_TEMP_UNIT_NAME = "degreeCelsius"
Variable unit name in ODM2 controlled vocabulary; "degreeCelsius" (°C)
#define INSITU_RDO_TEMP_DEFAULT_CODE = "RDOtempC"
Default variable short code; "RDOtempC".

Oxygen Partial Pressure

The oxygen partial pressure variable from an In-Situ RDO PRO-X

InSituRDO_Pressure(InSituRDO* parentSense, const char* uuid = "", const char* varCode = INSITU_RDO_PRESSURE_DEFAULT_CODE) explicit

Construct a new InSituRDO_Pressure object.

Parameters
parentSense The parent InSituRDO 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 "RDOppO2".

#define INSITU_RDO_PRESSURE_RESOLUTION = 2
Decimals places in string representation; pressure should have 3.
#define INSITU_RDO_PRESSURE_VAR_NUM = 3
Variable number; temperature is stored in sensorValues[3].
#define INSITU_RDO_PRESSURE_VAR_NAME = "vaporPressure"
Variable name in ODM2 controlled vocabulary; "vaporPressure".
#define INSITU_RDO_PRESSURE_UNIT_NAME = "torr"
Variable unit name in ODM2 controlled vocabulary; "torr".
#define INSITU_RDO_PRESSURE_DEFAULT_CODE = "RDOppO2"
Default variable short code; "RDOppO2".