diff options
author | Matthijs Kooijman <matthijs@stdin.nl> | 2013-06-04 11:28:30 +0200 |
---|---|---|
committer | Matthijs Kooijman <matthijs@stdin.nl> | 2015-01-26 17:03:25 +0100 |
commit | 3f02bcb49fca21a39d8c0d11c287addd9f7d7724 (patch) | |
tree | 250627352c2781fd45927e0d2171032f41ed0f42 | |
parent | 7366268025c04aa15a94d88191c0a510302236b0 (diff) |
Add SoftwareSerial::stopListening()
This allows one to explicitly stop a SoftwareSerial instance from
listening, without having to make another one listening.
-rw-r--r-- | libraries/SoftwareSerial/SoftwareSerial.cpp | 11 | ||||
-rw-r--r-- | libraries/SoftwareSerial/SoftwareSerial.h | 1 |
2 files changed, 12 insertions, 0 deletions
diff --git a/libraries/SoftwareSerial/SoftwareSerial.cpp b/libraries/SoftwareSerial/SoftwareSerial.cpp index 8bf56e5..a429f7d 100644 --- a/libraries/SoftwareSerial/SoftwareSerial.cpp +++ b/libraries/SoftwareSerial/SoftwareSerial.cpp @@ -195,6 +195,17 @@ bool SoftwareSerial::listen() return false;
}
+// Stop listening. Returns true if we were actually listening.
+bool SoftwareSerial::stopListening()
+{
+ if (active_object == this)
+ {
+ active_object = NULL;
+ return true;
+ }
+ return false;
+}
+
//
// The receive routine called by the interrupt handler
//
diff --git a/libraries/SoftwareSerial/SoftwareSerial.h b/libraries/SoftwareSerial/SoftwareSerial.h index 31bd229..e0e4746 100644 --- a/libraries/SoftwareSerial/SoftwareSerial.h +++ b/libraries/SoftwareSerial/SoftwareSerial.h @@ -87,6 +87,7 @@ public: bool listen();
void end();
bool isListening() { return this == active_object; }
+ bool stopListening();
bool overflow() { bool ret = _buffer_overflow; _buffer_overflow = false; return ret; }
int peek();
|