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 "SENSOR.h"
readysteadygo2006 0:cbe8cd32b8d9 2
readysteadygo2006 0:cbe8cd32b8d9 3
readysteadygo2006 0:cbe8cd32b8d9 4 SENSOR::SENSOR (
readysteadygo2006 0:cbe8cd32b8d9 5 PinName io_pin_name1,
readysteadygo2006 0:cbe8cd32b8d9 6 PinName io_pin_name2,
readysteadygo2006 0:cbe8cd32b8d9 7 PinName io_pin_name3,
readysteadygo2006 0:cbe8cd32b8d9 8 PinName io_pin_name4,
readysteadygo2006 0:cbe8cd32b8d9 9 PinName io_pin_name5,
readysteadygo2006 0:cbe8cd32b8d9 10 PinName sense_pin_name1
readysteadygo2006 0:cbe8cd32b8d9 11 ): sense_pin1(sense_pin_name1) {
readysteadygo2006 0:cbe8cd32b8d9 12 io_type = NONE;
readysteadygo2006 0:cbe8cd32b8d9 13 io_pname1 = io_pin_name1;
readysteadygo2006 0:cbe8cd32b8d9 14 io_pname2 = io_pin_name2;
readysteadygo2006 0:cbe8cd32b8d9 15 io_pname3 = io_pin_name3;
readysteadygo2006 0:cbe8cd32b8d9 16 io_pname4 = io_pin_name4;
readysteadygo2006 0:cbe8cd32b8d9 17 io_pname5 = io_pin_name5;
readysteadygo2006 0:cbe8cd32b8d9 18 sense_pname1 = sense_pname1;
readysteadygo2006 0:cbe8cd32b8d9 19 }
readysteadygo2006 0:cbe8cd32b8d9 20
readysteadygo2006 0:cbe8cd32b8d9 21
readysteadygo2006 0:cbe8cd32b8d9 22 SENSOR::~SENSOR() {
readysteadygo2006 0:cbe8cd32b8d9 23 io_type = NONE;
readysteadygo2006 0:cbe8cd32b8d9 24 io_pname1 = NC;
readysteadygo2006 0:cbe8cd32b8d9 25 io_pname2 = NC;
readysteadygo2006 0:cbe8cd32b8d9 26 io_pname3 = NC;
readysteadygo2006 0:cbe8cd32b8d9 27 io_pname4 = NC;
readysteadygo2006 0:cbe8cd32b8d9 28 io_pname5 = NC;
readysteadygo2006 0:cbe8cd32b8d9 29 sense_pname1 = NC;
readysteadygo2006 0:cbe8cd32b8d9 30 }
readysteadygo2006 0:cbe8cd32b8d9 31
readysteadygo2006 0:cbe8cd32b8d9 32
readysteadygo2006 0:cbe8cd32b8d9 33 sensorType SENSOR::detectSensorType() {
readysteadygo2006 0:cbe8cd32b8d9 34 return NO_SENSOR;
readysteadygo2006 0:cbe8cd32b8d9 35 }
readysteadygo2006 0:cbe8cd32b8d9 36
readysteadygo2006 0:cbe8cd32b8d9 37 sensorType SENSOR::getSensorType() {
readysteadygo2006 0:cbe8cd32b8d9 38 return sensor_type;
readysteadygo2006 0:cbe8cd32b8d9 39 }
readysteadygo2006 0:cbe8cd32b8d9 40
readysteadygo2006 0:cbe8cd32b8d9 41 sensorStatus SENSOR::getSensorStatus() {
readysteadygo2006 0:cbe8cd32b8d9 42 return sensor_status;
readysteadygo2006 0:cbe8cd32b8d9 43 }
readysteadygo2006 0:cbe8cd32b8d9 44
readysteadygo2006 0:cbe8cd32b8d9 45 sensorType SENSOR::detectSensor() {
readysteadygo2006 0:cbe8cd32b8d9 46 sensor_type = detectSensorType();
readysteadygo2006 0:cbe8cd32b8d9 47 sensor_type = detectSensor(sensor_type);
readysteadygo2006 0:cbe8cd32b8d9 48 return sensor_type;
readysteadygo2006 0:cbe8cd32b8d9 49 }
readysteadygo2006 0:cbe8cd32b8d9 50
readysteadygo2006 0:cbe8cd32b8d9 51 sensorType SENSOR::detectSensor(sensorType stype) {
readysteadygo2006 0:cbe8cd32b8d9 52
readysteadygo2006 0:cbe8cd32b8d9 53 //Set sensor_type
readysteadygo2006 0:cbe8cd32b8d9 54 sensor_type = stype;
readysteadygo2006 0:cbe8cd32b8d9 55
readysteadygo2006 0:cbe8cd32b8d9 56 //handle detected sensor
readysteadygo2006 0:cbe8cd32b8d9 57 switch (stype) {
readysteadygo2006 0:cbe8cd32b8d9 58 case DS1820_SENSOR:
readysteadygo2006 0:cbe8cd32b8d9 59 ds1820_sensor_ptr = new DS1820Sensor(io_pname1);
readysteadygo2006 0:cbe8cd32b8d9 60 break;
readysteadygo2006 0:cbe8cd32b8d9 61 case DHT11_SENSOR:
readysteadygo2006 0:cbe8cd32b8d9 62 dht11_sensor_ptr = new DHTSensor(io_pname1, DHT11);
readysteadygo2006 0:cbe8cd32b8d9 63 break;
readysteadygo2006 0:cbe8cd32b8d9 64 case DHT22_SENSOR:
readysteadygo2006 0:cbe8cd32b8d9 65 dht22_sensor_ptr = new DHTSensor(io_pname1, DHT22);
readysteadygo2006 0:cbe8cd32b8d9 66 break;
readysteadygo2006 0:cbe8cd32b8d9 67 case ML8511_SENSOR:
readysteadygo2006 0:cbe8cd32b8d9 68 ml8511_sensor_ptr = new ML8511Sensor(io_pname5);
readysteadygo2006 0:cbe8cd32b8d9 69 break;
readysteadygo2006 0:cbe8cd32b8d9 70 case MQ135_SENSOR:
readysteadygo2006 0:cbe8cd32b8d9 71 mq135_sensor_ptr = new MQ135Sensor(io_pname5);
readysteadygo2006 0:cbe8cd32b8d9 72 break;
readysteadygo2006 0:cbe8cd32b8d9 73 case BH1750_SENSOR:
readysteadygo2006 0:cbe8cd32b8d9 74 // bh1750_sensor_ptr = new BH1750Sensor(io_pname1, io_pname2);
readysteadygo2006 0:cbe8cd32b8d9 75 bh1750_sensor_ptr = new BH1750Sensor(io_pname1, io_pname2);
readysteadygo2006 0:cbe8cd32b8d9 76 break;
readysteadygo2006 0:cbe8cd32b8d9 77 case UNSUPPORTED_SENSOR:
readysteadygo2006 0:cbe8cd32b8d9 78 sensor_status = SENSOR_DETECTION_ERROR;
readysteadygo2006 0:cbe8cd32b8d9 79 return(sensor_type);
readysteadygo2006 0:cbe8cd32b8d9 80 break;
readysteadygo2006 0:cbe8cd32b8d9 81 case NO_SENSOR:
readysteadygo2006 0:cbe8cd32b8d9 82 sensor_status = SENSOR_UNCONNECTED;
readysteadygo2006 0:cbe8cd32b8d9 83 return(sensor_type);
readysteadygo2006 0:cbe8cd32b8d9 84 break;
readysteadygo2006 0:cbe8cd32b8d9 85 default:
readysteadygo2006 0:cbe8cd32b8d9 86 // printf("Error, should not get here!\r\n");
readysteadygo2006 0:cbe8cd32b8d9 87 break;
readysteadygo2006 0:cbe8cd32b8d9 88 }
readysteadygo2006 0:cbe8cd32b8d9 89
readysteadygo2006 0:cbe8cd32b8d9 90 sensor_status = SENSOR_CONNECTED;
readysteadygo2006 0:cbe8cd32b8d9 91 return sensor_type;
readysteadygo2006 0:cbe8cd32b8d9 92 }
readysteadygo2006 0:cbe8cd32b8d9 93
readysteadygo2006 0:cbe8cd32b8d9 94 sensorStatus SENSOR::readSensor(string &sensor_reading) {
readysteadygo2006 0:cbe8cd32b8d9 95 sensorStatus status;
readysteadygo2006 0:cbe8cd32b8d9 96 switch (sensor_type) {
readysteadygo2006 0:cbe8cd32b8d9 97 case DS1820_SENSOR:
readysteadygo2006 0:cbe8cd32b8d9 98 status = ds1820_sensor_ptr->readSensor(sensor_reading);
readysteadygo2006 0:cbe8cd32b8d9 99 break;
readysteadygo2006 0:cbe8cd32b8d9 100 case DHT11_SENSOR:
readysteadygo2006 0:cbe8cd32b8d9 101 status = dht11_sensor_ptr->readSensor(sensor_reading);
readysteadygo2006 0:cbe8cd32b8d9 102 break;
readysteadygo2006 0:cbe8cd32b8d9 103 case DHT22_SENSOR:
readysteadygo2006 0:cbe8cd32b8d9 104 status = dht22_sensor_ptr->readSensor(sensor_reading);
readysteadygo2006 0:cbe8cd32b8d9 105 break;
readysteadygo2006 0:cbe8cd32b8d9 106 case ML8511_SENSOR:
readysteadygo2006 0:cbe8cd32b8d9 107 status = ml8511_sensor_ptr->readSensor(sensor_reading);
readysteadygo2006 0:cbe8cd32b8d9 108 break;
readysteadygo2006 0:cbe8cd32b8d9 109 case MQ135_SENSOR:
readysteadygo2006 0:cbe8cd32b8d9 110 status = mq135_sensor_ptr->readSensor(sensor_reading);
readysteadygo2006 0:cbe8cd32b8d9 111 break;
readysteadygo2006 0:cbe8cd32b8d9 112 case BH1750_SENSOR:
readysteadygo2006 0:cbe8cd32b8d9 113 status = bh1750_sensor_ptr->readSensor(sensor_reading);
readysteadygo2006 0:cbe8cd32b8d9 114 break;
readysteadygo2006 0:cbe8cd32b8d9 115 case UNSUPPORTED_SENSOR:
readysteadygo2006 0:cbe8cd32b8d9 116 sensor_status = SENSOR_TYPE_UNSUPPORTED;
readysteadygo2006 0:cbe8cd32b8d9 117 sensor_reading = "";
readysteadygo2006 0:cbe8cd32b8d9 118 return(sensor_status);
readysteadygo2006 0:cbe8cd32b8d9 119 break;
readysteadygo2006 0:cbe8cd32b8d9 120 case NO_SENSOR:
readysteadygo2006 0:cbe8cd32b8d9 121 sensor_status = SENSOR_UNCONNECTED;
readysteadygo2006 0:cbe8cd32b8d9 122 sensor_reading = "";
readysteadygo2006 0:cbe8cd32b8d9 123 return(sensor_status);
readysteadygo2006 0:cbe8cd32b8d9 124 break;
readysteadygo2006 0:cbe8cd32b8d9 125 default:
readysteadygo2006 0:cbe8cd32b8d9 126 // printf("Error, should not get here!\r\n");
readysteadygo2006 0:cbe8cd32b8d9 127 break;
readysteadygo2006 0:cbe8cd32b8d9 128 }
readysteadygo2006 0:cbe8cd32b8d9 129
readysteadygo2006 0:cbe8cd32b8d9 130 return status;
readysteadygo2006 0:cbe8cd32b8d9 131 }
readysteadygo2006 0:cbe8cd32b8d9 132
readysteadygo2006 0:cbe8cd32b8d9 133