Code for RFID Robot
Dependencies: DebounceIn HTTPClient ID12RFID SDFileSystem TextLCD WiflyInterface iniparser mbed
Diff: wifiunit.cpp
- Revision:
- 0:9fd64882c5aa
diff -r 000000000000 -r 9fd64882c5aa wifiunit.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/wifiunit.cpp Tue Dec 10 02:17:48 2013 +0000 @@ -0,0 +1,82 @@ +#include "mbed.h" +#include "WiflyInterface.h" +#include "HTTPClient.h" +#include <vector> +#include "SD.h" + +WiflyInterface wifly(p13, p14, p29, p30, "GTother", "GeorgeP@1927", WPA); + +HTTPClient http; +char str[512]; + +void setupWiFi() +{ + printf("trying to connect"); + wifly.init(); + while (!wifly.connect()) wait (0.1); + printf("IP Address is %s\n\r", wifly.getIPAddress()); +} + +vector<robotCommand>* getTagCommands(int tagID) +{ + vector<robotCommand>* commandVector = new vector<robotCommand>(); + printLCD("Translating", "Web Server"); + char url[512]; + char str[512]; + sprintf(url, "http://sabacai.com/index.php?tag=%d", tagID); + printf("url is %s", url); + int ret = http.get(url, str, 512); + if (!ret) { + printf("Tag String Received - read %d characters\n", strlen(str)); + str[strlen(str)-1] = '\0'; // remove the last column + printf("Result: %s\n", str); + } + + char * pch; + printf ("Splitting string \"%s\" into tokens:\n",str); + pch = strtok (str,","); + + int i = 0; + CommandType commandID = None; + + while (pch != NULL) + { + printf ("%s\n",pch); + double magnitude = 0.0; + + if ((i&0x1) == 0) + { + // this is the command type + if (strcmp(pch, "FORWARD") == 0) + commandID = Forward; + else if (strcmp(pch, "REVERSE") == 0) + commandID = Reverse; + else if (strcmp(pch, "LEFT") == 0) + commandID = Left; + else if (strcmp(pch, "RIGHT") == 0) + commandID = Right; + else if (strcmp(pch, "PLAYSOUND") == 0) + commandID = PlaySound; + + printf("command name is %s, id is %d", pch, commandID); + } + else + { + // this is the magnitude + magnitude = atof(pch); + printf("magnitude is %f", magnitude); + } + + // do some stuff here + if (i != 0 && ((i&0x1) == 1)) + { + // add the command to the vector + printf(" now adding %d, %f", commandID, magnitude); + commandVector->push_back(robotCommand(commandID, magnitude)); + } + i+=1; + pch = strtok (NULL, ","); + } + + return commandVector; +} \ No newline at end of file