FOSSASAT-1B
All Data Structures Files Functions Variables Modules Pages
debugging_utilities.h
Go to the documentation of this file.
1 #ifndef DEBUGGING_UTILITIES_H_INCLUDED
2 #define DEBUGGING_UTILITIES_H_INCLUDED
3 
4 #include "FossaSat1B.h"
5 
17 // uncomment to enable debug output
18 // RadioLib debug can be enabled in RadioLib/src/TypeDef.h
19 #define FOSSASAT_DEBUG
20 //#define FOSSASAT_VERBOSE
21 
22 #define FOSSASAT_DEBUG_PORT Serial
23 #define FOSSASAT_DEBUG_SPEED 115200
24 
25 #ifdef FOSSASAT_DEBUG
26  #define FOSSASAT_DEBUG_BEGIN(...) { FOSSASAT_DEBUG_PORT.begin(__VA_ARGS__); }
27  #define FOSSASAT_DEBUG_PRINT(...) { FOSSASAT_DEBUG_PORT.print(__VA_ARGS__); }
28  #define FOSSASAT_DEBUG_PRINTLN(...) { FOSSASAT_DEBUG_PORT.println(__VA_ARGS__); }
29  #define FOSSASAT_DEBUG_WRITE(...) { FOSSASAT_DEBUG_PORT.write(__VA_ARGS__); }
30  #define FOSSASAT_DEBUG_PRINT_BUFF(BUFF, LEN) { \
31  for(size_t i = 0; i < LEN; i++) { \
32  FOSSASAT_DEBUG_PORT.print(F("0x")); \
33  FOSSASAT_DEBUG_PORT.print(BUFF[i], HEX); \
34  FOSSASAT_DEBUG_PORT.print('\t'); \
35  FOSSASAT_DEBUG_PORT.write(BUFF[i]); \
36  FOSSASAT_DEBUG_PORT.println(); \
37  } }
38  #define FOSSASAT_DEBUG_PRINT_EEPROM(ADDR, LEN) { \
39  uint8_t readBuff[0xFF]; \
40  char buff[16]; \
41  if(LEN < 16) { \
42  for(uint8_t i = 0; i < LEN; i++) { \
43  sprintf(buff, "%02x ", EEPROM.read(ADDR + i)); \
44  FOSSASAT_DEBUG_PORT.print(buff); \
45  } \
46  FOSSASAT_DEBUG_PORT.println(); \
47  } else { \
48  for(size_t i = 0; i < LEN/16; i++) { \
49  for(uint8_t j = 0; j < 16; j++) { \
50  sprintf(buff, "%02x ", EEPROM.read(ADDR + i*16 + j)); \
51  FOSSASAT_DEBUG_PORT.print(buff); \
52  } \
53  FOSSASAT_DEBUG_PORT.println(); \
54  } \
55  } }
56  #define FOSSASAT_DEBUG_DELAY(MS) { delay(MS); }
57 #else
58  #define FOSSASAT_DEBUG_BEGIN(...) {}
59  #define FOSSASAT_DEBUG_PRINT(...) {}
60  #define FOSSASAT_DEBUG_PRINTLN(...) {}
61  #define FOSSASAT_DEBUG_WRITE(...) {}
62  #define FOSSASAT_DEBUG_PRINT_BUFF(BUFF, LEN) {}
63  #define FOSSASAT_DEBUG_PRINT_EEPROM(ADDR, LEN) {}
64  #define FOSSASAT_DEBUG_DELAY(MS) {}
65 #endif
66 
67 #ifdef FOSSASAT_VERBOSE
68  #define FOSSASAT_VERBOSE_PRINT(...) { FOSSASAT_DEBUG_PORT.print(__VA_ARGS__); }
69  #define FOSSASAT_VERBOSE_PRINTLN(...) { FOSSASAT_DEBUG_PORT.println(__VA_ARGS__); }
70 #else
71  #define FOSSASAT_VERBOSE_PRINT(...) {}
72  #define FOSSASAT_VERBOSE_PRINTLN(...) {}
73 #endif
74 
79 #endif