Fork with SeeedStudio Xadow GPS v2 enabled
Dependencies: FXOS8700CQ MODSERIAL XadowGPS mbed
Fork of Avnet_ATT_Cellular_IOT by
Diff: wnc_control.cpp
- Revision:
- 74:3e3ee15584e5
- Parent:
- 68:6e311c747045
- Child:
- 75:8cc98a3b9c62
--- a/wnc_control.cpp Thu Aug 11 21:14:32 2016 +0000 +++ b/wnc_control.cpp Sat Aug 13 15:08:11 2016 +0000 @@ -1,5 +1,5 @@ /* =================================================================== -Copyright © 2016, AVNET Inc. +Copyright c 2016, AVNET Inc. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -37,7 +37,8 @@ WNC_OK =0, WNC_CMD_ERR = -1, WNC_NO_RESPONSE = -2, - WNC_CELL_LINK_DOWN = -3 + WNC_CELL_LINK_DOWN = -3, + WNC_EXTERR = -4 }; // Contains result of last call to send_wnc_cmd(..) @@ -156,6 +157,12 @@ { PUTS("Socket Write fail!!!\r\n"); software_init_mdm(); + }else if (WNC_MDM_ERR == WNC_EXTERR) + { + PUTS("Socket Disconnected (broken) !!!\r\n"); + sockclose_mdm(); + sockopen_mdm(); + //software_init_mdm(); } } while (WNC_MDM_ERR != WNC_OK); } @@ -214,7 +221,7 @@ /** * C++ version 0.4 char* style "itoa": - * Written by Lukás Chmela + * Written by Lukas Chmela * Released under GPLv3. */ @@ -353,6 +360,11 @@ if (cmdRes == -2) WNC_MDM_ERR = WNC_NO_RESPONSE; + + if (cmdRes == -3) { + WNC_MDM_ERR = WNC_EXTERR; + pc.printf("[[WNC_MDM_ERR = WNC_EXTERR]] \r\n"); + } if (cmdRes == 0) WNC_MDM_ERR = WNC_OK; @@ -362,7 +374,9 @@ int at_send_wnc_cmd(const char * s, string ** r, int ms_timeout) { - static const char * rsp_lst[] = { "OK", "ERROR", NULL }; + //Eaddy + static const char * rsp_lst[] = { "OK", "ERROR","@EXTERR", "+CME",NULL }; + //static const char * rsp_lst[] = { "OK", "ERROR", NULL }; int len; #ifdef WNC_CMD_DEBUG_ON @@ -402,11 +416,23 @@ PUTS("]\r\n"); #endif #endif - +#if 0 if (res > 0) return -1; else return 0; +#else + //Eaddy added + if (res == 0) { + /* OK */ + return 0; + } else if (res == 2) { + /* @EXTERR */ + pc.printf("@EXTERR and res = %d \r\n", res); + return -3; + } else + return -1; +#endif } else { @@ -541,6 +567,7 @@ string * pRespStr; char num2str[6]; size_t sLen = strlen(s); + int res; if (sLen <= 1500) { string cmd_str("AT@SOCKWRITE=1,"); @@ -560,7 +587,10 @@ cmd_str += num2str; } cmd_str += "\""; - send_wnc_cmd(cmd_str.c_str(), &pRespStr, 120000); + res = send_wnc_cmd(cmd_str.c_str(), &pRespStr, 120000); + + if (res == -3) + PUTS("sockwrite is disconnect \r\n"); } else PUTS("sockwrite Err, string to long\r\n");