ModularSensors > Files > src / sensors / YosemitechY700.h

YosemitechY700.h file

Contains the YosemitechY700 sensor subclass and the variable subclasses YosemitechY700_Pressure and YosemitechY700_Temp.

These are for the Yosemitech Y700 Pressure sensor.

This depends on the YosemitechParent super class.

Documentation for the Modbus Protocol commands and responses can be found within the documentation in the YosemitechModbus library at: https://github.com/EnviroDIY/YosemitechModbus

Classes

class YosemitechY700
The Sensor sub-class for the Yosemitech Y700 pressure sensor.
class YosemitechY700_Pressure
The Variable sub-class used for the pressure output from a Yosemitech Y700 pressure sensor.
class YosemitechY700_Temp
The Variable sub-class used for the temperature output from a Yosemitech Y700 pressure sensor.

Defines

#define Y700_NUM_VARIABLES = 2
Sensor::_numReturnedValues; the Y700 can report 2 values.
#define Y700_INC_CALC_VARIABLES = 0
Sensor::_incCalcValues; we don't calculate any additional values.

Sensor Timing

The sensor timing for a Yosemitch Y700

#define Y700_WARM_UP_TIME_MS = 1000
Sensor::_warmUpTime_ms; time before sensor responds after power - 1000 ms.
#define Y700_STABILIZATION_TIME_MS = 4000
Sensor::_stabilizationTime_ms; time between "StartMeasurement" command and stable reading - Y700 takes 4 s to get stability <1 mm, but 12 s for <0.1 mm. If highest precision is required, increase to 12000.
#define Y700_MEASUREMENT_TIME_MS = 1000
Sensor::_measurementTime_ms; the Y700 takes <1 s for new values. but >1 s for values that don't seem autocorrelated.

Pressure

The Pressure variable from a Yosemitch Y700

  • Range is 0mH2O, ~2mH2O, or 100mH2O, depending on model
  • Accuracy is ± 0.1 % Full Scale

YosemitechY700_Pressure(YosemitechY700* parentSense, const char* uuid = "", const char* varCode = Y700_PRES_DEFAULT_CODE) explicit

Construct a new YosemitechY700_Pressure object.

Parameters
parentSense The parent YosemitechY700 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 "Y700Pres".

#define Y700_PRES_RESOLUTION = 2
Decimals places in string representation; Pressure should have 1.
#define Y700_PRES_VAR_NUM = 0
Sensor variable number; pressure is stored in sensorValues[0].
#define Y700_PRES_VAR_NAME = "pressureGauge"
Variable name in ODM2 controlled vocabulary; "pressureGauge".
#define Y700_PRES_UNIT_NAME = "millimeterOfWater"
Variable unit name in ODM2 controlled vocabulary; "millimeterOfWater" (mmH2O)
#define Y700_PRES_DEFAULT_CODE = "Y700Pres"
Default variable short code; "Y700Pres".

Temperature

The temperature variable from a Yosemitch Y700

  • Range is 0°C to + 50°C
  • Accuracy is ± 0.2°C

YosemitechY700_Temp(YosemitechY700* parentSense, const char* uuid = "", const char* varCode = Y700_TEMP_DEFAULT_CODE) explicit

Construct a new YosemitechY700_Temp object.

Parameters
parentSense The parent YosemitechY700 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 "Y700Temp".

#define Y700_TEMP_RESOLUTION = 1
Decimals places in string representation; temperature should have 1 - resolution is 0.1°C.
#define Y700_TEMP_VAR_NUM = 1
Sensor variable number; temperature is stored in sensorValues[1].
#define Y700_TEMP_VAR_NAME = "temperature"
Variable name in ODM2 controlled vocabulary; "temperature".
#define Y700_TEMP_UNIT_NAME = "degreeCelsius"
Variable unit name in ODM2 controlled vocabulary; "degreeCelsius" (°C)
#define Y700_TEMP_DEFAULT_CODE = "Y700Temp"
Default variable short code; "Y700Temp".