final product

Dependencies:   FRDM_MMA8451Q mbed

Fork of mbed_Pedometer_pressup by Costa

Committer:
muyiq
Date:
Tue Jun 14 14:45:41 2016 +0000
Revision:
0:0cccdf8e396f
Child:
1:bf4ad12efb64
MBED_WIFI_SETUP SEND A MESSAGE

Who changed what in which revision?

UserRevisionLine numberNew contents of line
muyiq 0:0cccdf8e396f 1 #include "mbed.h"
muyiq 0:0cccdf8e396f 2 //#include "TSISensor.h"
muyiq 0:0cccdf8e396f 3 #define DEBUG
muyiq 0:0cccdf8e396f 4 #define INFOMESSAGES
muyiq 0:0cccdf8e396f 5 #define WARNMESSAGES
muyiq 0:0cccdf8e396f 6 #define ERRMESSAGES
muyiq 0:0cccdf8e396f 7
muyiq 0:0cccdf8e396f 8 #define FUNCNAME "MAIN"
muyiq 0:0cccdf8e396f 9
muyiq 0:0cccdf8e396f 10 #ifdef NoDEBUG
muyiq 0:0cccdf8e396f 11 #define DBG(x, ...) pc.printf(" ["FUNCNAME" : DBG] "x" <line %d>\r\n", ##__VA_ARGS__,__LINE__);
muyiq 0:0cccdf8e396f 12 #else
muyiq 0:0cccdf8e396f 13 #define DBG(x, ...)
muyiq 0:0cccdf8e396f 14 #endif
muyiq 0:0cccdf8e396f 15
muyiq 0:0cccdf8e396f 16 #ifdef ERRMESSAGES
muyiq 0:0cccdf8e396f 17 #define ERR(x, ...) pc.printf(" ["FUNCNAME" : ERR] "x"\r\n", ##__VA_ARGS__);
muyiq 0:0cccdf8e396f 18 #else
muyiq 0:0cccdf8e396f 19 #define ERR(x, ...)
muyiq 0:0cccdf8e396f 20 #endif
muyiq 0:0cccdf8e396f 21
muyiq 0:0cccdf8e396f 22 #ifdef WARNMESSAGES
muyiq 0:0cccdf8e396f 23 #define WARN(x, ...) printf("["FUNCNAME" : WARN] "x"\r\n", ##__VA_ARGS__);
muyiq 0:0cccdf8e396f 24 #else
muyiq 0:0cccdf8e396f 25 #define WARN(x, ...)
muyiq 0:0cccdf8e396f 26 #endif
muyiq 0:0cccdf8e396f 27
muyiq 0:0cccdf8e396f 28 #ifdef INFOMESSAGES
muyiq 0:0cccdf8e396f 29 #define INFO(x, ...) pc.printf("["FUNCNAME" : INFO] "x"\r\n", ##__VA_ARGS__);
muyiq 0:0cccdf8e396f 30 #else
muyiq 0:0cccdf8e396f 31 #define INFO(x, ...)
muyiq 0:0cccdf8e396f 32 #endif
muyiq 0:0cccdf8e396f 33
muyiq 0:0cccdf8e396f 34 #define BUFF_SIZE 1024
muyiq 0:0cccdf8e396f 35 // PIN DEFS NOW FOR OLD FIRMWARE VERSION OF THE KL25Z
muyiq 0:0cccdf8e396f 36 Serial pc(USBTX, USBRX);
muyiq 0:0cccdf8e396f 37 //RawSerial dev(D1, D0);
muyiq 0:0cccdf8e396f 38 Serial dev(PTD3,PTD2); //tx,rx
muyiq 0:0cccdf8e396f 39 DigitalOut led1(LED1);
muyiq 0:0cccdf8e396f 40 DigitalOut led4(LED3); // CHANGE TO LED 3
muyiq 0:0cccdf8e396f 41 DigitalOut reset(PTA13,1);
muyiq 0:0cccdf8e396f 42
muyiq 0:0cccdf8e396f 43
muyiq 0:0cccdf8e396f 44 PwmOut led(LED_GREEN);
muyiq 0:0cccdf8e396f 45 // TSISensor tsi;
muyiq 0:0cccdf8e396f 46 volatile int state=0;
muyiq 0:0cccdf8e396f 47 volatile int ready=0;
muyiq 0:0cccdf8e396f 48
muyiq 0:0cccdf8e396f 49 char ipAddress[20];
muyiq 0:0cccdf8e396f 50 char macAddress[32];
muyiq 0:0cccdf8e396f 51 char *buffer;
muyiq 0:0cccdf8e396f 52 unsigned int bufferPnt=0;
muyiq 0:0cccdf8e396f 53
muyiq 0:0cccdf8e396f 54 void dev_recv()
muyiq 0:0cccdf8e396f 55 {
muyiq 0:0cccdf8e396f 56 char c;
muyiq 0:0cccdf8e396f 57
muyiq 0:0cccdf8e396f 58 int count = 0;
muyiq 0:0cccdf8e396f 59 led1 = !led1;
muyiq 0:0cccdf8e396f 60 if(bufferPnt==0) {
muyiq 0:0cccdf8e396f 61 memset(buffer,0,BUFF_SIZE);
muyiq 0:0cccdf8e396f 62 }
muyiq 0:0cccdf8e396f 63 while(dev.readable()) {
muyiq 0:0cccdf8e396f 64 c = (char)dev.getc();
muyiq 0:0cccdf8e396f 65 #ifdef DEBUG
muyiq 0:0cccdf8e396f 66 pc.putc(c);
muyiq 0:0cccdf8e396f 67 #endif
muyiq 0:0cccdf8e396f 68 buffer[bufferPnt]=c;
muyiq 0:0cccdf8e396f 69 bufferPnt++;
muyiq 0:0cccdf8e396f 70 if (bufferPnt>1000) {
muyiq 0:0cccdf8e396f 71 ready=1;
muyiq 0:0cccdf8e396f 72 }
muyiq 0:0cccdf8e396f 73 // if ((c==0x0a)||(c==0x0d)){
muyiq 0:0cccdf8e396f 74 // ready=1;
muyiq 0:0cccdf8e396f 75 // }else
muyiq 0:0cccdf8e396f 76 if (c==0x0a) {
muyiq 0:0cccdf8e396f 77 if (bufferPnt>1) {
muyiq 0:0cccdf8e396f 78 if (buffer[bufferPnt -2]==0x0d) {
muyiq 0:0cccdf8e396f 79 ready=1;
muyiq 0:0cccdf8e396f 80 break;
muyiq 0:0cccdf8e396f 81 }
muyiq 0:0cccdf8e396f 82 }
muyiq 0:0cccdf8e396f 83 }
muyiq 0:0cccdf8e396f 84 if (!dev.readable()) {
muyiq 0:0cccdf8e396f 85 wait_us(10);
muyiq 0:0cccdf8e396f 86 }
muyiq 0:0cccdf8e396f 87 }
muyiq 0:0cccdf8e396f 88 }
muyiq 0:0cccdf8e396f 89
muyiq 0:0cccdf8e396f 90 void pc_recv()
muyiq 0:0cccdf8e396f 91 {
muyiq 0:0cccdf8e396f 92 char c;
muyiq 0:0cccdf8e396f 93 led4 = !led4;
muyiq 0:0cccdf8e396f 94 while(pc.readable()) {
muyiq 0:0cccdf8e396f 95 c=(char)pc.getc();
muyiq 0:0cccdf8e396f 96 dev.putc(c);
muyiq 0:0cccdf8e396f 97 pc.putc(c);
muyiq 0:0cccdf8e396f 98 if(c==13) {
muyiq 0:0cccdf8e396f 99 dev.putc(10);
muyiq 0:0cccdf8e396f 100 pc.putc(10);
muyiq 0:0cccdf8e396f 101 }
muyiq 0:0cccdf8e396f 102
muyiq 0:0cccdf8e396f 103 }
muyiq 0:0cccdf8e396f 104 }
muyiq 0:0cccdf8e396f 105
muyiq 0:0cccdf8e396f 106 char * OKResponse(char *test, const char *pattern)
muyiq 0:0cccdf8e396f 107 {
muyiq 0:0cccdf8e396f 108 char *p= strstr(test,pattern);
muyiq 0:0cccdf8e396f 109 if (p==NULL) {
muyiq 0:0cccdf8e396f 110 // DBG("Test=<%s> Patter=<%s> NULL [p=%s]",test,pattern,p);
muyiq 0:0cccdf8e396f 111 return NULL;
muyiq 0:0cccdf8e396f 112 } else {
muyiq 0:0cccdf8e396f 113 // DBG("YAY Test=<%s> Patter=<%s> [p=%s]",test,pattern,p);
muyiq 0:0cccdf8e396f 114 }
muyiq 0:0cccdf8e396f 115 return p;
muyiq 0:0cccdf8e396f 116 }
muyiq 0:0cccdf8e396f 117 int main()
muyiq 0:0cccdf8e396f 118 {
muyiq 0:0cccdf8e396f 119 float touch;
muyiq 0:0cccdf8e396f 120 buffer=(char *)calloc(BUFF_SIZE,1);
muyiq 0:0cccdf8e396f 121 reset=0;
muyiq 0:0cccdf8e396f 122 int counter=0;
muyiq 0:0cccdf8e396f 123 pc.baud(115200);
muyiq 0:0cccdf8e396f 124 dev.baud(115200);
muyiq 0:0cccdf8e396f 125 pc.attach(&pc_recv, Serial::RxIrq);
muyiq 0:0cccdf8e396f 126 dev.attach(&dev_recv, Serial::RxIrq);
muyiq 0:0cccdf8e396f 127 pc.printf("Start up\n\r");
muyiq 0:0cccdf8e396f 128 wait(1.5);
muyiq 0:0cccdf8e396f 129 reset=1;
muyiq 0:0cccdf8e396f 130 char * resp=NULL;
muyiq 0:0cccdf8e396f 131 pc.printf("Here \n\r");
muyiq 0:0cccdf8e396f 132 while(1) {
muyiq 0:0cccdf8e396f 133 if (ready) {
muyiq 0:0cccdf8e396f 134 ready=0;
muyiq 0:0cccdf8e396f 135 bufferPnt=0;
muyiq 0:0cccdf8e396f 136 INFO("[%d],##%s##",state,buffer);
muyiq 0:0cccdf8e396f 137 switch (state) {
muyiq 0:0cccdf8e396f 138 case 0: {
muyiq 0:0cccdf8e396f 139 resp=OKResponse(buffer,"WIFI GOT IP");
muyiq 0:0cccdf8e396f 140 if (resp!=NULL) {
muyiq 0:0cccdf8e396f 141 wait(1);
muyiq 0:0cccdf8e396f 142 dev.printf("AT\r\n");
muyiq 0:0cccdf8e396f 143 state++;
muyiq 0:0cccdf8e396f 144 }
muyiq 0:0cccdf8e396f 145 break;
muyiq 0:0cccdf8e396f 146 }
muyiq 0:0cccdf8e396f 147 case 1:
muyiq 0:0cccdf8e396f 148 case 2: {
muyiq 0:0cccdf8e396f 149 resp=OKResponse(buffer,"OK");
muyiq 0:0cccdf8e396f 150 if (resp!=NULL) {
muyiq 0:0cccdf8e396f 151 dev.printf("AT\r\n");
muyiq 0:0cccdf8e396f 152 state++;
muyiq 0:0cccdf8e396f 153 }
muyiq 0:0cccdf8e396f 154 break;
muyiq 0:0cccdf8e396f 155 }
muyiq 0:0cccdf8e396f 156 case 3: {
muyiq 0:0cccdf8e396f 157 resp=OKResponse(buffer,"OK");
muyiq 0:0cccdf8e396f 158 if (resp!=NULL) {
muyiq 0:0cccdf8e396f 159 dev.printf("AT+RST\r\n");
muyiq 0:0cccdf8e396f 160 state++;
muyiq 0:0cccdf8e396f 161 }
muyiq 0:0cccdf8e396f 162
muyiq 0:0cccdf8e396f 163 break;
muyiq 0:0cccdf8e396f 164 }
muyiq 0:0cccdf8e396f 165 case 4: {
muyiq 0:0cccdf8e396f 166 resp=OKResponse(buffer,"WIFI GOT IP");
muyiq 0:0cccdf8e396f 167 if (resp!=NULL) {
muyiq 0:0cccdf8e396f 168 dev.printf("AT+CWMODE=1\r\n");
muyiq 0:0cccdf8e396f 169 state++;
muyiq 0:0cccdf8e396f 170 }
muyiq 0:0cccdf8e396f 171
muyiq 0:0cccdf8e396f 172 break;
muyiq 0:0cccdf8e396f 173 }
muyiq 0:0cccdf8e396f 174 case 5: {
muyiq 0:0cccdf8e396f 175 resp=OKResponse(buffer,"OK");
muyiq 0:0cccdf8e396f 176 if (resp!=NULL) {
muyiq 0:0cccdf8e396f 177
muyiq 0:0cccdf8e396f 178 dev.printf("AT+CWJAP=\"CWMWIFI\",\"CWM2016TT\"\r\n");
muyiq 0:0cccdf8e396f 179 state++;
muyiq 0:0cccdf8e396f 180 }
muyiq 0:0cccdf8e396f 181
muyiq 0:0cccdf8e396f 182 break;
muyiq 0:0cccdf8e396f 183 }
muyiq 0:0cccdf8e396f 184 case 6: {
muyiq 0:0cccdf8e396f 185 resp=OKResponse(buffer,"OK");
muyiq 0:0cccdf8e396f 186 if (resp!=NULL) {
muyiq 0:0cccdf8e396f 187 wait(1);
muyiq 0:0cccdf8e396f 188 dev.printf("AT+CIFSR\r\n");
muyiq 0:0cccdf8e396f 189 state++;
muyiq 0:0cccdf8e396f 190 }
muyiq 0:0cccdf8e396f 191
muyiq 0:0cccdf8e396f 192 break;
muyiq 0:0cccdf8e396f 193 }
muyiq 0:0cccdf8e396f 194 case 7: {
muyiq 0:0cccdf8e396f 195 resp=OKResponse(buffer,"+CIFSR:STAIP,");
muyiq 0:0cccdf8e396f 196 if (resp!=NULL) {
muyiq 0:0cccdf8e396f 197 char *strt = strtok(buffer,"\"");
muyiq 0:0cccdf8e396f 198 strcpy(ipAddress,strtok(NULL,"\""));
muyiq 0:0cccdf8e396f 199 strtok(NULL,"\"");
muyiq 0:0cccdf8e396f 200 strcpy(macAddress,strtok(NULL,"\""));
muyiq 0:0cccdf8e396f 201 INFO("mac Address = %s", macAddress);
muyiq 0:0cccdf8e396f 202 INFO("IP Address = %s", ipAddress);
muyiq 0:0cccdf8e396f 203 dev.printf("AT+CIPMUX=1\r\n");
muyiq 0:0cccdf8e396f 204 state++;
muyiq 0:0cccdf8e396f 205 }
muyiq 0:0cccdf8e396f 206
muyiq 0:0cccdf8e396f 207 break;
muyiq 0:0cccdf8e396f 208 }
muyiq 0:0cccdf8e396f 209 case 8: {
muyiq 0:0cccdf8e396f 210 resp=OKResponse(buffer,"OK");
muyiq 0:0cccdf8e396f 211 if (resp!=NULL) {
muyiq 0:0cccdf8e396f 212 INFO("Ready");
muyiq 0:0cccdf8e396f 213 dev.printf("AT+CIPSTART=4,\"TCP\",\"192.168.1.11\",8080\r\n");
muyiq 0:0cccdf8e396f 214 state++;
muyiq 0:0cccdf8e396f 215 }
muyiq 0:0cccdf8e396f 216
muyiq 0:0cccdf8e396f 217 break;
muyiq 0:0cccdf8e396f 218 }
muyiq 0:0cccdf8e396f 219 case 9: {
muyiq 0:0cccdf8e396f 220 resp=OKResponse(buffer,"OK");
muyiq 0:0cccdf8e396f 221 if (resp!=NULL) {
muyiq 0:0cccdf8e396f 222 INFO("Ready");
muyiq 0:0cccdf8e396f 223 state++;
muyiq 0:0cccdf8e396f 224 dev.printf("AT+CIPSEND=4,10\r\n");
muyiq 0:0cccdf8e396f 225 }
muyiq 0:0cccdf8e396f 226
muyiq 0:0cccdf8e396f 227 break;
muyiq 0:0cccdf8e396f 228 }
muyiq 0:0cccdf8e396f 229 case 10: {
muyiq 0:0cccdf8e396f 230 resp=OKResponse(buffer,">");
muyiq 0:0cccdf8e396f 231 if (resp!=NULL) {
muyiq 0:0cccdf8e396f 232 INFO("SENDING");
muyiq 0:0cccdf8e396f 233 state++;
muyiq 0:0cccdf8e396f 234 // touch=tsi.readPercentage();
muyiq 0:0cccdf8e396f 235 // dev.printf("TSI=%1.2f\n\r",touch);
muyiq 0:0cccdf8e396f 236 pc.printf("AAAAAAAAAA");
muyiq 0:0cccdf8e396f 237 //INFO("sensor=%1.2f",float)tsi.readPercentage());
muyiq 0:0cccdf8e396f 238 }
muyiq 0:0cccdf8e396f 239 case 11: {
muyiq 0:0cccdf8e396f 240 resp=OKResponse(buffer,"SEND OK");
muyiq 0:0cccdf8e396f 241 if (resp!=NULL) {
muyiq 0:0cccdf8e396f 242 INFO("SEND OK");
muyiq 0:0cccdf8e396f 243 state=9;
muyiq 0:0cccdf8e396f 244 //wait(2);
muyiq 0:0cccdf8e396f 245 }
muyiq 0:0cccdf8e396f 246 wait(1);
muyiq 0:0cccdf8e396f 247 state=9;
muyiq 0:0cccdf8e396f 248 }
muyiq 0:0cccdf8e396f 249
muyiq 0:0cccdf8e396f 250 break;
muyiq 0:0cccdf8e396f 251 }
muyiq 0:0cccdf8e396f 252
muyiq 0:0cccdf8e396f 253
muyiq 0:0cccdf8e396f 254 }
muyiq 0:0cccdf8e396f 255 }
muyiq 0:0cccdf8e396f 256 //__WFI(); // DELETED AS IT KILLS THE KL25 RESPONSIVITY
muyiq 0:0cccdf8e396f 257 }
muyiq 0:0cccdf8e396f 258 //}