IoT - Kubus / Mbed 2 deprecated Kubus

Dependencies:   mbed nRF24L01P

Revision:
27:27cffdb2e9d3
Child:
29:c2838405fa5c
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sensor.cpp	Mon Jan 09 23:26:52 2017 +0000
@@ -0,0 +1,43 @@
+#include "sensor.h"
+
+Sensor::Sensor(SENSOR_TYPE id) : sensor_id_(id) {}
+
+const float DigitalSensor::SEND_INTERVAL = 5.0;
+
+DigitalSensor::DigitalSensor(SENSOR_TYPE id, PinName pin) :
+        Sensor(id), sensor_(DigitalIn(pin)),
+        last_state_(false), changes_counter_(0) {
+    sensor_.mode(PullDown);
+}
+
+void DigitalSensor::updateState() {
+    bool state = sensor_.read();
+    
+    if (last_state_ != state) {
+        last_state_ = state;
+        changes_counter_++;
+    }
+}
+
+Data DigitalSensor::dataToSend() {
+    return Data(sensor_id_, changes_counter_);
+}
+
+void DigitalSensor::resetState() {
+    changes_counter_ = 0;
+}
+
+const float AnalogSensor::SEND_INTERVAL = 1.0;
+
+AnalogSensor::AnalogSensor(SENSOR_TYPE id, PinName pin) :
+        Sensor(id), sensor_(AnalogIn(pin)) {
+}
+
+void AnalogSensor::updateState() {}
+
+Data AnalogSensor::dataToSend() {
+    float data_read = sensor_.read();
+    return Data(sensor_id_, data_read);
+}
+
+void AnalogSensor::resetState() {}
\ No newline at end of file