Play battleship against another mbed over an ethernet internet connection

Dependencies:   4DGL-uLCD-SE EthernetInterface mbed-rtos mbed

Fork of Working_Get_Example_Ethernet by Ryan Quinn

Committer:
rquinn7
Date:
Mon Dec 07 21:27:52 2015 +0000
Revision:
16:0a1035af04b4
Parent:
15:7a9850866be9
Child:
17:46186f7da7eb
Added comments for what to do next

Who changed what in which revision?

UserRevisionLine numberNew contents of line
donatien 0:bb128f0e952f 1 #include "mbed.h"
donatien 0:bb128f0e952f 2 #include "EthernetInterface.h"
donatien 0:bb128f0e952f 3
rquinn7 15:7a9850866be9 4 Serial pc(USBTX,USBRX);
rquinn7 15:7a9850866be9 5
rquinn7 15:7a9850866be9 6 extern "C" void mbed_mac_address(char * mac) {
rquinn7 15:7a9850866be9 7
rquinn7 15:7a9850866be9 8 // define your own MAC Address ba:d7:05:47:1f:c6
rquinn7 15:7a9850866be9 9 mac[0] = 0xba;
rquinn7 15:7a9850866be9 10 mac[1] = 0xd7;
rquinn7 15:7a9850866be9 11 mac[2] = 0x05;
rquinn7 15:7a9850866be9 12 mac[3] = 0x47;
rquinn7 15:7a9850866be9 13 mac[4] = 0x1f;
rquinn7 15:7a9850866be9 14 mac[5] = 0xc6;
rquinn7 15:7a9850866be9 15
rquinn7 15:7a9850866be9 16 };
rquinn7 15:7a9850866be9 17
emilmont 7:65188f4a8c25 18 int main() {
rquinn7 15:7a9850866be9 19 pc.baud(9600);
rquinn7 15:7a9850866be9 20 pc.printf("Running\n");
donatien 0:bb128f0e952f 21 EthernetInterface eth;
donatien 0:bb128f0e952f 22 eth.init(); //Use DHCP
rquinn7 15:7a9850866be9 23 wait(15);
donatien 0:bb128f0e952f 24 eth.connect();
rquinn7 15:7a9850866be9 25 wait(15);
rquinn7 15:7a9850866be9 26 pc.printf("MAC is %s\n", eth.getMACAddress());
rquinn7 15:7a9850866be9 27 pc.printf("IP Address is %s\n", eth.getIPAddress());
donatien 0:bb128f0e952f 28
emilmont 7:65188f4a8c25 29 TCPSocketConnection sock;
rquinn7 15:7a9850866be9 30 sock.connect("192.184.82.3", 5000);
donatien 0:bb128f0e952f 31
rquinn7 15:7a9850866be9 32 char http_cmd[300] = "GET /create_board?playerNum=1&gameNum=144&board=1111000000000000000000000000000000000000000000000000000000000000 HTTP/1.0\n\n";
emilmont 11:59dcefdda506 33 sock.send_all(http_cmd, sizeof(http_cmd)-1);
emilmont 7:65188f4a8c25 34
rquinn7 16:0a1035af04b4 35 //Instead of printing here, do what you did before to convert the string, and just append buffer to a string (below the break),
rquinn7 16:0a1035af04b4 36 // replacing pc.printf
rquinn7 16:0a1035af04b4 37 //Then we can do string find to snipe the values we want (have to do math to grab the right amount)
rquinn7 15:7a9850866be9 38 char buffer[600];
donatien 0:bb128f0e952f 39 int ret;
emilmont 7:65188f4a8c25 40 while (true) {
emilmont 9:4757a976148d 41 ret = sock.receive(buffer, sizeof(buffer)-1);
emilmont 7:65188f4a8c25 42 if (ret <= 0)
emilmont 7:65188f4a8c25 43 break;
emilmont 9:4757a976148d 44 buffer[ret] = '\0';
rquinn7 15:7a9850866be9 45 pc.printf("Received %d chars from server:\n%s\n", ret, buffer);
emilmont 7:65188f4a8c25 46 }
donatien 0:bb128f0e952f 47
emilmont 7:65188f4a8c25 48 sock.close();
rquinn7 15:7a9850866be9 49 wait(0.2);
rquinn7 15:7a9850866be9 50 sock.connect("192.184.82.3", 5000);
rquinn7 15:7a9850866be9 51 wait(0.2);
rquinn7 15:7a9850866be9 52 strcpy(http_cmd, "GET /create_board?playerNum=2&gameNum=144&board=1111000000000000000000000000000000000000000000000000000000000000 HTTP/1.0\n\n");
rquinn7 15:7a9850866be9 53 pc.printf("Command is %s", http_cmd);
rquinn7 15:7a9850866be9 54 sock.send_all(http_cmd, sizeof(http_cmd)-1);
donatien 0:bb128f0e952f 55
rquinn7 15:7a9850866be9 56 while (true) {
rquinn7 15:7a9850866be9 57 ret = sock.receive(buffer, sizeof(buffer)-1);
rquinn7 15:7a9850866be9 58 if (ret <= 0)
rquinn7 15:7a9850866be9 59 break;
rquinn7 15:7a9850866be9 60 buffer[ret] = '\0';
rquinn7 15:7a9850866be9 61 pc.printf("Received %d chars from server:\n%s\n", ret, buffer);
rquinn7 15:7a9850866be9 62 }
rquinn7 15:7a9850866be9 63
rquinn7 15:7a9850866be9 64 sock.close();
rquinn7 15:7a9850866be9 65 wait(0.2);
rquinn7 15:7a9850866be9 66 sock.connect("192.184.82.3", 5000);
rquinn7 15:7a9850866be9 67 wait(0.2);
rquinn7 15:7a9850866be9 68 strcpy(http_cmd, "GET /polling?gameNum=144&playerNum=1 HTTP/1.0\n\n");
rquinn7 15:7a9850866be9 69 pc.printf("Command is %s", http_cmd);
rquinn7 15:7a9850866be9 70 sock.send_all(http_cmd, sizeof(http_cmd)-1);
rquinn7 15:7a9850866be9 71
rquinn7 15:7a9850866be9 72 while (true) {
rquinn7 15:7a9850866be9 73 ret = sock.receive(buffer, sizeof(buffer)-1);
rquinn7 15:7a9850866be9 74 if (ret <= 0)
rquinn7 15:7a9850866be9 75 break;
rquinn7 15:7a9850866be9 76 buffer[ret] = '\0';
rquinn7 15:7a9850866be9 77 pc.printf("Received %d chars from server:\n%s\n", ret, buffer);
rquinn7 15:7a9850866be9 78 }
rquinn7 15:7a9850866be9 79
rquinn7 15:7a9850866be9 80 sock.close();
rquinn7 15:7a9850866be9 81 wait(0.2);
rquinn7 15:7a9850866be9 82 sock.connect("192.184.82.3", 5000);
rquinn7 15:7a9850866be9 83 wait(0.2);
rquinn7 15:7a9850866be9 84 strcpy(http_cmd, "GET /fire?playerNum=1&gameNum=144&x=1&y=0 HTTP/1.0\n\n");
rquinn7 15:7a9850866be9 85 pc.printf("Command is %s", http_cmd);
rquinn7 15:7a9850866be9 86 sock.send_all(http_cmd, sizeof(http_cmd)-1);
rquinn7 15:7a9850866be9 87
rquinn7 15:7a9850866be9 88 while (true) {
rquinn7 15:7a9850866be9 89 ret = sock.receive(buffer, sizeof(buffer)-1);
rquinn7 15:7a9850866be9 90 if (ret <= 0)
rquinn7 15:7a9850866be9 91 break;
rquinn7 15:7a9850866be9 92 buffer[ret] = '\0';
rquinn7 15:7a9850866be9 93 pc.printf("Received %d chars from server:\n%s\n", ret, buffer);
rquinn7 15:7a9850866be9 94 }
rquinn7 15:7a9850866be9 95
rquinn7 15:7a9850866be9 96 sock.close();
emilmont 7:65188f4a8c25 97 eth.disconnect();
donatien 5:01f6c3e112af 98
emilmont 9:4757a976148d 99 while(1) {}
donatien 0:bb128f0e952f 100 }