added ItemVarHolder
This commit is contained in:
@@ -11,6 +11,7 @@ set(LIB_DIR lib)
|
|||||||
set(DEFAULT_BUILD_TYPE DEBUG)
|
set(DEFAULT_BUILD_TYPE DEBUG)
|
||||||
|
|
||||||
set(CMAKE_CXX_STANDARD 14)
|
set(CMAKE_CXX_STANDARD 14)
|
||||||
|
SET(DBoost_NO_BOOST_CMAKE=ON)
|
||||||
|
|
||||||
IF(NOT_PI)
|
IF(NOT_PI)
|
||||||
add_definitions(-DNOT_PI)
|
add_definitions(-DNOT_PI)
|
||||||
|
|||||||
@@ -35,7 +35,7 @@ public:
|
|||||||
std::map<std::string, std::shared_ptr<items::Lamp>> lamps, std::map<std::string, std::shared_ptr<items::Sound>> sounds,
|
std::map<std::string, std::shared_ptr<items::Lamp>> lamps, std::map<std::string, std::shared_ptr<items::Sound>> sounds,
|
||||||
std::map<std::string, std::shared_ptr<items::Flipper>> flippers, std::map<uint8_t, std::shared_ptr<output::items::Display>> displays);
|
std::map<std::string, std::shared_ptr<items::Flipper>> flippers, std::map<uint8_t, std::shared_ptr<output::items::Display>> displays);
|
||||||
|
|
||||||
~OutputDriver() = default;
|
~OutputDriver() = default;//TODO aufräumen
|
||||||
|
|
||||||
void activate_displays() const;
|
void activate_displays() const;
|
||||||
void deactivate_displays() const;
|
void deactivate_displays() const;
|
||||||
|
|||||||
@@ -9,6 +9,8 @@
|
|||||||
#define _SRC_OUTPUT_ICABINETITEM_H_
|
#define _SRC_OUTPUT_ICABINETITEM_H_
|
||||||
|
|
||||||
#include <string>
|
#include <string>
|
||||||
|
#include <Poco/RefCountedObject.h>
|
||||||
|
#include <Poco/JSON/Object.h>
|
||||||
|
|
||||||
namespace flippR_driver
|
namespace flippR_driver
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -7,7 +7,8 @@ set(SOURCES
|
|||||||
output/OutputRequestHandler.cpp
|
output/OutputRequestHandler.cpp
|
||||||
output/OutputRequestHandlerFactory.cpp
|
output/OutputRequestHandlerFactory.cpp
|
||||||
FlippRServer.cpp
|
FlippRServer.cpp
|
||||||
input/InputSocketHandlerFactory.cpp)
|
input/InputSocketHandlerFactory.cpp
|
||||||
|
output/ItemVarHolder.h)
|
||||||
|
|
||||||
add_executable(${PROJECT_NAME} ${SOURCES})
|
add_executable(${PROJECT_NAME} ${SOURCES})
|
||||||
|
|
||||||
|
|||||||
48
FlippR-Driver/networking/output/ItemVarHolder.h
Normal file
48
FlippR-Driver/networking/output/ItemVarHolder.h
Normal file
@@ -0,0 +1,48 @@
|
|||||||
|
//
|
||||||
|
// Created by johannes on 29.08.19.
|
||||||
|
//
|
||||||
|
|
||||||
|
#ifndef FLIPPR_DRIVER_ITEMVARHOLDER_H
|
||||||
|
#define FLIPPR_DRIVER_ITEMVARHOLDER_H
|
||||||
|
|
||||||
|
#include <Poco/Dynamic/VarHolder.h>
|
||||||
|
#include <memory>
|
||||||
|
|
||||||
|
#include "output/items/Item.h"
|
||||||
|
|
||||||
|
|
||||||
|
template <>
|
||||||
|
class Poco::Dynamic::VarHolderImpl<std::shared_ptr<flippR_driver::output::items::Item>> : public Poco::Dynamic::VarHolder
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
VarHolderImpl(const std::shared_ptr<flippR_driver::output::items::Item> & item) :
|
||||||
|
item(item)
|
||||||
|
{}
|
||||||
|
|
||||||
|
void convert(std::string & val) const override
|
||||||
|
{
|
||||||
|
val = this->item->get_name();
|
||||||
|
}
|
||||||
|
|
||||||
|
VarHolder * clone(Placeholder < VarHolder > * pHolder = 0) const override
|
||||||
|
{
|
||||||
|
return cloneHolder(pHolder, item);
|
||||||
|
}
|
||||||
|
|
||||||
|
const std::type_info & type() const override
|
||||||
|
{
|
||||||
|
return typeid(item);
|
||||||
|
}
|
||||||
|
|
||||||
|
const std::shared_ptr<flippR_driver::output::items::Item> & value() const
|
||||||
|
{
|
||||||
|
return item;
|
||||||
|
}
|
||||||
|
|
||||||
|
private:
|
||||||
|
std::shared_ptr<flippR_driver::output::items::Item> item;
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
#endif //FLIPPR_DRIVER_ITEMVARHOLDER_H
|
||||||
@@ -29,7 +29,6 @@ public:
|
|||||||
~Item() override = default;
|
~Item() override = default;
|
||||||
|
|
||||||
std::string get_name() const override;
|
std::string get_name() const override;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
const std::string name;
|
const std::string name;
|
||||||
|
|
||||||
|
|||||||
@@ -2,13 +2,12 @@ import requests_unixsocket as req
|
|||||||
import socket
|
import socket
|
||||||
|
|
||||||
class Networking:
|
class Networking:
|
||||||
output_session = req.Session()
|
|
||||||
input_socket = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM)
|
|
||||||
server_address = ""
|
|
||||||
|
|
||||||
def __init__(self, output_server_address, input_socket_address):
|
def __init__(self, output_server_address, input_socket_address):
|
||||||
self.server_address = "http+unix://" + output_server_address.replace("/", "%2F")
|
self.server_address = "http+unix://" + output_server_address.replace("/", "%2F")
|
||||||
self.input_socket.connect(input_socket_address)
|
self.input_socket.connect(input_socket_address)
|
||||||
|
self.output_session = req.Session()
|
||||||
|
self.input_socket = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM)
|
||||||
|
self.server_address = ""
|
||||||
print("Connected to " + input_socket_address + " and started server " + self.server_address)
|
print("Connected to " + input_socket_address + " and started server " + self.server_address)
|
||||||
|
|
||||||
def get(self, path):
|
def get(self, path):
|
||||||
@@ -18,10 +17,13 @@ class Networking:
|
|||||||
|
|
||||||
def getSolenoids(self):
|
def getSolenoids(self):
|
||||||
return self.get("/solenoids").json()
|
return self.get("/solenoids").json()
|
||||||
|
|
||||||
def getSounds(self):
|
def getSounds(self):
|
||||||
return self.get("/sounds").json()
|
return self.get("/sounds").json()
|
||||||
|
|
||||||
def getLamps(self):
|
def getLamps(self):
|
||||||
return self.get("/lamps").json()
|
return self.get("/lamps").json()
|
||||||
|
|
||||||
def getDisplays(self):
|
def getDisplays(self):
|
||||||
return self.get("/displays").json()
|
return self.get("/displays").json()
|
||||||
|
|
||||||
@@ -33,8 +35,10 @@ class Networking:
|
|||||||
|
|
||||||
def activateLamp(self, lamp):
|
def activateLamp(self, lamp):
|
||||||
self.get("/lamps/" + lamp + "/activate")
|
self.get("/lamps/" + lamp + "/activate")
|
||||||
|
|
||||||
def deactivateLamp(self, lamp):
|
def deactivateLamp(self, lamp):
|
||||||
self.get("/lamps/" + lamp + "/deactivate")
|
self.get("/lamps/" + lamp + "/deactivate")
|
||||||
|
|
||||||
def lampStatus(self, lamp):
|
def lampStatus(self, lamp):
|
||||||
return self.get("/lamps/" + lamp + "/status").json()
|
return self.get("/lamps/" + lamp + "/status").json()
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user