I added functionality to get the RSSI, BER, and Cell Neighbor for reporting connection issues to M2X
Dependencies: WncControllerK64F
Diff: WNCInterface.h
- Revision:
- 3:1d7e6ed11269
- Parent:
- 0:55ec71dc0347
- Child:
- 5:759dceff95b9
diff -r dab56b75d4dd -r 1d7e6ed11269 WNCInterface.h --- a/WNCInterface.h Tue Sep 27 16:29:16 2016 +0000 +++ b/WNCInterface.h Tue Sep 27 19:16:22 2016 +0000 @@ -35,6 +35,8 @@ //0=simply return failed response for all socket calls #define DISPLAY_FE 1 //1 to display the fatal error when it occurs //0 to NOT display the fatal error +#define RESETON_FE 1 //1 to cause the MCU to reset on fatal error + //0 to NOT reset the MCU #define APN_DEFAULT "m2m.com.attz" // @@ -46,25 +48,34 @@ #define RETfail return -1 #define RETvoid return #define RETnull return NULL +#define RETresume + #define DORET(x) RET##x #define TOSTR(x) #x #define INTSTR(x) TOSTR(x) #define FATAL_STR __FILE__ ":" INTSTR(__LINE__) +#if RESETON_FE == 1 +#define MCURESET ((*((volatile unsigned long *)0xE000ED0CU))=(unsigned long)((0x5fa<<16) | 0x04L)) +#define RSTMSG "RESET MCU! " +#else +#define MCURESET +#define RSTMSG "" +#endif + #if DISPLAY_FE == 1 -#define PFE printf("WNC FAILED @ %s\r\n", FATAL_STR) +#define PFE printf(RSTMSG "WNC FAILED @ %s\r\n", FATAL_STR) #else #define PFE #endif #if STOP_ON_FE == 1 -#define FATAL_WNC_ERROR(v) {extern char *_fatal_err_loc;_fatal_err_loc=FATAL_STR;PFE;while(1);} +#define FATAL_WNC_ERROR(v) {extern char *_fatal_err_loc;_fatal_err_loc=FATAL_STR;PFE;MCURESET;while(1);} #else #define FATAL_WNC_ERROR(v) {extern char *_fatal_err_loc;_fatal_err_loc=FATAL_STR;PFE;DORET(v);} #endif - // Because the WncController has intermixed socket & interface functionallity // will need to make the Socket class a friend of the Interface class. This // will allow the Socket class to get to the WNC functions needed for the @@ -90,7 +101,7 @@ /** Initialize the interface (no connection at this point). * \return 0 on success, a negative number on failure */ - static int init(const char* apn=NULL, int debug=0); + static int init(const char* apn=NULL, MODSERIAL * debug=NULL); /** Open an LTE internet data connection @return 0 on success, error code on failure