Tool to dump contents of a data buffer in traditional terminal format. Some VT100 color commands used.
PrintBuffer.h@0:94d1683e78b7, 2013-11-14 (annotated)
- Committer:
- loopsva
- Date:
- Thu Nov 14 00:35:46 2013 +0000
- Revision:
- 0:94d1683e78b7
- Child:
- 2:e7f3ba216a14
allow for char and uint8_t character types
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
loopsva | 0:94d1683e78b7 | 1 | #ifndef PrintBuffer_H |
loopsva | 0:94d1683e78b7 | 2 | #define PrintBuffer_H |
loopsva | 0:94d1683e78b7 | 3 | |
loopsva | 0:94d1683e78b7 | 4 | #include "mbed.h" |
loopsva | 0:94d1683e78b7 | 5 | |
loopsva | 0:94d1683e78b7 | 6 | /** Print Buffer Routine. Displays X number of lines in a buffer. |
loopsva | 0:94d1683e78b7 | 7 | * each line broken int 2 groups of HEX characters followed by 2 groups of ASCII characters. |
loopsva | 0:94d1683e78b7 | 8 | * Illegal ascii characters are represented as a dot "." |
loopsva | 0:94d1683e78b7 | 9 | * |
loopsva | 0:94d1683e78b7 | 10 | * example; dump myBuffer, 4 lines starting at line 18 |
loopsva | 0:94d1683e78b7 | 11 | * |
loopsva | 0:94d1683e78b7 | 12 | * dump(4, 0x120, myBuffer); |
loopsva | 0:94d1683e78b7 | 13 | * |
loopsva | 0:94d1683e78b7 | 14 | * lines: 4 starting at: 0x0120 contents: |
loopsva | 0:94d1683e78b7 | 15 | * 0120 00 04 09 29 00 00 00 00 00 00 00 00 00 00 00 00 ...).... ........ |
loopsva | 0:94d1683e78b7 | 16 | * 0130 00 00 00 00 00 00 00 00 00 00 00 00 00 00 4c 00 ........ ......L. |
loopsva | 0:94d1683e78b7 | 17 | * 0140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........ |
loopsva | 0:94d1683e78b7 | 18 | * 0150 00 00 00 00 00 00 00 00 00 00 00 00 65 6e 64 00 ........ ....end. |
loopsva | 0:94d1683e78b7 | 19 | * |
loopsva | 0:94d1683e78b7 | 20 | * @code |
loopsva | 0:94d1683e78b7 | 21 | * #include "mbed.h" |
loopsva | 0:94d1683e78b7 | 22 | * #include "PrintBuffer.h" |
loopsva | 0:94d1683e78b7 | 23 | * |
loopsva | 0:94d1683e78b7 | 24 | * PrintBuffer pb("pb"); |
loopsva | 0:94d1683e78b7 | 25 | * DigitalOut led1(LED1, "led1"); |
loopsva | 0:94d1683e78b7 | 26 | * DigitalOut led2(LED2, "led2"); |
loopsva | 0:94d1683e78b7 | 27 | * Serial pc(USBTX, USBRX); |
loopsva | 0:94d1683e78b7 | 28 | * |
loopsva | 0:94d1683e78b7 | 29 | * int gDebug = 1; |
loopsva | 0:94d1683e78b7 | 30 | * char* myBuffer = new char[256]; //example buffers |
loopsva | 0:94d1683e78b7 | 31 | * char* myOtherBuffer = new char[64]; |
loopsva | 0:94d1683e78b7 | 32 | * |
loopsva | 0:94d1683e78b7 | 33 | * int main() { |
loopsva | 0:94d1683e78b7 | 34 | * pc.baud(921600); |
loopsva | 0:94d1683e78b7 | 35 | * for(int i = 0; i < 256; i++) { //example, fill myBuffer with 0, 1, 2, 3, 4...256 |
loopsva | 0:94d1683e78b7 | 36 | * myBuffer[i] = i; |
loopsva | 0:94d1683e78b7 | 37 | * } |
loopsva | 0:94d1683e78b7 | 38 | * for(int i = 0; i < 64; i++) { //example, fill myOtherBuffer with 192, 193, 194, 195...256 |
loopsva | 0:94d1683e78b7 | 39 | * myOtherBuffer[i] = i + 192; |
loopsva | 0:94d1683e78b7 | 40 | * } |
loopsva | 0:94d1683e78b7 | 41 | * pc.printf("example, 16 lines of myBuffer, starting at 0x0000\n"); |
loopsva | 0:94d1683e78b7 | 42 | * pb.dump(16, 0, myBuffer); |
loopsva | 0:94d1683e78b7 | 43 | * pc.printf("example, 3 lines of myBuffer, starting at 0x0034\n"); |
loopsva | 0:94d1683e78b7 | 44 | * pb.dump(3, 0x34, myBuffer); |
loopsva | 0:94d1683e78b7 | 45 | * pc.printf("example, 4 lines of myOtherBuffer, starting at 0x0000\n"); |
loopsva | 0:94d1683e78b7 | 46 | * pb.dump(4, 0, myOtherBuffer); |
loopsva | 0:94d1683e78b7 | 47 | * led2 = 1; |
loopsva | 0:94d1683e78b7 | 48 | * while(true) { |
loopsva | 0:94d1683e78b7 | 49 | * wait(0.5); |
loopsva | 0:94d1683e78b7 | 50 | * led1 = !led1; |
loopsva | 0:94d1683e78b7 | 51 | * led2 = !led2; |
loopsva | 0:94d1683e78b7 | 52 | * } |
loopsva | 0:94d1683e78b7 | 53 | * } |
loopsva | 0:94d1683e78b7 | 54 | * @endcode |
loopsva | 0:94d1683e78b7 | 55 | */ |
loopsva | 0:94d1683e78b7 | 56 | |
loopsva | 0:94d1683e78b7 | 57 | class PrintBuffer { |
loopsva | 0:94d1683e78b7 | 58 | |
loopsva | 0:94d1683e78b7 | 59 | public: |
loopsva | 0:94d1683e78b7 | 60 | /** Create a PrintBuffer object with a name attached |
loopsva | 0:94d1683e78b7 | 61 | * |
loopsva | 0:94d1683e78b7 | 62 | * @param constructor, - for PrintBuffer |
loopsva | 0:94d1683e78b7 | 63 | */ |
loopsva | 0:94d1683e78b7 | 64 | PrintBuffer(const char* name); |
loopsva | 0:94d1683e78b7 | 65 | /** Print out hex / ascii data using pc.printf using format above |
loopsva | 0:94d1683e78b7 | 66 | * |
loopsva | 0:94d1683e78b7 | 67 | * @param three, (int # of lines to print), (int starting address), (c c name of buffer to print) |
loopsva | 0:94d1683e78b7 | 68 | */ |
loopsva | 0:94d1683e78b7 | 69 | int dump(const char* title, int BufferLines, int BufferOffset, const char buffer[]); |
loopsva | 0:94d1683e78b7 | 70 | /** Print out hex / ascii data using pc.printf using format above |
loopsva | 0:94d1683e78b7 | 71 | * |
loopsva | 0:94d1683e78b7 | 72 | * @param three, (int # of lines to print), (int starting address), (c u8_t name of buffer to print) |
loopsva | 0:94d1683e78b7 | 73 | */ |
loopsva | 0:94d1683e78b7 | 74 | int dump_t(const char* title, int BufferLines, int BufferOffset, const uint8_t buffer[]); |
loopsva | 0:94d1683e78b7 | 75 | |
loopsva | 0:94d1683e78b7 | 76 | private: |
loopsva | 0:94d1683e78b7 | 77 | |
loopsva | 0:94d1683e78b7 | 78 | int BufferLines; |
loopsva | 0:94d1683e78b7 | 79 | |
loopsva | 0:94d1683e78b7 | 80 | }; |
loopsva | 0:94d1683e78b7 | 81 | |
loopsva | 0:94d1683e78b7 | 82 | #endif |