sensor lib

Dependents:   gather_sensor_data

DHTSensor.cpp

Committer:
readysteadygo2006
Date:
2016-09-08
Revision:
0:cbe8cd32b8d9

File content as of revision 0:cbe8cd32b8d9:

#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;
}