From fdae19c238de3a66c3aeaca45ce2e96ceda7cbf2 Mon Sep 17 00:00:00 2001 From: Niklas Date: Mon, 11 Jul 2011 16:51:30 +0200 Subject: updated the LogReceiver and LogWriter. we are now able to send and receive Status SubStatus and msg messages. --- workspace/LogReceiver/LogReceiver | Bin 30954 -> 35241 bytes workspace/LogReceiver/LogReceiver.pro | 17 ++-- workspace/LogReceiver/logreceiver.cpp | 29 +++++++ workspace/LogReceiver/logreceiver.ui | 99 ++++++++++++++++++++++-- workspace/LogWriter/LogWriter | Bin 30747 -> 35093 bytes workspace/LogWriter/LogWriter.pro | 17 ++-- workspace/LogWriter/logwriter.cpp | 33 ++++++-- workspace/LogWriter/logwriter.h | 3 + workspace/networkDiscovery/dhcpcd/logger.c | 59 ++++++-------- workspace/networkDiscovery/networkdiscovery.cpp | 8 +- workspace/networkDiscovery/networkdiscovery.h | 3 + 11 files changed, 205 insertions(+), 63 deletions(-) diff --git a/workspace/LogReceiver/LogReceiver b/workspace/LogReceiver/LogReceiver index 16bcf4b..0a4b640 100755 Binary files a/workspace/LogReceiver/LogReceiver and b/workspace/LogReceiver/LogReceiver differ diff --git a/workspace/LogReceiver/LogReceiver.pro b/workspace/LogReceiver/LogReceiver.pro index 3a2d3f9..1be2ccd 100644 --- a/workspace/LogReceiver/LogReceiver.pro +++ b/workspace/LogReceiver/LogReceiver.pro @@ -1,10 +1,11 @@ TEMPLATE = app -TARGET = LogReceiver - -QT += core gui network - -HEADERS += logreceiver.h -SOURCES += main.cpp \ +TARGET = LogReceiver +QT += core \ + gui \ + network +HEADERS += status.h \ + logreceiver.h +SOURCES += main.cpp \ logreceiver.cpp -FORMS += logreceiver.ui -RESOURCES += +FORMS += logreceiver.ui +RESOURCES += diff --git a/workspace/LogReceiver/logreceiver.cpp b/workspace/LogReceiver/logreceiver.cpp index 9bca304..6988463 100644 --- a/workspace/LogReceiver/logreceiver.cpp +++ b/workspace/LogReceiver/logreceiver.cpp @@ -1,11 +1,14 @@ #include #include + #include + #include #include #include "logreceiver.h" #include #include + #include "status.h" LogReceiver::LogReceiver(QWidget *parent) : @@ -61,8 +64,34 @@ LogReceiver::~LogReceiver() { void LogReceiver::handleNewInput() { QByteArray data = clientSocket->readAll(); + char * cdata = new char[data.size() +1]; + qDebug() << data.size(); + qDebug() << strlen(cdata); + strcpy(cdata, data.data()); + qDebug() << strlen(cdata); + qDebug() << cdata; + int st, sst; + char str[40]; + sscanf(cdata, "%d;%d;%s",&st,&sst,str); + + switch (st) { + case STAT_OK: + qDebug() << "received stat_ok"; + break; + case STAT_ERROR: + qDebug() << "received stat_error"; + break; + default: + qDebug() << "undefined status"; + } + qDebug() << st; QString logMsg(data); + + /** + * verarbeite den string + */ + qDebug() << logMsg; statusLabel->setText(logMsg); diff --git a/workspace/LogReceiver/logreceiver.ui b/workspace/LogReceiver/logreceiver.ui index 9143194..500f418 100644 --- a/workspace/LogReceiver/logreceiver.ui +++ b/workspace/LogReceiver/logreceiver.ui @@ -1,7 +1,8 @@ - + + LogReceiverClass - - + + 0 0 @@ -9,11 +10,99 @@ 300 - + LogReceiver + + + + 10 + 10 + 131 + 17 + + + + NetworkDiscovery + + + + + + 30 + 60 + 151 + 17 + + + + verfügbare Interfaces + + + + + + 40 + 190 + 311 + 81 + + + + + + + 10 + 150 + 71 + 17 + + + + StatusLog + + + + + + 10 + 140 + 371 + 16 + + + + Qt::Horizontal + + + + + + 40 + 90 + 67 + 17 + + + + i_Name + + + + + + 230 + 90 + 67 + 17 + + + + status + + - + diff --git a/workspace/LogWriter/LogWriter b/workspace/LogWriter/LogWriter index bfcb726..54d4ab8 100755 Binary files a/workspace/LogWriter/LogWriter and b/workspace/LogWriter/LogWriter differ diff --git a/workspace/LogWriter/LogWriter.pro b/workspace/LogWriter/LogWriter.pro index 112fd84..ba5df47 100644 --- a/workspace/LogWriter/LogWriter.pro +++ b/workspace/LogWriter/LogWriter.pro @@ -1,10 +1,11 @@ TEMPLATE = app -TARGET = LogWriter - -QT += core gui network - -HEADERS += logwriter.h -SOURCES += main.cpp \ +TARGET = LogWriter +QT += core \ + gui \ + network +HEADERS += status.h \ + logwriter.h +SOURCES += main.cpp \ logwriter.cpp -FORMS += logwriter.ui -RESOURCES += +FORMS += logwriter.ui +RESOURCES += diff --git a/workspace/LogWriter/logwriter.cpp b/workspace/LogWriter/logwriter.cpp index 53a4023..94155ed 100644 --- a/workspace/LogWriter/logwriter.cpp +++ b/workspace/LogWriter/logwriter.cpp @@ -9,6 +9,7 @@ #include #include "logwriter.h" +#include "status.h" LogWriter::LogWriter(QWidget *parent) : QDialog(parent) { @@ -86,12 +87,34 @@ void LogWriter::enableWriteButton() { } void LogWriter::writeToLogReceiver() { + writeToLogReceiver(STAT_OK,DISCOVER); +} + +void LogWriter::writeToLogReceiver(int stat, int sub_stat) { + char * st = (char *) malloc(sizeof(int)*4+1); + char * sst = (char *) malloc(sizeof(int)*4+1); + sprintf(st,"%d", stat); + sprintf(sst,"%d",sub_stat); + char * msg = "msg test"; + int msize = strlen(st) + strlen(sst) + strlen(msg) + 3; + char * m = (char *) malloc(msize); + strcpy(m, ""); + strcat(m, st); + strcat(m, ";"); + strcat(m, sst); + strcat(m, ";"); + strcat(m, msg); //char buffer[256]; - char *b = "test"; - qDebug() << strlen(b); - int n = ::write(sockfd,b,strlen(b)); - if (n < 0) - qDebug() <<"ERROR writing to socket"; + //char *b = "test"; + qDebug() << strlen(m); + qDebug() << m; + int n = ::write(sockfd, m, strlen(m)); + if (n < 0) + qDebug() << "ERROR writing to socket"; + + free(st); + free(sst); + free(m); } diff --git a/workspace/LogWriter/logwriter.h b/workspace/LogWriter/logwriter.h index 1646433..a4ddea3 100644 --- a/workspace/LogWriter/logwriter.h +++ b/workspace/LogWriter/logwriter.h @@ -4,6 +4,7 @@ #include #include #include "ui_logwriter.h" +#include "status.h" class QDialogButtonBox; class QLabel; @@ -26,6 +27,8 @@ private slots: void writeToLogReceiver(); private: + // enum STATUS stat, enum SUBSTATUS sub_stat + void writeToLogReceiver(int stat, int sub_stat); Ui::LogWriterClass ui; QLabel *hostLabel; QLineEdit *hostLineEdit; diff --git a/workspace/networkDiscovery/dhcpcd/logger.c b/workspace/networkDiscovery/dhcpcd/logger.c index a68fe65..ec10bb9 100644 --- a/workspace/networkDiscovery/dhcpcd/logger.c +++ b/workspace/networkDiscovery/dhcpcd/logger.c @@ -27,7 +27,7 @@ #define SYSLOG_NAMES -#define COM_CH "./com_ch" +#define COM_CH "/var/tmp/com.socket" #include #include @@ -44,7 +44,7 @@ #include "logger.h" /*sockets for the logger and the qt-reader */ -int s, ns; +int sockfd, ns; static int loglevel = LOG_WARNING; static char logprefix[12] = {0}; @@ -126,46 +126,33 @@ void logger (int level, const char *fmt, ...) va_end (p); } -void initQtLoggerSocket () -{ - /*variables for the communication over sockets with Qt*/ - int fromlen; - struct sockaddr_un soaddr, faddr; - int slen; - - if ((s = socket(AF_UNIX, SOCK_STREAM, 0)) < 0) { - perror("server: socket"); - exit(1); - } - - soaddr.sun_family = AF_UNIX; - strcpy(soaddr.sun_path, COM_CH); - unlink(COM_CH); - slen = strlen(soaddr.sun_path) + sizeof(soaddr.sun_family); - if (bind(s, (struct sockaddr *) &soaddr, slen) < 0) { - perror("server: bind"); - exit(1); - } - - if (listen(s, 5) < 0) { - perror("server: listen"); - exit(1); - } - - if ((ns = accept(s, &faddr, &fromlen)) < 0) { - perror("server: accept"); - exit(1); - } +void initQtLoggerSocket() { + /** + * new code. seems to be right. + */ + struct sockaddr_un serv_addr; + sockfd = socket(AF_UNIX, SOCK_STREAM, 0); + if (sockfd < 0) + fprintf(stdout,"ERROR opening socket"); + serv_addr.sun_family = AF_UNIX; + strcpy(serv_addr.sun_path, "/var/tmp/qt_c_socket_test"); + + if (connect(sockfd, (struct sockaddr *) &serv_addr, sizeof(serv_addr)) < 0) + fprintf(stdout,"ERROR connecting"); } void closeQtLoggerSocket (){ close(s); } -void sendToQt (char *msg) { - if(send(ns,msg, strlen(msg),0) < 0) - { - fprintf(stdout,"logger: failed to send message: %s", msg); +void sendToQt(char *msg) { + if (send(ns, msg, strlen(msg), 0) < 0) { + fprintf(stdout, "logger: failed to send message: %s", msg); } + //char buffer[256]; + char *b = "test"; + int n = write(sockfd, b, strlen(b)); + if (n < 0) + fprintf(stdout, "ERROR writing to socket"); } diff --git a/workspace/networkDiscovery/networkdiscovery.cpp b/workspace/networkDiscovery/networkdiscovery.cpp index cf4f354..e308de4 100644 --- a/workspace/networkDiscovery/networkdiscovery.cpp +++ b/workspace/networkDiscovery/networkdiscovery.cpp @@ -88,9 +88,15 @@ void NetworkDiscovery::listenToLogger() { skt = new QLocalSocket(this); -// connect(socket, SIGNAL(readyRead()), this, ) + connect(skt, SIGNAL(readyRead()), this, SLOT(handleLoggedMessage())); connect(skt, SIGNAL(error(QLocalSocket::LocalSocketError)), this, SLOT(displayError(QLocalSocket::LocalSocketError))); + skt->connectToServer(COM_CH); +} + +void NetworkDiscovery::handleLoggedMessage() +{ + } void NetworkDiscovery::displayError(QLocalSocket::LocalSocketError socketError) diff --git a/workspace/networkDiscovery/networkdiscovery.h b/workspace/networkDiscovery/networkdiscovery.h index 8001bdf..fef0999 100644 --- a/workspace/networkDiscovery/networkdiscovery.h +++ b/workspace/networkDiscovery/networkdiscovery.h @@ -7,6 +7,8 @@ #include #include "ui_networkdiscovery.h" +#define COM_CH "/var/tmp/com.socket" + class NetworkDiscovery : public QWidget { Q_OBJECT @@ -16,6 +18,7 @@ public: ~NetworkDiscovery(); public slots: + void handleLoggedMessage(); void displayError(QLocalSocket::LocalSocketError socketError); private: -- cgit v1.2.3-55-g7522