diff --git a/GPN_BadgeLasertag.ino b/GPN_BadgeLasertag.ino index efd18c69aff79e3e81b6b21290c7903153ef6dc3..13c5dcb5ea57bcb49e8168a7fb1b56dbb6b189e5 100644 --- a/GPN_BadgeLasertag.ino +++ b/GPN_BadgeLasertag.ino @@ -107,7 +107,6 @@ String recv_ir() { pixels.setPixelColor(1, pixels.Color(0, 0, 0)); pixels.show(); } - uint8_t checksum = 'X'; if (stringCompleted) { uint8_t checksum = buf[1]; dataCompleted = true; @@ -127,6 +126,7 @@ String recv_ir() { checksumRec += buf[0] + buf[1] + buf[2] + buf[3]; Serial.printf("->:\n\t0: %c\n\t1: %c\n\t2: %c\n\t3: %c\n", buf[0], buf[1], buf[2], buf[3]); if (buf[0] == '\n' || buf[1] == '\n' || buf[2] == '\n' || buf[3] == '\n') { + stringCompleted = true; Serial.printf("string complete %s\n", received.c_str()); //done = true; //isValidIp(received.substring(1, received.length() - 2)); @@ -135,34 +135,34 @@ String recv_ir() { irrecv.resume(); // Prepare for the next value } delay(0); - ui->dispatchInput(badge.getJoystickState()); //Allow canceling + // } - badge.setGPIO(IR_EN, HIGH); + badge.setGPIO(IR_EN, LOW); return received; } void joinGame() { ui->closeCurrent(); ui->draw(); + #ifdef DEBUG Serial.printf("Join Otter\n"); #endif String irinput = recv_ir(); -#ifdef DEBUG - Serial.printf("-->\n\t%s\n<--", irinput.c_str()); -#endif - String ip; - ip = irinput.substring(1, irinput.length() - 2); - Serial.printf("Received ip: %s", ip.c_str()); - + ip = irinput.substring(1, irinput.length() - 1); + unsigned short firstA = ip.indexOf('a'); + Serial.printf("firstA: %d\n", firstA); + ip = ip.substring(firstA, ip.length()); + Serial.printf("Received ip: >%s<\n", ip.c_str()); client = new GameClient(ui, &badge, player); client->joinGame(ip); #ifdef DEBUG Serial.printf("Join - Ende\n"); #endif + } void loop() { diff --git a/GameClient.cpp b/GameClient.cpp index 3dccb35ee0168869540b8bdcfd195d88bb678ab8..c91e4a3c3dd8ae6d0491714ba09296637ce23c28 100644 --- a/GameClient.cpp +++ b/GameClient.cpp @@ -48,12 +48,28 @@ void GameClient::joinGame(String ip) { badge->setVibrator(true); delay(200); badge->setVibrator(false); + playerList->addMenuItem(new MenuItem(player->getNickname(), []() {})); + + ui->dispatchInput(badge->getJoystickState()); ui->open(playerList); - client->connect(ip.c_str(), SERVER_PORT); + ui->draw(); + + + Serial.printf("Conn data:\n\tip: %s\n\tport: %d\n", ip.c_str(), SERVER_PORT); + + //client->connect(ip.c_str(), SERVER_PORT); + Serial.printf("Trying to conncet!\n"); + if (!client->connect("192.168.42.175", 4803)){ + Serial.printf("Connect failed!\n"); + } + Serial.printf("client->connect\n"); client->print(player->getNickname()); + Serial.printf("client->print nickname\n"); client->flush(); + Serial.printf("client->flush"); + Serial.printf("Receiving"); String recv = client->readStringUntil('\n'); Serial.printf("RECV: %s", recv.c_str()); }