MODSERIAL with support for more devices
Dependents: 1D-Pong BMT-K9_encoder BMT-K9-Regelaar programma_filter ... more
Check the cookbook page for more information: https://mbed.org/cookbook/MODSERIAL
Did you add a device? Please send a pull request so we can keep everything in one library instead of many copies. In that case also send a PM, since currently mbed does not inform of new pull requests. I will then also add you to the developers of this library so you can do other changes directly.
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