multiplayer pong game for LPC 1768

Dependencies:   mbed MbedJSONValue mbed-rtos Adafruit_ST7735 Adafruit_GFX EthernetInterface DebouncedInterrupt

Revision:
29:4708bfb863cb
Parent:
28:a26a43cdaea8
Child:
30:59e9a5409e65
--- a/main.cpp	Mon Nov 23 01:26:24 2020 +0000
+++ b/main.cpp	Sat Nov 28 01:05:42 2020 +0000
@@ -1,11 +1,9 @@
 
 #include "mbed.h"
-#include "EthernetInterface.h"
 #include "network.h"
 #include "gamestate.h"
 #include "graphics.h" 
 #include "DebouncedInterrupt.h"
-#include "MbedJSONValue.h"
 
 #define DEBOUNCE 25
 
@@ -17,7 +15,6 @@
 UDPSocket sock; 
 Endpoint nist; 
 
-volatile int count = 0;
 volatile int sendFlag = 0; 
 volatile int moveData = 0;
 volatile int menuPress = 0; 
@@ -51,7 +48,11 @@
     MbedJSONValue serverRequest; 
     
     char connectionRequest[] = "{\"type\": \"connected\"}";
-    char readTo[256]; 
+    char tmp_buffer[256]; 
+    
+    string serverRequestContent = ""; 
+    int requestLength = 0; 
+    char *serverRequestPayload = NULL; 
     
     gfx->renderLaunchScreen(); 
     
@@ -60,7 +61,7 @@
             GameState *gs = new GameState();
             
             // request an open lobby from the server 
-            sock.sendTo(nist, connectionRequest, sizeof(connectionRequest) - 1); 
+            sock.sendTo(nist, connectionRequest, strlen(connectionRequest)); 
                         
             // change ISRs to game controls 
             leftButton.attach(&pressLeftGame, IRQ_RISE, DEBOUNCE);
@@ -74,36 +75,37 @@
                     serverRequest["player"] = gs->getLocalPlayerNum(); 
                     serverRequest["delta"] = (int)moveData; 
                     
-                    string requestContent = serverRequest.serialize(); 
-                    int len = requestContent.size(); 
-                    char *toSend = (char *)requestContent.c_str(); 
+                    serverRequestContent = serverRequest.serialize(); 
+                    requestLength = serverRequestContent.size(); 
+                    serverRequestPayload = (char *)serverRequestContent.c_str(); 
                     sendFlag = 0; 
                     moveData = 0; 
-                    sock.sendTo(nist, toSend, len);
+                    sock.sendTo(nist, serverRequestPayload, requestLength);
                 }
-                int bytesRead = sock.receiveFrom(nist, readTo, sizeof(readTo));
-                readTo[bytesRead] = 0; 
+                int bytesRead = sock.receiveFrom(nist, tmp_buffer, sizeof(tmp_buffer));
+                tmp_buffer[bytesRead] = 0; 
                 if (bytesRead > 0) {
-                    parse(serverResponse, readTo); 
+                    parse(serverResponse, tmp_buffer); 
                     gs->updateAndRender(&serverResponse, gfx);
                 } 
                 wait(.1);
             }
-            MbedJSONValue dcReq; 
-            dcReq["hash"] = "jaredyeagersflipflop"; 
-            dcReq["type"] = "disconnect"; 
+            MbedJSONValue disconnectRequest; 
+            disconnectRequest["hash"] = "jaredyeagersflipflop"; 
+            disconnectRequest["type"] = "disconnect"; 
             
-            string dcReqContent = dcReq.serialize(); 
-            int len = dcReqContent.size(); 
-            char *dcPayload = (char *)dcReqContent.c_str(); 
+            string disconnectRequestContent = disconnectRequest.serialize(); 
+            int len = disconnectRequestContent.size(); 
+            char *disconnectRequestPayload = (char *)disconnectRequestContent.c_str(); 
             
-            sock.sendTo(nist, dcPayload, len);  
-            gfx->renderGameOver(gs); 
+            sock.sendTo(nist, disconnectRequestPayload, len);  
+            gfx->renderGameOver(gs);
+            
+            // reset the game  
             leftButton.attach(&pressButtonMenu, IRQ_RISE, DEBOUNCE);
             middleButton.attach(&pressButtonMenu, IRQ_RISE, DEBOUNCE);
             rightButton.attach(&pressButtonMenu, IRQ_RISE, DEBOUNCE);
             
-            // reset the game 
             menuPress = 0; 
             delete gs; 
         }