From 7fd14320dbe2f9e3d82823513d7508d210a5ed33 Mon Sep 17 00:00:00 2001 From: IMback Date: Fri, 5 Oct 2018 22:23:44 +0200 Subject: [PATCH] fixed serial bugs --- main.cpp | 44 ++++++++++++++++++++++++++++++++------------ 1 file changed, 32 insertions(+), 12 deletions(-) diff --git a/main.cpp b/main.cpp index dc0e7c5..fea5744 100644 --- a/main.cpp +++ b/main.cpp @@ -12,6 +12,8 @@ #include "serial_io.h" #include "Socket.h" +#define VERSION "v0.3" + bool stop = false; void intHandler(int dummy) @@ -112,7 +114,7 @@ void acceptThreadFunction( TCPServerSocket* servSock, std::vector* if(newSock != nullptr) { clientSockets->push_back(newSock); // Wait for a client to connect - clientSockets->back()->send("UVOS serial multiplexer v0.2\n", sizeof("UVOS serial multiplexer v0.2\n")-1); + clientSockets->back()->send("UVOS serial multiplexer " VERSION "\n", sizeof("UVOS serial multiplexer " VERSION "\n")-1); std::cout<<"got client\n"; } std::this_thread::sleep_for(std::chrono::milliseconds(20)); @@ -125,24 +127,34 @@ int main(int argc, char* argv[]) if(parseCmdArgs(argc, argv, &config) != 0) return -1; - std::cout<<"UVOS serial mulitplexer v0.2\n"; + std::cout<<"UVOS serial mulitplexer "< clientSockets; - std::cout<<"opening TCP socket on port "<setBlocking(false); + acceptThread = new std::thread(acceptThreadFunction, servSock, &clientSockets); + } + catch(SocketException &e) + { + std::cerr<<"Could not open port"<send(inBuffer+6, reclen-6); std::cout<cleanUp(); @@ -203,11 +221,13 @@ int main(int argc, char* argv[]) if(i < 0) i=0; } } - std::this_thread::sleep_for(std::chrono::milliseconds(20)); + std::this_thread::sleep_for(std::chrono::milliseconds(100)); } - acceptThread.join(); + acceptThread->join(); + delete acceptThread; for(unsigned int i = 0; i < clientSockets.size(); i++) clientSockets[i]->cleanUp(); - servSock.cleanUp(); + servSock->cleanUp(); + delete servSock; return 0; }