-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathcooja-debug.h
44 lines (36 loc) · 2.65 KB
/
cooja-debug.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
/*
* cooja-debug.h
*
* Created on: Jan 12, 2011
* Author: simonduq
*/
#ifndef COOJA_DEBUG_H_
#define COOJA_DEBUG_H_
#if DISABLE_COOJA_DEBUG
#define HEXC(c)
#define COOJA_DEBUG_STR(str)
#define COOJA_DEBUG_POINT
#define COOJA_DEBUG_CINT(c, val)
#define COOJA_DEBUG_INT(val)
#define COOJA_DEBUG_INTH(val)
#define COOJA_DEBUG_PRINTF(...)
#define COOJA_DEBUG_ADDR(addr)
#else
#include <stdio.h>
volatile char *cooja_debug_ptr;
volatile char cooja_debug_point;
#define HEXC(c) (((c) & 0xf) <= 9 ? ((c) & 0xf) + '0' : ((c) & 0xf) + 'a' - 10)
#define COOJA_DEBUG_STR(str) do { cooja_debug_ptr = str; } while(0);
#define COOJA_DEBUG_POINT do { cooja_debug_point = !cooja_debug_point; } while(0);
#define COOJA_DEBUG_CINT(c, val)
//#define COOJA_DEBUG_CINT(c, val) if(node_id == 3) { char tmp[11] = {0}; uint32_t v = (val); int i=10; if(v==0) tmp[--i] = '0'; while(v) { tmp[--i] = '0' + v%10; v /= 10; } tmp[--i] = (c); cooja_debug_ptr = tmp+i; }
//#define COOJA_DEBUG_CINT(c, val) if(node_id == 6) { char tmp[11] = {0}; uint32_t v = (val); int i=10; if(v==0) tmp[--i] = '0'; while(v) { tmp[--i] = '0' + v%10; v /= 10; } tmp[--i] = (c); cooja_debug_ptr = tmp+i; }
#define COOJA_DEBUG_INT(val) do { char tmp[10] = {0}; uint32_t v = (uint32_t)(val); int i=9; if(v==0) tmp[--i] = '0'; while(v) { tmp[--i] = '0' + v%10; v /= 10; } cooja_debug_ptr = tmp+i; } while(0)
#define COOJA_DEBUG_INTH(val) do { char tmp[5] = {0}; uint16_t v = (uint16_t)(val); tmp[0] = HEXC(v>>12); tmp[1] = HEXC(v>>8); tmp[2] = HEXC(v>>4); tmp[3] = HEXC(v); cooja_debug_ptr = tmp; } while(0)
#define COOJA_DEBUG_PRINTF(...) do { char tmp[200]; sprintf(tmp, __VA_ARGS__); cooja_debug_ptr = tmp; } while(0);
//#define COOJA_DEBUG_ADDR(addr) { int i; COOJA_DEBUG_STR("addr"); for(i=0;i<8;i++) COOJA_DEBUG_INT(((u8_t *)addr)[i]); COOJA_DEBUG_STR("end addr");}
//#define COOJA_DEBUG_ADDR16(addr) { int i; COOJA_DEBUG_STR("addr"); for(i=0;i<16;i++) COOJA_DEBUG_INT(((u8_t *)addr)[i]); COOJA_DEBUG_STR("end addr");}
#define COOJA_DEBUG_ADDR(addr) COOJA_DEBUG_PRINTF("addr %u %u %u %u %u %u %u %u\n", ((u8_t *)addr)[7], ((u8_t *)addr)[6], ((u8_t *)addr)[5], ((u8_t *)addr)[4], ((u8_t *)addr)[3], ((u8_t *)addr)[2], ((u8_t *)addr)[1], ((u8_t *)addr)[0]);
#define COOJA_DEBUG_ADDR16(addr) COOJA_DEBUG_PRINTF("ipaddr %u %u %u %u %u %u %u %u %u %u %u %u %u %u %u %u", ((u8_t *)addr)[15], ((u8_t *)addr)[14], ((u8_t *)addr)[13], ((u8_t *)addr)[12], ((u8_t *)addr)[11], ((u8_t *)addr)[10], ((u8_t *)addr)[9], ((u8_t *)addr)[8], ((u8_t *)addr)[7], ((u8_t *)addr)[6], ((u8_t *)addr)[5], ((u8_t *)addr)[4], ((u8_t *)addr)[3], ((u8_t *)addr)[2], ((u8_t *)addr)[1], ((u8_t *)addr)[0]);
#endif /* DISABLE_COOJA_DEBUG */
#endif /* COOJA_DEBUG_H_ */