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.
Dependencies: EthernetInterface MQTT mbed-dsp mbed-rtos mbed
Fork of KL25Z_FFT_Demo_tony by
Diff: main.cpp
- Revision:
- 5:4152530c0cf5
- Parent:
- 3:54760764be66
- Child:
- 6:78106c78e577
--- a/main.cpp Fri Jan 08 15:51:04 2016 +0000
+++ b/main.cpp Mon Jan 11 11:03:24 2016 +0000
@@ -16,6 +16,9 @@
enum Mode {RESPONCIVE, OVERRIDE};
+//timer
+Ticker timer;
+
//buffers
char mqtt_buffer[100];
MQTT::Message message;
@@ -39,11 +42,16 @@
checkPresence = true;
}
+void timeout() {
+ if(mode==RESPONCIVE) pelican = false;
+ timer.detach();
+}
+
void messageArrived(MQTT::MessageData& md) {
MQTT::Message &msg = md.message;
if(msg.payloadlen>0) {
switch(*(char*)msg.payload) {
- case 'r': case 'R': mode = RESPONCIVE; pelican=personPresent; break;
+ case 'r': case 'R': mode = RESPONCIVE; if(!personPresent) timer.attach(&timeout,3.0f); break;
case 'o': case 'O': mode = OVERRIDE; pelican=true; break;
}
}
@@ -80,13 +88,7 @@
if(checkPresence) {
float s = sensor;
if((s<0.5f)!=personPresent) { //state changed
- if(personPresent) {
- //last person left
- personPresent = false;
- } else {
- //person arrived
- personPresent = true;
- }
+ personPresent = !personPresent;
sprintf(mqtt_buffer, "{\"personPresent\":%d}", personPresent);
message.qos = MQTT::QOS0; // Send at least once
@@ -95,8 +97,9 @@
message.payload = (void*)mqtt_buffer;
m_client.publish(personTopic, message);
- if(mode==RESPONCIVE) {
- pelican = personPresent;
+ if(personPresent) {
+ timer.attach(&timeout,3.0f);
+ pelican = true;
}
}
checkPresence = false;

