A simple Ethernet sniffer. A demonstration how to use the Ethernet interface.

Dependencies:   mbed

Committer:
rolf
Date:
Fri Sep 04 12:24:03 2009 +0000
Revision:
0:29e2df9de9f1

        

Who changed what in which revision?

UserRevisionLine numberNew contents of line
rolf 0:29e2df9de9f1 1 /* Function: hexview
rolf 0:29e2df9de9f1 2 * Prints an array of char to stdout in hex.
rolf 0:29e2df9de9f1 3 * The data is grouped in two 8 byte groups per line.
rolf 0:29e2df9de9f1 4 * Each byte is displayed as 2 hex digits and every
rolf 0:29e2df9de9f1 5 * line starts with the address of the first byte.
rolf 0:29e2df9de9f1 6 *
rolf 0:29e2df9de9f1 7 * There is no text view of a line.
rolf 0:29e2df9de9f1 8 *
rolf 0:29e2df9de9f1 9 * Variables:
rolf 0:29e2df9de9f1 10 * buffer - The array to display.
rolf 0:29e2df9de9f1 11 * size - The length of buffer.
rolf 0:29e2df9de9f1 12 */
rolf 0:29e2df9de9f1 13 inline void hexview(char *buffer, unsigned int size) {
rolf 0:29e2df9de9f1 14 for(int i = 0; i < size; ++i) {
rolf 0:29e2df9de9f1 15 if((i%16)!=0) {
rolf 0:29e2df9de9f1 16 printf(" ");
rolf 0:29e2df9de9f1 17 } else {
rolf 0:29e2df9de9f1 18 printf("%04X: ", (i));
rolf 0:29e2df9de9f1 19 }
rolf 0:29e2df9de9f1 20 printf("%02hhx", buffer[i]);
rolf 0:29e2df9de9f1 21 if((i%16) == 7) {
rolf 0:29e2df9de9f1 22 printf(" ");
rolf 0:29e2df9de9f1 23 }
rolf 0:29e2df9de9f1 24 if((i%16) == 15) {
rolf 0:29e2df9de9f1 25 printf("\n");
rolf 0:29e2df9de9f1 26 }
rolf 0:29e2df9de9f1 27 }
rolf 0:29e2df9de9f1 28 printf("\n\n\n");
rolf 0:29e2df9de9f1 29 }