int __cdecl main(int argc, char **argv) { CLParser parser(argc, argv, true); thread t_f(ConnectToServer); int* res = NULL; auto func = parser.get_arg("-func"); int arg = stoi(parser.get_arg("-arg")); if (func == "g0") { res = new int(g0(arg)); } else if (func == "g") { res = new int(g(arg)); } else if (func == "f") { res = new int(f(arg)); } if (func == "fLoop") { res = new int(fLoop(arg)); } t_f.join(); if (res != NULL) { if (TCPClient.IsConnected) TCPClient.send_data(to_string(*res) + ";"); else { printf("TCPClient failed to connect. Unable to send data"); } } else { printf("Cmd Args error"); } return 0; }
bool send_commands(int n, tcp_client chat ){ /* Command: * 0 -> forward * 1 -> backward * 2 -> right * 3 -> left * 4 -> stop */ bool invalid = false; bool run = true; int msg; unsigned char key; std::cout << "\n\tNext Command: " << std::endl; key = n; switch(key) { case 'w': std::cout << "\t-> Forward\n" << std::endl; msg = 0; break; case 'o': std::cout << "\t-> Left\n" << std::endl; msg = 1; break; case 'p': std::cout << "\t-> Right\n" << std::endl; msg = 2; break; case 's': std::cout << "\t-> Backward\n" << std::endl; msg = 3; break; case 32: //SPACE std::cout << "\t-> Break\n" << std::endl; msg = 4; break; case '1': std::cout << "\t-> Accelerate (max 25)\n" << std::endl; msg = 5; break; case '2': std::cout << "\t-> Deaccelerate (min 8)\n" << std::endl; msg = 6; break; case 27: //ESC std::cout << "\t-> Shutdown\n" << std::endl; msg = 4; if(!chat.send_data(msg)){run = false;} //std::cout<< "Message recived: " << chat.receive(1)<<std::endl; run = false; break; default: invalid = true; std::cout << "\t-> Invalid key\n" << std::endl; break; } if (run && !invalid){ if(!chat.send_data(msg)){run = false;} //if(!chat.send_data(32)){run = false;} //std::cout<< "Message recived: " << chat.receive(12)<<std::endl; } return run; }
void ConnectToServer() { TCPClient.conn(); }