Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: FXOS8700CQ MODSERIAL 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");
