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: mbed
Fork of ESP8266_MDM by
Revision 3:a608548f63b1, committed 2016-06-10
- Comitter:
- magd4235
- Date:
- Fri Jun 10 08:56:50 2016 +0000
- Parent:
- 2:6c150720937c
- Commit message:
- server test;
Changed in this revision
| main.cpp | Show diff for this revision Revisions of this file |
| server.cpp | Show annotated file Show diff for this revision Revisions of this file |
--- a/main.cpp Wed Jun 08 11:06:45 2016 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,214 +0,0 @@
-#include "mbed.h"
-
-#define DEBUG
-#define INFOMESSAGES
-#define WARNMESSAGES
-#define ERRMESSAGES
-
-#define FUNCNAME "MAIN"
-
-#ifdef NoDEBUG
-#define DBG(x, ...) pc.printf(" ["FUNCNAME" : DBG] "x" <line %d>\r\n", ##__VA_ARGS__,__LINE__);
-#else
-#define DBG(x, ...)
-#endif
-
-#ifdef ERRMESSAGES
-#define ERR(x, ...) pc.printf(" ["FUNCNAME" : ERR] "x"\r\n", ##__VA_ARGS__);
-#else
-#define ERR(x, ...)
-#endif
-
-#ifdef WARNMESSAGES
-#define WARN(x, ...) printf("["FUNCNAME" : WARN] "x"\r\n", ##__VA_ARGS__);
-#else
-#define WARN(x, ...)
-#endif
-
-#ifdef INFOMESSAGES
-#define INFO(x, ...) pc.printf("["FUNCNAME" : INFO] "x"\r\n", ##__VA_ARGS__);
-#else
-#define INFO(x, ...)
-#endif
-
-#define BUFF_SIZE 2048
-RawSerial pc(USBTX, USBRX);
-//RawSerial dev(D1, D0);
-RawSerial dev(p28, p27); //tx,rx
-DigitalOut led1(LED1);
-DigitalOut led4(LED4);
-DigitalOut reset(p26,1);
-volatile int state=0;
-volatile int ready=0;
-
-char ipAddress[20];
-char macAddress[32];
-char *buffer;
-unsigned int bufferPnt=0;
-
-void dev_recv()
-{
- char c;
-
- int count = 0;
- led1 = !led1;
- if(bufferPnt==0) {
- memset(buffer,0,BUFF_SIZE);
- }
- while(dev.readable()) {
- c = (char)dev.getc();
-#ifdef DEBUG
- // pc.putc(c);
-#endif
- buffer[bufferPnt]=c;
- bufferPnt++;
- if (bufferPnt>1024) {
- ready=1;
- }
- if ((c==0x0a)||(c==0x0d)){
- ready=1;
- }else
- if (c==0x0a) {
- if (bufferPnt>1) {
- if (buffer[bufferPnt -2]==0x0d) {
- ready=1;
- break;
- }
- }
- }
- if (!dev.readable()) {
- wait_us(100);
- }
- }
-}
-
-void pc_recv()
-{
- char c;
- led4 = !led4;
- while(pc.readable()) {
- c=(char)pc.getc();
- dev.putc(c);
- pc.putc(c);
-
- }
-}
-
-char * OKResponse(char *test, const char *pattern)
-{
- char *p= strstr(test,pattern);
- if (p==NULL) {
- // DBG("Test=<%s> Patter=<%s> NULL [p=%s]",test,pattern,p);
- return NULL;
- } else {
- // DBG("YAY Test=<%s> Patter=<%s> [p=%s]",test,pattern,p);
- }
- return p;
-}
-int main()
-{
- buffer=(char *)calloc(BUFF_SIZE,1);
- reset=0;
-
- pc.baud(115200);
- dev.baud(115200);
- pc.attach(&pc_recv, Serial::RxIrq);
- dev.attach(&dev_recv, Serial::RxIrq);
- pc.printf("Start up\n\r");
- wait(1.5);
- reset=1;
- char * resp=NULL;
- pc.printf("Here \n\r");
- while(1) {
- if (ready) {
- ready=0;
- bufferPnt=0;
- INFO("[%d]",state);
- switch (state) {
- case 0: {
- resp=OKResponse(buffer,"WIFI GOT IP");
- if (resp!=NULL) {
- wait(1);
- dev.printf("AT\r\n");
- state++;
- }
- break;
- }
- case 1:
- case 2: {
- resp=OKResponse(buffer,"OK");
- if (resp!=NULL) {
- dev.printf("AT\r\n");
- state++;
- }
- break;
- }
- case 3: {
- resp=OKResponse(buffer,"OK");
- if (resp!=NULL) {
- dev.printf("AT+RST\r\n");
- state++;
- }
-
- break;
- }
- case 4: {
- resp=OKResponse(buffer,"WIFI GOT IP");
- if (resp!=NULL) {
- dev.printf("AT+CWMODE=1\r\n");
- state++;
- }
-
- break;
- }
- case 5: {
- resp=OKResponse(buffer,"OK");
- if (resp!=NULL) {
-
- dev.printf("AT+CWJAP=\"CWMWIFI\",\"CWM2016TT\"\r\n");
- state++;
- }
-
- break;
- }
- case 6: {
- resp=OKResponse(buffer,"OK");
- if (resp!=NULL) {
- wait(1);
- dev.printf("AT+CIFSR\r\n");
- state++;
- }
-
- break;
- }
- case 7: {
- resp=OKResponse(buffer,"+CIFSR:STAIP,");
- if (resp!=NULL) {
- char *strt = strtok(buffer,"\"");
- strcpy(ipAddress,strtok(NULL,"\""));
- strtok(NULL,"\"");
- strcpy(macAddress,strtok(NULL,"\""));
- INFO("mac Address = %s", macAddress);
- INFO("IP Address = %s", ipAddress);
- dev.printf("AT+CIPMUX=1\r\n");
- state++;
- }
-
- break;
- }
- case 8: {
- resp=OKResponse(buffer,"OK");
- if (resp!=NULL) {
- INFO("Ready");
- state++;
- }
-
- break;
- }
-
-
- }
- }
- __WFI();
- }
-}
\ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/server.cpp Fri Jun 10 08:56:50 2016 +0000
@@ -0,0 +1,265 @@
+#include "mbed.h"
+
+#define DEBUG
+#define INFOMESSAGES
+#define WARNMESSAGES
+#define ERRMESSAGES
+
+#define FUNCNAME "MAIN"
+
+#ifdef NoDEBUG
+#define DBG(x, ...) pc.printf(" ["FUNCNAME" : DBG] "x" <line %d>\r\n", ##__VA_ARGS__,__LINE__);
+#else
+#define DBG(x, ...)
+#endif
+
+#ifdef ERRMESSAGES
+#define ERR(x, ...) pc.printf(" ["FUNCNAME" : ERR] "x"\r\n", ##__VA_ARGS__);
+#else
+#define ERR(x, ...)
+#endif
+
+#ifdef WARNMESSAGES
+#define WARN(x, ...) printf("["FUNCNAME" : WARN] "x"\r\n", ##__VA_ARGS__);
+#else
+#define WARN(x, ...)
+#endif
+
+#ifdef INFOMESSAGES
+#define INFO(x, ...) printf("["FUNCNAME" : INFO] "x"\r\n", ##__VA_ARGS__);
+#else
+#define INFO(x, ...)
+#endif
+
+#define BUFF_SIZE 2048
+Serial pc(USBTX, USBRX);
+//RawSerial dev(D1, D0);
+Serial dev(p28, p27); //tx,rx
+DigitalOut led1(LED1);
+DigitalOut led4(LED4);
+DigitalOut reset(p26,1);
+volatile int state=0;
+volatile int ready=0;
+
+char ipAddress[20];
+char macAddress[32];
+char *buffer;
+unsigned int bufferPnt=0;
+//char message[32];
+
+void dev_recv()
+{
+ char c;
+
+ int count = 0;
+ led1 = !led1;
+ if(bufferPnt==0) {
+ memset(buffer,0,BUFF_SIZE);
+ }
+ while(dev.readable()) {
+ c = (char)dev.getc();
+#ifdef DEBUG
+ pc.putc(c);
+#endif
+ buffer[bufferPnt]=c;
+ bufferPnt++;
+ if (bufferPnt>1024) {
+ ready=1;
+ }
+ // if ((c==0x0a)||(c==0x0d)) {
+ // ready=1;
+ // } else
+ if (c==0x0a) {
+ if (bufferPnt>1) {
+ if (buffer[bufferPnt -2]==0x0d) {
+ ready=1;
+ break;
+ }
+ }
+ }
+ if (!dev.readable()) {
+ wait_us(10);
+ }
+ }
+}
+
+void pc_recv()
+{
+ char c;
+ led4 = !led4;
+ while(pc.readable()) {
+ c=(char)pc.getc();
+
+ dev.putc(c);
+ if (c=='\r') {
+ dev.putc('\n');
+ }
+ pc.putc(c);
+
+ }
+}
+
+char * OKResponse(char *test, const char *pattern)
+{
+ char *p= strstr(test,pattern);
+ if (p==NULL) {
+ // DBG("Test=<%s> Patter=<%s> NULL [p=%s]",test,pattern,p);
+ return NULL;
+ } else {
+ // DBG("YAY Test=<%s> Patter=<%s> [p=%s]",test,pattern,p);
+ }
+ return p;
+}
+/**
+* Interpret 1 as SCOREBOARD, 2 as SNAKE, 3 as FOOD
+* 2
+*/
+/*void commandReceived(char* buffer){
+ char identifier =buffer[0];
+ if (identifier == 1) {
+ buffer[1] = //GameRunning ?
+ buffer[2] = //StartTime from scoreboard to server
+ buffer[3] = //NowTime from scoreboard to server
+
+ }
+
+ if (identifier == 2) {
+ buffer[1] = //snake's new direction from controllersnake to server
+
+ }
+
+ if (identifier == 3) {
+ buffer[1] = //food's new direction from controllerfood to server
+ buffer[2] = //food's new speed from controllerfood to server
+
+ }
+ */
+int main()
+{
+ buffer=(char *)calloc(BUFF_SIZE,1);
+ reset=0;
+
+ pc.baud(115200);
+ dev.baud(115200);
+ pc.attach(&pc_recv, Serial::RxIrq);
+ dev.attach(&dev_recv, Serial::RxIrq);
+ pc.printf("Start up\n\r");
+ wait(1.5);
+ reset=1;
+ char * resp=NULL;
+ pc.printf("Here \n\r");
+ while(1) {
+ if (ready) {
+ ready=0;
+ bufferPnt=0;
+ INFO("[%d]",state);
+ switch (state) {
+ case 0: {
+ resp=OKResponse(buffer,"WIFI GOT IP");
+ if (resp!=NULL) {
+ wait(1);
+ dev.printf("AT\r\n");
+ state++;
+ }
+ break;
+ }
+ case 1:
+ case 2: {
+ resp=OKResponse(buffer,"OK");
+ if (resp!=NULL) {
+ dev.printf("AT\r\n");
+ state++;
+ }
+ break;
+ }
+ case 3: {
+ resp=OKResponse(buffer,"OK");
+ if (resp!=NULL) {
+ dev.printf("AT+RST\r\n");
+ state++;
+ }
+
+ break;
+ }
+ case 4: {
+ resp=OKResponse(buffer,"WIFI GOT IP");
+ if (resp!=NULL) {
+ dev.printf("AT+CWMODE=1\r\n");
+ state++;
+ }
+
+ break;
+ }
+ case 5: {
+ resp=OKResponse(buffer,"OK");
+ if (resp!=NULL) {
+ dev.printf("AT+CWJAP=\"CWMWIFI\",\"CWM2016TT\"\r\n");
+ state++;
+ }
+
+ break;
+ }
+ case 6: {
+ resp=OKResponse(buffer,"OK");
+ if (resp!=NULL) {
+ wait(10);
+ dev.printf("AT+CIFSR\r\n");
+ state++;
+ }
+
+ break;
+ }
+ case 7: {
+ resp=OKResponse(buffer,"+CIFSR:STAIP,");
+ if (resp!=NULL) {
+ char *strt = strtok(buffer,"\"");
+ strcpy(ipAddress,strtok(NULL,"\""));
+ strtok(NULL,"\"");
+ strcpy(macAddress,strtok(NULL,"\""));
+ INFO("mac Address = %s", macAddress);
+ INFO("IP Address = %s", ipAddress);
+ dev.printf("AT+CIPMUX=1\r\n");
+ state++;
+ }
+
+ break;
+ }
+
+
+ case 8: {
+ resp=OKResponse(buffer,"OK");
+ if (resp!=NULL) {
+ INFO("Starting server");
+ dev.printf("AT+CIPSERVER=1,5050\r\n"); // Set it as a server
+ state++;
+ }
+
+ break;
+ }
+
+ /*case 9: {
+ resp=OKResponse(buffer,"+IPD");
+ if (resp!=NULL) {
+ INFO("Got <%s>",buffer);
+
+ if (buffer[0]==1 && buffer[1]==1){
+ dev.printf("AT+CIPSEND=0,3\r\n");
+ wait(0.2);
+ dev.printf("0\r\n"); // Stop the timer
+ }else{
+
+ // commandReceived(buffer); // Interpret data, line113
+ state=9; // Keep on waiting for data
+ }
+
+ }
+
+ break;
+ }
+ */
+
+ }
+ }
+ //__WFI();
+ }
+}
