#include <src/sensors/SDI12Sensors.h>
SDI12Sensors
class
The main class for SDI-12 Sensors.
- Reference
- Detailed Descriptions
Base classes
- class Sensor
- The "Sensor" class is used for all sensor-level operations - waking, sleeping, and taking measurements.
Derived classes
- class CampbellClariVUE10
- The Sensor sub-class for the Campbell ClariVUE10 turbidity sensor.
- class CampbellRainVUE10
- The Sensor sub-class for the Campbell RainVUE10 precipitation sensor.
- class Decagon5TM
- The Sensor sub-class for the Meter ECH2O soil moisture sensors.
- class DecagonCTD
- The Sensor sub-class for the Decagon CTD-10 conductivity, temperature, and depth sensor.
- class DecagonES2
- The Sensor sub-class for the Decagon ES-2 sensor.
- class InSituRDO
- The Sensor sub-class for the In-Situ RDO PRO-X dissolved oxygen sensor.
- class InSituTrollSdi12a
- The Sensor sub-class for the Insitu Level/Aqua TROLL pressure, temperature, and depth sensor.
- class MeterHydros21
- The Sensor sub-class for the Meter Hydros 21 conductivity, temperature, and depth sensor.
- class MeterTeros11
- The Sensor sub-class for the Meter Teros 11 sensor.
- class VegaPuls21
- The Sensor sub-class for the VEGAPULS C 21 radar level sensor.
- class ZebraTechDOpto
- The Sensor sub-class for the Zebra-Tech D-Opto dissolved oxygen sensor.
Constructors, destructors, conversion operators
- SDI12Sensors(char SDI12address, int8_t powerPin, int8_t dataPin, uint8_t measurementsToAverage = 1, const char* sensorName = "SDI12-Sensor", const uint8_t totalReturnedValues = 1, uint32_t warmUpTime_ms = 0, uint32_t stabilizationTime_ms = 0, uint32_t measurementTime_ms = 0, int8_t extraWakeTime = 0, uint8_t incCalcValues = 0)
- Construct a new SDI 12 Sensors object. This is only intended to be used within this library.
- SDI12Sensors(char* SDI12address, int8_t powerPin, int8_t dataPin, uint8_t measurementsToAverage = 1, const char* sensorName = "SDI12-Sensor", const uint8_t totalReturnedValues = 1, uint32_t warmUpTime_ms = 0, uint32_t stabilizationTime_ms = 0, uint32_t measurementTime_ms = 0, int8_t extraWakeTime = 0, uint8_t incCalcValues = 0)
- Construct a new SDI 12 Sensors object. This is only intended to be used within this library.
- SDI12Sensors(int SDI12address, int8_t powerPin, int8_t dataPin, uint8_t measurementsToAverage = 1, const char* sensorName = "SDI12-Sensor", const uint8_t totalReturnedValues = 1, uint32_t warmUpTime_ms = 0, uint32_t stabilizationTime_ms = 0, uint32_t measurementTime_ms = 0, int8_t extraWakeTime = 0, uint8_t incCalcValues = 0)
- Construct a new SDI 12 Sensors object. This is only intended to be used within this library.
- ~SDI12Sensors() virtual
- Destroy the SDI12Sensors object - no action taken.
Public functions
- String getSensorVendor(void) -> String
- Get the stored sensor vendor name returned by a previously called SDI-12 get sensor information (aI!) command.
- String getSensorModel(void) -> String
- Get the stored sensor model name returned by a previously called SDI-12 get sensor information (aI!) command.
- String getSensorVersion(void) -> String
- Get the stored sensor version returned by a previously called SDI-12 get sensor information (aI!) command.
- String getSensorSerialNumber(void) -> String
- Get the stored sensor serial number returned by a previously called SDI-12 get sensor information (aI!) command.
- String getSensorLocation(void) -> String override
- Get the pin or connection location between the mcu and the sensor.
- bool setup(void) -> bool override
- Do any one-time preparations needed before the sensor will be able to take readings.
- bool startSingleMeasurement(void) -> bool override
- Tell the sensor to start a single measurement, if needed.
- bool addSingleMeasurementResult(void) -> bool override
- Get the results from a single measurement.
Protected functions
- bool requestSensorAcknowledgement(void) -> bool
- Send the SDI-12 'acknowledge active' command [address][!] to a sensor and confirm that the correct sensor responded.
- bool getSensorInfo(void) -> bool
- Send the SDI-12 'info' command [address][I][!] to a sensor and parse the result into the vendor, model, version, and serial number.
- int8_t startSDI12Measurement(bool isConcurrent = true) -> int8_t
- Tell the sensor to start a single measurement, if needed.
- bool getResults(void) -> bool virtual
- Gets the results of either a standard or a concurrent measurement.
Protected variables
- SDI12 _SDI12Internal
- Internal reference to the SDI-12 object.
- char _SDI12address
- Internal reference to the SDI-12 address.
- int8_t _extraWakeTime
- Extra wake time required for an SDI-12 sensor between the "break" and the time the command is sent.
Function documentation
SDI12Sensors:: SDI12Sensors(char SDI12address,
int8_t powerPin,
int8_t dataPin,
uint8_t measurementsToAverage = 1,
const char* sensorName = "SDI12-Sensor",
const uint8_t totalReturnedValues = 1,
uint32_t warmUpTime_ms = 0,
uint32_t stabilizationTime_ms = 0,
uint32_t measurementTime_ms = 0,
int8_t extraWakeTime = 0,
uint8_t incCalcValues = 0)
Construct a new SDI 12 Sensors object. This is only intended to be used within this library.
Parameters | |
---|---|
SDI12address | The SDI-12 address of the sensor; can be a char, char*, or int. |
powerPin | The pin on the mcu controlling power to the sensor Use -1 if it is continuously powered. |
dataPin | The pin on the mcu connected to the data line of the SDI-12 circuit. |
measurementsToAverage | The number of measurements to take and average before giving a "final" result from the sensor; optional with a default value of 1. |
sensorName | The name of the sensor. Defaults to "SDI12-Sensor". |
totalReturnedValues | The number of variable results returned by the sensor. Defaults to 1. |
warmUpTime_ms | The time in ms between when the sensor is powered on and when it is ready to receive a wake command. Defaults to 0. |
stabilizationTime_ms | The time in ms between when the sensor receives a wake command and when it is able to return stable values. Defaults to 0. |
measurementTime_ms | The time in ms between when a measurement is started and when the result value is available. Defaults to 0. |
extraWakeTime | Any extra time needed by the sensor between the start of the break and when the sensor is ready to accept commands. This will be between 0 and 100ms per SDI-12 protocol. |
incCalcValues | The number of included calculated variables from the sensor, if any. These are used for values that we would always calculate for a sensor and depend only on the raw results of that single sensor; optional with a default value of 0. |
SDI12Sensors:: SDI12Sensors(char* SDI12address,
int8_t powerPin,
int8_t dataPin,
uint8_t measurementsToAverage = 1,
const char* sensorName = "SDI12-Sensor",
const uint8_t totalReturnedValues = 1,
uint32_t warmUpTime_ms = 0,
uint32_t stabilizationTime_ms = 0,
uint32_t measurementTime_ms = 0,
int8_t extraWakeTime = 0,
uint8_t incCalcValues = 0)
Construct a new SDI 12 Sensors object. This is only intended to be used within this library.
Parameters | |
---|---|
SDI12address | The SDI-12 address of the sensor; can be a char, char*, or int. |
powerPin | The pin on the mcu controlling power to the sensor Use -1 if it is continuously powered. |
dataPin | The pin on the mcu connected to the data line of the SDI-12 circuit. |
measurementsToAverage | The number of measurements to take and average before giving a "final" result from the sensor; optional with a default value of 1. |
sensorName | The name of the sensor. Defaults to "SDI12-Sensor". |
totalReturnedValues | The number of variable results returned by the sensor. Defaults to 1. |
warmUpTime_ms | The time in ms between when the sensor is powered on and when it is ready to receive a wake command. Defaults to 0. |
stabilizationTime_ms | The time in ms between when the sensor receives a wake command and when it is able to return stable values. Defaults to 0. |
measurementTime_ms | The time in ms between when a measurement is started and when the result value is available. Defaults to 0. |
extraWakeTime | Any extra time needed by the sensor between the start of the break and when the sensor is ready to accept commands. This will be between 0 and 100ms per SDI-12 protocol. |
incCalcValues | The number of included calculated variables from the sensor, if any. These are used for values that we would always calculate for a sensor and depend only on the raw results of that single sensor; optional with a default value of 0. |
SDI12Sensors:: SDI12Sensors(int SDI12address,
int8_t powerPin,
int8_t dataPin,
uint8_t measurementsToAverage = 1,
const char* sensorName = "SDI12-Sensor",
const uint8_t totalReturnedValues = 1,
uint32_t warmUpTime_ms = 0,
uint32_t stabilizationTime_ms = 0,
uint32_t measurementTime_ms = 0,
int8_t extraWakeTime = 0,
uint8_t incCalcValues = 0)
Construct a new SDI 12 Sensors object. This is only intended to be used within this library.
Parameters | |
---|---|
SDI12address | The SDI-12 address of the sensor; can be a char, char*, or int. |
powerPin | The pin on the mcu controlling power to the sensor Use -1 if it is continuously powered. |
dataPin | The pin on the mcu connected to the data line of the SDI-12 circuit. |
measurementsToAverage | The number of measurements to take and average before giving a "final" result from the sensor; optional with a default value of 1. |
sensorName | The name of the sensor. Defaults to "SDI12-Sensor". |
totalReturnedValues | The number of variable results returned by the sensor. Defaults to 1. |
warmUpTime_ms | The time in ms between when the sensor is powered on and when it is ready to receive a wake command. Defaults to 0. |
stabilizationTime_ms | The time in ms between when the sensor receives a wake command and when it is able to return stable values. Defaults to 0. |
measurementTime_ms | The time in ms between when a measurement is started and when the result value is available. Defaults to 0. |
extraWakeTime | Any extra time needed by the sensor between the start of the break and when the sensor is ready to accept commands. This will be between 0 and 100ms per SDI-12 protocol. |
incCalcValues | The number of included calculated variables from the sensor, if any. These are used for values that we would always calculate for a sensor and depend only on the raw results of that single sensor; optional with a default value of 0. |
String SDI12Sensors:: getSensorVendor(void)
Get the stored sensor vendor name returned by a previously called SDI-12 get sensor information (aI!) command.
Returns | String The name of the sensor vendor as reported by the sensor itself. |
---|
String SDI12Sensors:: getSensorModel(void)
Get the stored sensor model name returned by a previously called SDI-12 get sensor information (aI!) command.
Returns | String The name of the sensor model as reported by the sensor itself. |
---|
String SDI12Sensors:: getSensorVersion(void)
Get the stored sensor version returned by a previously called SDI-12 get sensor information (aI!) command.
Returns | String The version of the sensor as reported by the sensor itself. |
---|
String SDI12Sensors:: getSensorSerialNumber(void)
Get the stored sensor serial number returned by a previously called SDI-12 get sensor information (aI!) command.
Returns | String The serial number of the sensor as reported by the sensor itself. |
---|
String SDI12Sensors:: getSensorLocation(void) override
Get the pin or connection location between the mcu and the sensor.
Returns | String Text describing how the sensor is attached to the mcu. |
---|
For SDI-12 sensors this returns a concatenation of the data pin number and the SDI-12 address.
bool SDI12Sensors:: setup(void) override
Do any one-time preparations needed before the sensor will be able to take readings.
Returns | bool True if the setup was successful. |
---|
This sets the pin modes for the data and power pin, sets the stream timeout time and value, and sets the status bit. This also sets the mcu's timer prescaler values to clock the serial communication. After setting the pins and prescaler, the setup tests for a response from the sensor and calls the getSensorInfo() function. Sensor power is required.
bool SDI12Sensors:: startSingleMeasurement(void) override
Tell the sensor to start a single measurement, if needed.
Returns | bool True if the start measurement function completed successfully. |
---|
This also sets the _
bool SDI12Sensors:: addSingleMeasurementResult(void) override
Get the results from a single measurement.
Returns | bool True if the function completed successfully. |
---|
This asks the sensor for a new result, verifies that it passes sanity range checks, and then adds the value to the result array.
This also un-sets the _
bool SDI12Sensors:: requestSensorAcknowledgement(void) protected
Send the SDI-12 'acknowledge active' command [address][!] to a sensor and confirm that the correct sensor responded.
Returns | bool True if the correct SDI-12 sensor replied to the command. |
---|
bool SDI12Sensors:: getSensorInfo(void) protected
Send the SDI-12 'info' command [address][I][!] to a sensor and parse the result into the vendor, model, version, and serial number.
Returns | bool True if all expected information fields returned by the sensor. |
---|
int8_t SDI12Sensors:: startSDI12Measurement(bool isConcurrent = true) protected
Tell the sensor to start a single measurement, if needed.
Parameters | |
---|---|
isConcurrent | Whether to start a concurrent or standard measurement. Defaults to 'true' for a concurrent measurement. |
Returns | int8_t The length of time the measurement is expected to take. |
This also sets the _
bool SDI12Sensors:: getResults(void) virtual protected
Gets the results of either a standard or a concurrent measurement.
Returns | bool True if the full number of expected results was returned. |
---|