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: Autoflight2018_22_MODSERIAL
Fork of MODSERIAL by
Revision 31:b90b20f78f04, committed 2013-10-11
- Comitter:
- Sissors
- Date:
- Fri Oct 11 18:31:01 2013 +0000
- Parent:
- 30:b04ce87dc424
- Child:
- 32:f42def64c4ee
- Commit message:
- Added claim function to redirect stdout (or similar)
Changed in this revision
--- a/ChangeLog.c Sun Sep 01 12:24:12 2013 +0000
+++ b/ChangeLog.c Fri Oct 11 18:31:01 2013 +0000
@@ -1,4 +1,7 @@
/* $Id:$
+1.31 11th October 2013
+ * Added claim function to redirect for example stdout
+
1.30 1st September 2013
* Removed all DMA related code (not supported in this version currently)
* Minor bug fix
--- a/MODSERIAL.cpp Sun Sep 01 12:24:12 2013 +0000
+++ b/MODSERIAL.cpp Fri Oct 11 18:31:01 2013 +0000
@@ -93,4 +93,27 @@
}
+bool MODSERIAL::claim (FILE *stream) {
+ if ( _name == NULL) {
+ error("claim requires a name to be given in the instantiator of the MODSERIAL instance!\r\n");
+ }
+
+ //Add '/' before name:
+ char *path = new char[strlen(_name) + 2];
+ sprintf(path, "/%s", _name);
+
+ if (freopen(path, "w", stream) == NULL) {
+ // Failed, should not happen
+ return false;
+ }
+
+ delete(path);
+
+ //No buffering
+ setvbuf(stdout, NULL, _IONBF, buffer_size[TxIrq]);
+ return true;
+}
+
+
+
}; // namespace AjK ends
--- a/MODSERIAL.h Sun Sep 01 12:24:12 2013 +0000
+++ b/MODSERIAL.h Fri Oct 11 18:31:01 2013 +0000
@@ -729,6 +729,19 @@
return move(s, max, auto_detect_char);
}
+ /**
+ * Function: claim
+ *
+ * Redirect a stream to this MODSERIAL object
+ *
+ * Important: A name parameter must have been added when creating the MODSERIAL object
+ *
+ * @ingroup API
+ * @param FILE *stream The stream to redirect (default = stdout)
+ * @return true if succeeded, else false
+ */
+ bool claim(FILE *stream = stdout);
+
#if 0 // Inhereted from Serial/Stream, for documentation only
/**
* Function: putc
