Tool to dump contents of a data buffer in traditional terminal format. Some VT100 color commands used.
PrintBuffer.h@2:e7f3ba216a14, 2015-01-29 (annotated)
- Committer:
- loopsva
- Date:
- Thu Jan 29 19:18:27 2015 +0000
- Revision:
- 2:e7f3ba216a14
- Parent:
- 0:94d1683e78b7
- Child:
- 4:c3c8b072f80f
Added "unsigned char" function
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 | 2:e7f3ba216a14 | 8 | * Illegal ascii characters are represented as a cyan colored dot "." |
loopsva | 0:94d1683e78b7 | 9 | * |
loopsva | 0:94d1683e78b7 | 10 | * example; dump myBuffer, 4 lines starting at line 18 |
loopsva | 0:94d1683e78b7 | 11 | * |
loopsva | 2:e7f3ba216a14 | 12 | * dump("This is myBuffer:", 4, 0x120, myBuffer); //Note: this line will be colored magenta below |
loopsva | 2:e7f3ba216a14 | 13 | * |
loopsva | 2:e7f3ba216a14 | 14 | * This is myBuffer: - lines: 4 starting at: 0x0120 |
loopsva | 0:94d1683e78b7 | 15 | * |
loopsva | 0:94d1683e78b7 | 16 | * 0120 00 04 09 29 00 00 00 00 00 00 00 00 00 00 00 00 ...).... ........ |
loopsva | 2:e7f3ba216a14 | 17 | * |
loopsva | 0:94d1683e78b7 | 18 | * 0130 00 00 00 00 00 00 00 00 00 00 00 00 00 00 4c 00 ........ ......L. |
loopsva | 2:e7f3ba216a14 | 19 | * |
loopsva | 0:94d1683e78b7 | 20 | * 0140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........ |
loopsva | 2:e7f3ba216a14 | 21 | * |
loopsva | 0:94d1683e78b7 | 22 | * 0150 00 00 00 00 00 00 00 00 00 00 00 00 65 6e 64 00 ........ ....end. |
loopsva | 0:94d1683e78b7 | 23 | * |
loopsva | 0:94d1683e78b7 | 24 | * @code |
loopsva | 0:94d1683e78b7 | 25 | * #include "mbed.h" |
loopsva | 0:94d1683e78b7 | 26 | * #include "PrintBuffer.h" |
loopsva | 0:94d1683e78b7 | 27 | * |
loopsva | 0:94d1683e78b7 | 28 | * PrintBuffer pb("pb"); |
loopsva | 0:94d1683e78b7 | 29 | * DigitalOut led1(LED1, "led1"); |
loopsva | 0:94d1683e78b7 | 30 | * DigitalOut led2(LED2, "led2"); |
loopsva | 0:94d1683e78b7 | 31 | * Serial pc(USBTX, USBRX); |
loopsva | 0:94d1683e78b7 | 32 | * |
loopsva | 0:94d1683e78b7 | 33 | * int gDebug = 1; |
loopsva | 0:94d1683e78b7 | 34 | * char* myBuffer = new char[256]; //example buffers |
loopsva | 0:94d1683e78b7 | 35 | * char* myOtherBuffer = new char[64]; |
loopsva | 0:94d1683e78b7 | 36 | * |
loopsva | 0:94d1683e78b7 | 37 | * int main() { |
loopsva | 0:94d1683e78b7 | 38 | * pc.baud(921600); |
loopsva | 0:94d1683e78b7 | 39 | * for(int i = 0; i < 256; i++) { //example, fill myBuffer with 0, 1, 2, 3, 4...256 |
loopsva | 0:94d1683e78b7 | 40 | * myBuffer[i] = i; |
loopsva | 0:94d1683e78b7 | 41 | * } |
loopsva | 0:94d1683e78b7 | 42 | * for(int i = 0; i < 64; i++) { //example, fill myOtherBuffer with 192, 193, 194, 195...256 |
loopsva | 0:94d1683e78b7 | 43 | * myOtherBuffer[i] = i + 192; |
loopsva | 0:94d1683e78b7 | 44 | * } |
loopsva | 0:94d1683e78b7 | 45 | * pc.printf("example, 16 lines of myBuffer, starting at 0x0000\n"); |
loopsva | 0:94d1683e78b7 | 46 | * pb.dump(16, 0, myBuffer); |
loopsva | 0:94d1683e78b7 | 47 | * pc.printf("example, 3 lines of myBuffer, starting at 0x0034\n"); |
loopsva | 0:94d1683e78b7 | 48 | * pb.dump(3, 0x34, myBuffer); |
loopsva | 0:94d1683e78b7 | 49 | * pc.printf("example, 4 lines of myOtherBuffer, starting at 0x0000\n"); |
loopsva | 0:94d1683e78b7 | 50 | * pb.dump(4, 0, myOtherBuffer); |
loopsva | 0:94d1683e78b7 | 51 | * led2 = 1; |
loopsva | 0:94d1683e78b7 | 52 | * while(true) { |
loopsva | 0:94d1683e78b7 | 53 | * wait(0.5); |
loopsva | 0:94d1683e78b7 | 54 | * led1 = !led1; |
loopsva | 0:94d1683e78b7 | 55 | * led2 = !led2; |
loopsva | 0:94d1683e78b7 | 56 | * } |
loopsva | 0:94d1683e78b7 | 57 | * } |
loopsva | 0:94d1683e78b7 | 58 | * @endcode |
loopsva | 0:94d1683e78b7 | 59 | */ |
loopsva | 0:94d1683e78b7 | 60 | |
loopsva | 0:94d1683e78b7 | 61 | class PrintBuffer { |
loopsva | 0:94d1683e78b7 | 62 | |
loopsva | 0:94d1683e78b7 | 63 | public: |
loopsva | 0:94d1683e78b7 | 64 | /** Create a PrintBuffer object with a name attached |
loopsva | 0:94d1683e78b7 | 65 | * |
loopsva | 0:94d1683e78b7 | 66 | * @param constructor, - for PrintBuffer |
loopsva | 0:94d1683e78b7 | 67 | */ |
loopsva | 0:94d1683e78b7 | 68 | PrintBuffer(const char* name); |
loopsva | 0:94d1683e78b7 | 69 | /** Print out hex / ascii data using pc.printf using format above |
loopsva | 0:94d1683e78b7 | 70 | * |
loopsva | 0:94d1683e78b7 | 71 | * @param three, (int # of lines to print), (int starting address), (c c name of buffer to print) |
loopsva | 0:94d1683e78b7 | 72 | */ |
loopsva | 0:94d1683e78b7 | 73 | int dump(const char* title, int BufferLines, int BufferOffset, const char buffer[]); |
loopsva | 0:94d1683e78b7 | 74 | /** Print out hex / ascii data using pc.printf using format above |
loopsva | 0:94d1683e78b7 | 75 | * |
loopsva | 0:94d1683e78b7 | 76 | * @param three, (int # of lines to print), (int starting address), (c u8_t name of buffer to print) |
loopsva | 0:94d1683e78b7 | 77 | */ |
loopsva | 0:94d1683e78b7 | 78 | int dump_t(const char* title, int BufferLines, int BufferOffset, const uint8_t buffer[]); |
loopsva | 2:e7f3ba216a14 | 79 | /** Print out hex / ascii data using pc.printf using format above |
loopsva | 2:e7f3ba216a14 | 80 | * |
loopsva | 2:e7f3ba216a14 | 81 | * @param three, (int # of lines to print), (int starting address), (c unsigned char name of buffer to print) |
loopsva | 2:e7f3ba216a14 | 82 | */ |
loopsva | 2:e7f3ba216a14 | 83 | int dump_uc(const char* title, int BufferLines, int BufferOffset, const unsigned char buffer[]); |
loopsva | 0:94d1683e78b7 | 84 | |
loopsva | 0:94d1683e78b7 | 85 | private: |
loopsva | 0:94d1683e78b7 | 86 | |
loopsva | 0:94d1683e78b7 | 87 | int BufferLines; |
loopsva | 0:94d1683e78b7 | 88 | |
loopsva | 0:94d1683e78b7 | 89 | }; |
loopsva | 0:94d1683e78b7 | 90 | |
loopsva | 0:94d1683e78b7 | 91 | #endif |