diff options
author | daniel-Jones <daniel@danieljon.es> | 2017-07-06 19:04:48 +0930 |
---|---|---|
committer | daniel-Jones <daniel@danieljon.es> | 2017-07-06 19:04:48 +0930 |
commit | d3624454f67e3afc026d7e16546f5549e67f6102 (patch) | |
tree | e370fc7bd48c58f9d4a523d9eb7c554ebf6b461e /qt/consoleserver/server.cpp | |
parent | 9834782c287b1dc6df59a03e5992911d8fb70a83 (diff) | |
download | RGB-Controller-d3624454f67e3afc026d7e16546f5549e67f6102.tar.gz RGB-Controller-d3624454f67e3afc026d7e16546f5549e67f6102.zip |
Added console based server that allows clients to connect and send commands to the microcontroller, does not require X to use, includes the IRC bot. Also included my beginning works on a c ncurses based client.
Diffstat (limited to 'qt/consoleserver/server.cpp')
-rw-r--r-- | qt/consoleserver/server.cpp | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/qt/consoleserver/server.cpp b/qt/consoleserver/server.cpp new file mode 100644 index 0000000..401ee8d --- /dev/null +++ b/qt/consoleserver/server.cpp @@ -0,0 +1,57 @@ +#include "server.h" + +server::server(QObject *parent) : QObject(parent) +{ + srv = new QTcpServer(); + connect(srv, SIGNAL(newConnection()), this, SLOT(new_connection())); + qDebug() << "server loaded but not started"; +} + +bool server::server_start() +{ + qDebug() << "server started"; + if (srv->listen(QHostAddress::Any, 3001)) + { + qDebug() << "listening on 3001"; + return true; + } + else + { + return false; + } +} + +bool server::server_stop() +{ + srv->close(); + if (srv->isListening()) + return false; + return true; +} + +void server::new_connection() +{ + QTcpSocket *socket; + socket = srv->nextPendingConnection(); + socket->waitForReadyRead(3000); + handle(QString(socket->readAll()).remove(QRegExp("[\\n\\t\\r]"))); + socket->close(); + delete socket; +} + +void server::handle(QString msg) +{ + qDebug() << "received" << msg; + if (msg.contains(";")) + { + QStringList tmp = msg.split(";"); + for (int x = 0; x < tmp.size(); x++) + { + emit sendcmd(tmp.at(x)); + } + } + else + { + emit sendcmd(msg); + } +} |