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.
Dependents: STM32L452_Nucleo_ticker
Fork of mbed-dev by
Diff: platform/ATCmdParser.cpp
- Revision:
- 176:447f873cad2f
- Parent:
- 167:e84263d55307
diff -r af195413fb11 -r 447f873cad2f platform/ATCmdParser.cpp
--- a/platform/ATCmdParser.cpp Wed Oct 11 12:45:49 2017 +0100
+++ b/platform/ATCmdParser.cpp Wed Oct 25 14:53:38 2017 +0100
@@ -380,3 +380,44 @@
{
_aborted = true;
}
+
+bool ATCmdParser::process_oob()
+{
+ if (!_fh->readable()) {
+ return false;
+ }
+
+ int i = 0;
+ while (true) {
+ // Receive next character
+ int c = getc();
+ if (c < 0) {
+ return false;
+ }
+ _buffer[i++] = c;
+ _buffer[i] = 0;
+
+ // Check for oob data
+ struct oob *oob = _oobs;
+ while (oob) {
+ if (i == (int)oob->len && memcmp(
+ oob->prefix, _buffer, oob->len) == 0) {
+ debug_if(_dbg_on, "AT! %s\r\n", oob->prefix);
+ oob->cb();
+ return true;
+ }
+ oob = oob->next;
+ }
+
+ // Clear the buffer when we hit a newline or ran out of space
+ // running out of space usually means we ran into binary data
+ if (i+1 >= _buffer_size ||
+ strcmp(&_buffer[i-_output_delim_size], _output_delimiter) == 0) {
+
+ debug_if(_dbg_on, "AT< %s", _buffer);
+ i = 0;
+ }
+ }
+}
+
+
