IoT - Kubus / Mbed 2 deprecated Kubus

Dependencies:   mbed nRF24L01P

Committer:
pannaanna
Date:
Mon Jan 23 13:22:21 2017 +0100
Revision:
66:a89b7430b424
Parent:
47:9e21b199c679
3rd quartile for sound sensor

Who changed what in which revision?

UserRevisionLine numberNew contents of line
pannaannap 27:27cffdb2e9d3 1 #include "sensor.h"
pannaannap 27:27cffdb2e9d3 2
pannaanna 66:a89b7430b424 3 #include <algorithm>
pannaanna 66:a89b7430b424 4
pannaannap 27:27cffdb2e9d3 5 Sensor::Sensor(SENSOR_TYPE id) : sensor_id_(id) {}
pannaannap 27:27cffdb2e9d3 6
sbarzowski 47:9e21b199c679 7 const float DigitalSensor::SEND_INTERVAL = 10.0;
pannaannap 27:27cffdb2e9d3 8
pannaannap 27:27cffdb2e9d3 9 DigitalSensor::DigitalSensor(SENSOR_TYPE id, PinName pin) :
pannaannap 27:27cffdb2e9d3 10 Sensor(id), sensor_(DigitalIn(pin)),
pannaannap 27:27cffdb2e9d3 11 last_state_(false), changes_counter_(0) {
pannaannap 27:27cffdb2e9d3 12 sensor_.mode(PullDown);
pannaannap 27:27cffdb2e9d3 13 }
pannaannap 27:27cffdb2e9d3 14
pannaannap 27:27cffdb2e9d3 15 void DigitalSensor::updateState() {
pannaannap 27:27cffdb2e9d3 16 bool state = sensor_.read();
sbarzowski 33:d3cc00e39e6a 17
pannaannap 27:27cffdb2e9d3 18 if (last_state_ != state) {
pannaannap 27:27cffdb2e9d3 19 last_state_ = state;
pannaannap 27:27cffdb2e9d3 20 changes_counter_++;
pannaannap 27:27cffdb2e9d3 21 }
pannaannap 27:27cffdb2e9d3 22 }
pannaannap 27:27cffdb2e9d3 23
pannaannap 27:27cffdb2e9d3 24 Data DigitalSensor::dataToSend() {
pannaannap 27:27cffdb2e9d3 25 return Data(sensor_id_, changes_counter_);
pannaannap 27:27cffdb2e9d3 26 }
pannaannap 27:27cffdb2e9d3 27
pannaannap 27:27cffdb2e9d3 28 void DigitalSensor::resetState() {
pannaannap 27:27cffdb2e9d3 29 changes_counter_ = 0;
pannaannap 27:27cffdb2e9d3 30 }
pannaannap 27:27cffdb2e9d3 31
sbarzowski 47:9e21b199c679 32 const float AnalogSensor::SEND_INTERVAL = 8.0;
pannaannap 27:27cffdb2e9d3 33
pannaannap 27:27cffdb2e9d3 34 AnalogSensor::AnalogSensor(SENSOR_TYPE id, PinName pin) :
pannaannap 27:27cffdb2e9d3 35 Sensor(id), sensor_(AnalogIn(pin)) {
pannaannap 27:27cffdb2e9d3 36 }
pannaannap 27:27cffdb2e9d3 37
pannaannap 27:27cffdb2e9d3 38 void AnalogSensor::updateState() {}
pannaannap 27:27cffdb2e9d3 39
pannaannap 27:27cffdb2e9d3 40 Data AnalogSensor::dataToSend() {
pannaannap 27:27cffdb2e9d3 41 float data_read = sensor_.read();
pannaannap 27:27cffdb2e9d3 42 return Data(sensor_id_, data_read);
pannaannap 27:27cffdb2e9d3 43 }
pannaannap 27:27cffdb2e9d3 44
sbarzowski 33:d3cc00e39e6a 45 void AnalogSensor::resetState() {}
pannaanna 66:a89b7430b424 46
pannaanna 66:a89b7430b424 47 SoundSensor::SoundSensor(SENSOR_TYPE id, PinName pin) :
pannaanna 66:a89b7430b424 48 AnalogSensor(id, pin), values_() {
pannaanna 66:a89b7430b424 49 }
pannaanna 66:a89b7430b424 50
pannaanna 66:a89b7430b424 51 void SoundSensor::updateState() {
pannaanna 66:a89b7430b424 52 float data_read = sensor_.read();
pannaanna 66:a89b7430b424 53 values_.push_back(data_read);
pannaanna 66:a89b7430b424 54 }
pannaanna 66:a89b7430b424 55
pannaanna 66:a89b7430b424 56 Data SoundSensor::dataToSend() {
pannaanna 66:a89b7430b424 57 std::sort(values_.begin(), values_.end());
pannaanna 66:a89b7430b424 58 int q3_index = values_.size() * 0.75;
pannaanna 66:a89b7430b424 59 float q3 = values_[q3_index];
pannaanna 66:a89b7430b424 60 return Data(sensor_id_, q3);
pannaanna 66:a89b7430b424 61 }
pannaanna 66:a89b7430b424 62
pannaanna 66:a89b7430b424 63 void SoundSensor::resetState() {
pannaanna 66:a89b7430b424 64 values_.clear();
pannaanna 66:a89b7430b424 65 }
pannaanna 66:a89b7430b424 66
pannaanna 66:a89b7430b424 67