sensor lib

Dependents:   gather_sensor_data

Committer:
readysteadygo2006
Date:
Thu Sep 08 14:05:15 2016 +0000
Revision:
0:cbe8cd32b8d9
test;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
readysteadygo2006 0:cbe8cd32b8d9 1 #include "DHTSensor.h"
readysteadygo2006 0:cbe8cd32b8d9 2
readysteadygo2006 0:cbe8cd32b8d9 3 DHTSensor::DHTSensor(PinName pn, int dht_type): dht_sensor(pn, dht_type) {
readysteadygo2006 0:cbe8cd32b8d9 4 reading_type = DHT_ALL;
readysteadygo2006 0:cbe8cd32b8d9 5 }
readysteadygo2006 0:cbe8cd32b8d9 6
readysteadygo2006 0:cbe8cd32b8d9 7
readysteadygo2006 0:cbe8cd32b8d9 8 sensorStatus DHTSensor::readSensor(string &sensor_reading) {
readysteadygo2006 0:cbe8cd32b8d9 9
readysteadygo2006 0:cbe8cd32b8d9 10 //add start to reading
readysteadygo2006 0:cbe8cd32b8d9 11 int err = dht_sensor.readData();
readysteadygo2006 0:cbe8cd32b8d9 12 //Read Temp
readysteadygo2006 0:cbe8cd32b8d9 13 if (err == 0) {
readysteadygo2006 0:cbe8cd32b8d9 14 sensor_reading = "{";
readysteadygo2006 0:cbe8cd32b8d9 15 if ((reading_type & DHT_TEMP) == DHT_TEMP) {
readysteadygo2006 0:cbe8cd32b8d9 16 float temp = dht_sensor.ReadTemperature(CELCIUS);
readysteadygo2006 0:cbe8cd32b8d9 17 //check required here
readysteadygo2006 0:cbe8cd32b8d9 18
readysteadygo2006 0:cbe8cd32b8d9 19 char reading_type_string[10];
readysteadygo2006 0:cbe8cd32b8d9 20 sprintf(reading_type_string, "%05X", DHT_TEMP);
readysteadygo2006 0:cbe8cd32b8d9 21 char temp_string[10];
readysteadygo2006 0:cbe8cd32b8d9 22 sprintf(temp_string, "%2.2f", temp);
readysteadygo2006 0:cbe8cd32b8d9 23 sensor_reading = sensor_reading + reading_type_string + ":" + temp_string;
readysteadygo2006 0:cbe8cd32b8d9 24 }
readysteadygo2006 0:cbe8cd32b8d9 25
readysteadygo2006 0:cbe8cd32b8d9 26 if ((reading_type & DHT_HUMID) == DHT_HUMID) {
readysteadygo2006 0:cbe8cd32b8d9 27 float humid = dht_sensor.ReadHumidity();
readysteadygo2006 0:cbe8cd32b8d9 28 //check required here
readysteadygo2006 0:cbe8cd32b8d9 29 char reading_type_string[10];
readysteadygo2006 0:cbe8cd32b8d9 30 sprintf(reading_type_string, "%05X", DHT_HUMID);
readysteadygo2006 0:cbe8cd32b8d9 31 char humid_string[10];
readysteadygo2006 0:cbe8cd32b8d9 32 sprintf(humid_string, "%2.2f", humid);
readysteadygo2006 0:cbe8cd32b8d9 33 sensor_reading = sensor_reading + ", " + reading_type_string + ":" + humid_string;
readysteadygo2006 0:cbe8cd32b8d9 34 }
readysteadygo2006 0:cbe8cd32b8d9 35
readysteadygo2006 0:cbe8cd32b8d9 36 //add end to reading
readysteadygo2006 0:cbe8cd32b8d9 37 sensor_reading = sensor_reading + "}";
readysteadygo2006 0:cbe8cd32b8d9 38 return SENSOR_SUCCESS;
readysteadygo2006 0:cbe8cd32b8d9 39
readysteadygo2006 0:cbe8cd32b8d9 40 } else {
readysteadygo2006 0:cbe8cd32b8d9 41 sensor_reading = sensor_reading + "";
readysteadygo2006 0:cbe8cd32b8d9 42 return SENSOR_READING_ERROR;
readysteadygo2006 0:cbe8cd32b8d9 43 }
readysteadygo2006 0:cbe8cd32b8d9 44
readysteadygo2006 0:cbe8cd32b8d9 45 }
readysteadygo2006 0:cbe8cd32b8d9 46
readysteadygo2006 0:cbe8cd32b8d9 47
readysteadygo2006 0:cbe8cd32b8d9 48 sensorStatus DHTSensor::setReadingType(sensorReadingType sensor_reading_types) {
readysteadygo2006 0:cbe8cd32b8d9 49 if ((sensor_reading_types > DHT_FIRST) && (sensor_reading_types <= DHT_ALL)) {
readysteadygo2006 0:cbe8cd32b8d9 50 reading_type = sensor_reading_types;
readysteadygo2006 0:cbe8cd32b8d9 51 return SENSOR_SUCCESS;
readysteadygo2006 0:cbe8cd32b8d9 52 } else {
readysteadygo2006 0:cbe8cd32b8d9 53 return SENSOR_PARAM_OUT_RANGE;
readysteadygo2006 0:cbe8cd32b8d9 54 }
readysteadygo2006 0:cbe8cd32b8d9 55 }
readysteadygo2006 0:cbe8cd32b8d9 56
readysteadygo2006 0:cbe8cd32b8d9 57 sensorReadingType DHTSensor::getReadingType() {
readysteadygo2006 0:cbe8cd32b8d9 58 return reading_type;
readysteadygo2006 0:cbe8cd32b8d9 59 }
readysteadygo2006 0:cbe8cd32b8d9 60