sensor lib
Dependents: gather_sensor_data
Diff: DHTSensor.cpp
- Revision:
- 0:cbe8cd32b8d9
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/DHTSensor.cpp Thu Sep 08 14:05:15 2016 +0000 @@ -0,0 +1,60 @@ +#include "DHTSensor.h" + +DHTSensor::DHTSensor(PinName pn, int dht_type): dht_sensor(pn, dht_type) { + reading_type = DHT_ALL; +} + + +sensorStatus DHTSensor::readSensor(string &sensor_reading) { + + //add start to reading + int err = dht_sensor.readData(); + //Read Temp + if (err == 0) { + sensor_reading = "{"; + if ((reading_type & DHT_TEMP) == DHT_TEMP) { + float temp = dht_sensor.ReadTemperature(CELCIUS); + //check required here + + char reading_type_string[10]; + sprintf(reading_type_string, "%05X", DHT_TEMP); + char temp_string[10]; + sprintf(temp_string, "%2.2f", temp); + sensor_reading = sensor_reading + reading_type_string + ":" + temp_string; + } + + if ((reading_type & DHT_HUMID) == DHT_HUMID) { + float humid = dht_sensor.ReadHumidity(); + //check required here + char reading_type_string[10]; + sprintf(reading_type_string, "%05X", DHT_HUMID); + char humid_string[10]; + sprintf(humid_string, "%2.2f", humid); + sensor_reading = sensor_reading + ", " + reading_type_string + ":" + humid_string; + } + + //add end to reading + sensor_reading = sensor_reading + "}"; + return SENSOR_SUCCESS; + + } else { + sensor_reading = sensor_reading + ""; + return SENSOR_READING_ERROR; + } + +} + + +sensorStatus DHTSensor::setReadingType(sensorReadingType sensor_reading_types) { + if ((sensor_reading_types > DHT_FIRST) && (sensor_reading_types <= DHT_ALL)) { + reading_type = sensor_reading_types; + return SENSOR_SUCCESS; + } else { + return SENSOR_PARAM_OUT_RANGE; + } +} + +sensorReadingType DHTSensor::getReadingType() { + return reading_type; +} +