lib added devicemanager, working on raspberry pi

This commit is contained in:
Simon Stuerz 2013-08-16 03:54:58 +02:00
parent d9014bcb8f
commit f15e495c39
17 changed files with 204 additions and 24 deletions

View File

@ -1,3 +1,3 @@
TEMPLATE = subdirs
SUBDIRS += hive hive_pi
SUBDIRS += hive_client

View File

@ -0,0 +1,53 @@
#include "devicemanager.h"
#include <QDebug>
DeviceManager::DeviceManager(QObject *parent) :
QObject(parent)
{
}
void DeviceManager::saveDeviceValue(QString deviceType, QString deviceName, QString key, QVariant value)
{
QSettings settings("hive");
settings.beginGroup(deviceType);
settings.beginGroup(deviceName);
settings.setValue(key,value);
qDebug() << "safed device value:" << deviceType << "->" << deviceName << "->" << key << ":" << value << ".";
}
void DeviceManager::deleteDeviceValue(QString deviceType, QString deviceName, QString key)
{
QSettings settings("hive");
settings.beginGroup(deviceType);
settings.beginGroup(deviceName);
settings.remove(key);
qDebug() << "delete key of" << deviceName << key;
}
void DeviceManager::deleteDevice(QString deviceType, QString deviceName)
{
QSettings settings("hive");
settings.beginGroup(deviceType);
settings.remove(deviceName);
qDebug() << "delete device" << deviceName;
}
QStringList DeviceManager::getDevices(QString deviceType)
{
QSettings settings("hive");
settings.beginGroup(deviceType);
QStringList devices = settings.childGroups();
return devices;
}
QStringList DeviceManager::getDeviceKeys(QString deviceType, QString deviceName)
{
QSettings settings("hive");
settings.beginGroup(deviceType);
settings.beginGroup(deviceName);
QStringList keys = settings.childKeys();
return keys;
}

View File

@ -0,0 +1,25 @@
#ifndef DEVICEMANAGER_H
#define DEVICEMANAGER_H
#include <QObject>
#include <QSettings>
#include <QStringList>
class DeviceManager : public QObject
{
Q_OBJECT
public:
explicit DeviceManager(QObject *parent = 0);
signals:
public slots:
void saveDeviceValue(QString deviceType, QString deviceName, QString key, QVariant value);
void deleteDeviceValue(QString deviceType, QString deviceName, QString key);
void deleteDevice(QString deviceType, QString deviceName);
QStringList getDevices(QString deviceType);
QStringList getDeviceKeys(QString deviceType, QString deviceName);
};
#endif // DEVICEMANAGER_H

View File

@ -0,0 +1 @@
/home/timon/development/hive/hive/libhive

View File

@ -8,21 +8,24 @@ QT += core network
TARGET = libhive
TEMPLATE = lib
CONFIG += static
DEFINES += LIBHIVE_LIBRARY
SOURCES += libhive.cpp \
server.cpp
server.cpp \
devicemanager.cpp
HEADERS += libhive.h\
libhive_global.h \
server.h
server.h \
devicemanager.h
unix:!symbian {
maemo5 {
target.path = /opt/usr/lib
} else {
target.path = /usr/lib
}
INSTALLS += target
}
#unix:!symbian {
# maemo5 {
# target.path = /opt/usr/lib
# } else {
# target.path = /usr/lib
# }
# INSTALLS += target
#}

View File

@ -14,6 +14,10 @@ Server::Server(QObject *parent) :
}
qDebug() << "----------------------------";
}
bool Server::startServer()
{
// Listen on all Networkinterfaces
foreach(const QHostAddress &address, QNetworkInterface::allAddresses()){
QTcpServer *server = new QTcpServer(this);
@ -26,6 +30,24 @@ Server::Server(QObject *parent) :
delete server;
}
}
if(m_serverList.empty()){
return false;
}
return true;
}
bool Server::stopServer()
{
// Listen on all Networkinterfaces
foreach(QTcpServer *server, m_serverList){
qDebug() << "close server " << server->serverAddress().toString();
server->close();
delete server;
}
if(!m_serverList.empty()){
return false;
}
return true;
}
void Server::incomingConnection()

View File

@ -20,6 +20,8 @@ private:
signals:
public slots:
bool startServer();
bool stopServer();
private slots:
void incomingConnection();

View File

@ -4,8 +4,7 @@
#
#-------------------------------------------------
QT += core network
QT += core
QT -= gui
TARGET = hive

View File

@ -4,5 +4,5 @@
HiveCore::HiveCore(QObject *parent) :
QObject(parent)
{
m_server = new Server(this);
// m_server = new Server(this);
}

View File

@ -2,7 +2,7 @@
#define HIVECORE_H
#include <QObject>
#include "server.h"
//#include "server.h"
class HiveCore : public QObject
{
@ -11,7 +11,7 @@ public:
explicit HiveCore(QObject *parent = 0);
private:
Server *m_server;
// Server *m_server;
signals:

View File

@ -15,17 +15,21 @@ CONFIG -= app_bundle
target.path = /root/bin
INSTALLS += target
TEMPLATE = app
LIBS += -L$$OUT_PWD/../../libhive/ -llibhive
LIBS += -L/home/timon/opt/rasp-pi-rootfs/usr/local/lib -lwiringPi
INCLUDEPATH += /home/timon/opt/rasp-pi-rootfs/usr/local/include
INCLUDEPATH += $$PWD/../../libhive
DEPENDPATH += $$PWD/../../libhive
SOURCES += main.cpp \
hivecore.cpp
hivecore.cpp \
radio/radioreciver.cpp
HEADERS += \
hivecore.h
hivecore.h \
radio/radioreciver.h
LIBS += -L$$OUT_PWD/../../libhive/ -llibhive
INCLUDEPATH += $$PWD/../../libhive
DEPENDPATH += $$PWD/../../libhive

View File

@ -4,4 +4,33 @@ HiveCore::HiveCore(QObject *parent) :
QObject(parent)
{
m_server = new Server(this);
m_server->startServer();
DeviceManager deviceManager;
deviceManager.saveDeviceValue("sensor","light","A-ON",1361);
deviceManager.saveDeviceValue("sensor","light","A-OFF",1364);
deviceManager.saveDeviceValue("sensor","light","B-ON",4433);
deviceManager.saveDeviceValue("sensor","light","B-OFF",4436);
deviceManager.saveDeviceValue("sensor","light","C-ON",5393);
deviceManager.saveDeviceValue("sensor","light","C-OFF",5204);
deviceManager.saveDeviceValue("sensor","light","D-ON",5393);
deviceManager.saveDeviceValue("sensor","light","D-OFF",5396);
deviceManager.saveDeviceValue("sensor","weatherStation","temperature",20);
deviceManager.saveDeviceValue("sensor","weatherStation","humidity",20);
deviceManager.saveDeviceValue("actor","window","open",true);
deviceManager.saveDeviceValue("actor","door","open",false);
qDebug() << "get sensors" << deviceManager.getDevices("sensor");
qDebug() << "get actors" << deviceManager.getDevices("actor");
qDebug() << "get light keys" << deviceManager.getDeviceKeys("sensor","light");
qDebug() << "get weatherStation keys" << deviceManager.getDeviceKeys("sensor","weatherStation");
deviceManager.deleteDeviceValue("sensor","light","C-OFF");
qDebug() << "get light keys" << deviceManager.getDeviceKeys("sensor","light");
deviceManager.deleteDevice("sensor","weatherStation");
qDebug() << "get sensors" << deviceManager.getDevices("sensor");
}

View File

@ -3,6 +3,7 @@
#include <QObject>
#include "server.h"
#include "devicemanager.h"
class HiveCore : public QObject
{

View File

@ -1,8 +1,11 @@
#include <QCoreApplication>
#include <hivecore.h>
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
HiveCore core;
return a.exec();
}

View File

@ -0,0 +1,15 @@
#include "radioreciver.h"
#include "wiringPi.h"
#include <QDebug>
RadioReciver::RadioReciver(QObject *parent) :
QObject(parent)
{
pinMode(2,INPUT);
wiringPiISR(2, INT_EDGE_BOTH, &handleInterrupt);
}
void RadioReciver::handleInterrupt()
{
qDebug() << "interrupt";
}

View File

@ -0,0 +1,21 @@
#ifndef RADIORECIVER_H
#define RADIORECIVER_H
#include <QObject>
class RadioReciver : public QObject
{
Q_OBJECT
public:
explicit RadioReciver(QObject *parent = 0);
private:
static void handleInterrupt();
signals:
public slots:
};
#endif // RADIORECIVER_H

View File

@ -1,3 +1,5 @@
TEMPLATE = subdirs
SUBDIRS += hive hive_pi
CONFIG = ordered
SUBDIRS += hive_pi