![](/media/cache/img/default_profile.jpg.50x50_q85.jpg)
Backing up an unused program in case of future need
Diff: at.cpp
- Revision:
- 2:06fa34661f19
- Parent:
- 1:94282484baae
- Child:
- 4:e076884ef8bd
diff -r 94282484baae -r 06fa34661f19 at.cpp --- a/at.cpp Fri Apr 15 09:03:54 2016 +0000 +++ b/at.cpp Fri Apr 22 09:23:57 2016 +0000 @@ -12,8 +12,10 @@ #define WAIT_FOR_ESP_READY 1 #define WAIT_FOR_WIFI_CONNECTED 2 #define WAIT_FOR_WIFI_GOT_IP 3 -#define WAIT_FOR_OK 4 -#define WAIT_FOR_SEND_OK 5 +#define WAIT_FOR_STATUS 4 +#define WAIT_FOR_VERSION 5 +#define WAIT_FOR_OK 6 +#define WAIT_FOR_SEND_OK 7 static int wait_for; static int * pFeedback; @@ -77,7 +79,22 @@ startCommand(pStatus, WAIT_FOR_OK); EspSendStringF("AT+CIOBAUD=%d\r\n", baud); } - +int AtEspStatus; +void AtGetEspStatus(int *pStatus) +{ + AtEspStatus = 0; + startCommand(pStatus, WAIT_FOR_STATUS); + EspSendString("AT+CIPSTATUS\r\n"); +} +char AtEspVersion[20]; +static int versionlinecount; +void AtGetEspVersion(int *pStatus) +{ + AtEspVersion[0] = '\0'; + startCommand(pStatus, WAIT_FOR_VERSION); + EspSendString("AT+GMR\r\n"); + versionlinecount = 0; +} void AtSendData(int id, int length, const void * pdata, int *pStatus) { startCommand(pStatus, WAIT_FOR_SEND_OK); @@ -96,10 +113,11 @@ EspResetAndStop(); WifiStatus = WIFI_STOPPED; } -void AtInit() +int AtInit() { startCommand(NULL, WAIT_FOR_COMMAND); WifiStatus = WIFI_STOPPED; + return 0; } int handleLine() { @@ -136,6 +154,20 @@ case WAIT_FOR_SEND_OK: if (strcmp(EspLine, "SEND OK") == 0) finishAndReset(AT_SUCCESS); return 0; + + //Status command + case WAIT_FOR_STATUS: + if (sscanf(EspLine, "STATUS:%d", &AtEspStatus) == 1) wait_for = WAIT_FOR_OK; + return 0; + + //Version command + case WAIT_FOR_VERSION: + if (++versionlinecount == 3) + { + strcpy(AtEspVersion, EspLine); + wait_for = WAIT_FOR_OK; + } + return 0; //Most commands case WAIT_FOR_OK: