Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Diff: sensor.cpp
- 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