diff --git a/TCPServer.cpp b/TCPServer.cpp index fc66f53..04e088c 100644 --- a/TCPServer.cpp +++ b/TCPServer.cpp @@ -174,12 +174,13 @@ void TCPServer::handleMessage(const std::string& message, int clientSocket) } else if (args[0] == "1") { int speed; + if (value < 0) { - speed = static_cast((value * (70 + 310) / 310) - 70); + speed = static_cast((value * (70 + 370) / 32767) - 370); // Maps [-32767, 0] to [-370, -70] } else if (value == 0) { - speed = 0; + speed = 0; // Maps 0 to 0 } else { - speed = static_cast((value * (70 + 310) / 310) + 70); + speed = static_cast((value * (70 + 310) / 32768) + 70); // Maps [0, 32768] to [70, 310] } if (!handleEmergecnyFlag) {