Serial Monitor using a specific PC application: XMON
Revision 0:ad2d25216a13, committed 2012-06-28
- Comitter:
- clemente
- Date:
- Thu Jun 28 10:20:45 2012 +0000
- Commit message:
Changed in this revision
XMONlib.cpp | Show annotated file Show diff for this revision Revisions of this file |
XMONlib.h | Show annotated file Show diff for this revision Revisions of this file |
diff -r 000000000000 -r ad2d25216a13 XMONlib.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/XMONlib.cpp Thu Jun 28 10:20:45 2012 +0000 @@ -0,0 +1,223 @@ +/* mbed XMON library. + + XMON Micro controller serial port debugger variable view realtime curve tracer + http://webx.dk/XMON/index.htm + + XMON is a windows program that show and plot value received fomr the serial port. + This is the banner from the XMON documentation: + // XMON 2.1 ALPHA (autoscaling on/off/min/max) 15 feb 2008 + // XMON is a free utility for monitoring and communication with MCU development + // Made by DZL (help ideas support testing TST) + // if this program help you and you are happy to use it, please donate a fee to thomas@webx.dk via paypal + // any donation will be put into improving XMON, any size of donation small or big will be most appliciated. + // suggestions and bugs to thomas@webx.dk + // we will setup a homepage with features and tips and tricks and so on soon, see webx.dk and dzl.dk + + Copyright (c) 2011 NXP 3786 + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + THE SOFTWARE. +*/ +#include "mbed.h" +#include "XMONlib.h" + +XMON::XMON( PinName tx, PinName rx) : Serial(tx, rx) +{ +} + +/** Clear and restart x axis for the specified trace + * + * @param trace trace value + */ +void XMON::plotZero( unsigned int trace) +{ // value is the plot trace you want to zero on XMON + putc('*'); + putc('T'); // re Trigger 'T', clear all traces and restart X axis scaling 'C' + putc( (unsigned char)trace); +} + +/** Clear all trace and restart x axis + * @param none + */ +void XMON::plotZero( void) +{ + putc('*'); + putc('T'); // re Trigger 'T', clear + putc( 0); + + putc('*'); + putc('T'); // re Trigger 'T', clear + putc( 1); + + putc('*'); + putc('T'); // re Trigger 'T', clear + putc( 2); + + putc('*'); + putc('T'); // re Trigger 'T', clear + putc( 3); +} + +/** Plot float data + * + * @param data float value to plot. + * @param trace color graph + */ +void XMON::plotf( float data, unsigned int trace) +{ + putc('*'); + putc('d'); + putc(((char*)&data)[3]); + putc('D'); + putc(((char*)&data)[2]); + putc('D'); + putc(((char*)&data)[1]); + putc('D'); + putc(((char*)&data)[0]); + putc('F'); // here is the data handler selector indicator to XMON + putc( (unsigned char)trace); +} + +/** View float data + * + * @param data float value to view. + * @param line line label + */ +void XMON::viewf( float data, unsigned int trace) +{ + putc('*'); + putc('d'); + putc(((char*)&data)[3]); + putc('D'); + putc(((char*)&data)[2]); + putc('D'); + putc(((char*)&data)[1]); + putc('D'); + putc(((char*)&data)[0]); + putc('f');// here is the data handler selector indicator to XMON + putc( (unsigned char)trace); +} + +/** Plot signed 32 bits data + * + * @param data signed 32bit value to plot. + * @param trace color graph + */ +void XMON::plotl( int data,unsigned int trace) +{ + putc('*'); + putc('d'); + putc(((char*)&data)[3]); + putc('D'); + putc(((char*)&data)[2]); + putc('D'); + putc(((char*)&data)[1]); + putc('D'); + putc(((char*)&data)[0]); + putc('I'); // here is the data handler selector indicator to XMON + putc( (unsigned char)trace); +} + +/** View signed 32 bits data + * + * @param data unsigned short value to view. + * @param line line label + */ +void XMON::viewl( int data, unsigned int trace) +{ + putc('*'); + putc('d'); + putc(((char*)&data)[3]); + putc('D'); + putc(((char*)&data)[2]); + putc('D'); + putc(((char*)&data)[1]); + putc('D'); + putc(((char*)&data)[0]); + putc('i'); // here is the data handler selector indicator to XMON + putc( (unsigned char)trace); +} + + +/** Plot unsigned 16 bits data + * + * @param data unsigned short value to plot. + * @param trace color graph + */ +void XMON::plot( unsigned short data, unsigned int trace) +{ + putc('*'); + putc('d'); + putc( (unsigned char)(data>>8)); + putc('D'); + putc( (unsigned char)data); + putc('P'); // here is the data handler selector indicator to XMON + putc( (unsigned char)trace); +} + +/** View unsigned 16 bits data + * + * @param data unsigned short value to view. + * @param line line label + */ +void XMON::view( unsigned short data, unsigned int line) // Unsigned Integers 16 bits values in the VIEW variable value area +{ + putc('*'); + putc('d'); + putc( (unsigned char)(data>>8)); + putc('D'); + putc( (unsigned char)data); + putc('V');// here is the data handler selector indicator to XMON + putc( (unsigned char)line); +} + +/** Put the PLOT GRAPH in auto scale mode + * + * @param s 0 auto scale OFF, 1 auto scale ON + */ +void XMON::autoscale( char s) // +{ + putc('*'); + putc('A'); + putc(s); +} + +/* + +void ViewFreqBin( int data) +{ + viewl( data, XMON_RED); + +} + +void PlotSpectrum( int * specarray, float data) +{ + unsigned int i=0; + + plotZero( XMON_RED); + + viewf( data, XMON_RED); + + while ( i < NBIN/2) + { + plot( specarray[i], XMON_RED); + i++; + } +} + +*/ \ No newline at end of file
diff -r 000000000000 -r ad2d25216a13 XMONlib.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/XMONlib.h Thu Jun 28 10:20:45 2012 +0000 @@ -0,0 +1,142 @@ +/* mbed XMON library. +* +* XMON Micro controller serial port debugger variable view realtime curve tracer +* http://webx.dk/XMON/index.htm +* +* XMON is a windows program that show and plot value received fomr the serial port. +* This is the banner from the XMON documentation: +* // XMON 2.1 ALPHA (autoscaling on/off/min/max) 15 feb 2008 +* // XMON is a free utility for monitoring and communication with MCU development +* // Made by DZL (help ideas support testing TST) +* // if this program help you and you are happy to use it, please donate a fee to thomas@webx.dk via paypal +* // any donation will be put into improving XMON, any size of donation small or big will be most appliciated. +* // suggestions and bugs to thomas@webx.dk +* // we will setup a homepage with features and tips and tricks and so on soon, see webx.dk and dzl.dk +* +* Copyright (c) 2011 NXP 3786 +* +* Permission is hereby granted, free of charge, to any person obtaining a copy +* of this software and associated documentation files (the "Software"), to deal +* in the Software without restriction, including without limitation the rights +* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +* copies of the Software, and to permit persons to whom the Software is +* furnished to do so, subject to the following conditions: +* +* The above copyright notice and this permission notice shall be included in +* all copies or substantial portions of the Software. +* +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +* THE SOFTWARE. +*/ + +#ifndef __MBED_XMONLIB_H +#define __MBED_XMONLIB_H + +#include "mbed.h" + +#define XMON_AUTO_SCALE_OFF 0 +#define XMON_AUTO_SCALE_ON 1 +#define XMON_RED 0 // Colors of the PLOT GRAPHS +#define XMON_GREEN 1 +#define XMON_BLUE 2 +#define XMON_YELLOW 3 + +/** XMON Micro controller serial port debugger + * + * @code + * #include "mbed.h" + * #include "XMONlib.h" + * + * XMON xm( USBTX, USBRX); + * + * int main() + * { + * // Set the rate to XMON. Remenber to change the program too... + * xm.baud( 115200); + * .... + * xm.viewf( 3.1415, 0); // view pi value + * xm.view( 100, 1); // view an integer value + * + * xm.plotZero(); // clear the plot area + * for (int i=0; i<128; i++) + * { + * xm.plot( i, 0); // plot the i value... + * } + * + * + */ + +class XMON : public Serial +{ + +public: + + XMON( PinName tx, PinName rx); + + /** Clear and restart x axis for the specified trace + * + * @param trace trace value + */ + void plotZero( unsigned int trace); + + /** Clear all trace and restart x axis + * @param none + */ + void plotZero( void); + + /** Plot float data + * + * @param data float value to plot. + * @param trace color graph + */ + void plotf( float data, unsigned int trace); + + /** View float data + * + * @param data float value to view. + * @param line line label + */ + void viewf( float data, unsigned int trace); + + /** Plot signed 32 bits data + * + * @param data signed 32bit value to plot. + * @param trace color graph + */ + void plotl( int data,unsigned int trace); + + /** View signed 32 bits data + * + * @param data unsigned short value to view. + * @param line line label + */ + void viewl( int data, unsigned int trace); + + /** Plot unsigned 16 bits data + * + * @param data unsigned short value to plot. + * @param trace color graph + */ + void plot( unsigned short data, unsigned int trace); + + /** View unsigned 16 bits data + * + * @param data unsigned short value to view. + * @param line line label + */ + void view( unsigned short data, unsigned int line); + + /** Put the PLOT GRAPH in auto scale mode + * + * @param s 0 auto scale OFF, 1 auto scale ON + */ + void autoscale( char s); + +}; + +#endif \ No newline at end of file