This commit is contained in:
Jonas Zeunert
2018-06-15 00:16:41 +02:00
4 changed files with 35 additions and 24 deletions

View File

@@ -5,6 +5,25 @@
* Author: Andreas Schneider, Johannes Wendel, Jonas Zeunert, Rafael Vinci, Dr. Franca Rupprecht * Author: Andreas Schneider, Johannes Wendel, Jonas Zeunert, Rafael Vinci, Dr. Franca Rupprecht
*/ */
#include "BlockingQueue.h"
template <typename T>
void BlockingQueue<T>::push(T const& value)
{
std::unique_lock<std::mutex> lock(this->d_mutex);
p_queue.push(value);
this->d_condition.notify_one();
}
template <typename T>
T BlockingQueue<T>::pop()
{
std::unique_lock<std::mutex> lock(this->d_mutex);
this->d_condition.wait(lock, [=]{ return !this->p_queue.empty(); });
T rc = *this->p_queue.end();
this->p_queue.pop();
return rc;
}

View File

@@ -23,21 +23,9 @@ private:
heap::priority_queue<T, heap::stable<true>> p_queue; heap::priority_queue<T, heap::stable<true>> p_queue;
public: public:
void push(T const& value) void push(T const& value);
{
std::unique_lock<std::mutex> lock(this->d_mutex);
p_queue.push(value);
this->d_condition.notify_one();
}
T pop() T pop();
{
std::unique_lock<std::mutex> lock(this->d_mutex);
this->d_condition.wait(lock, [=]{ return !this->p_queue.empty(); });
T rc = *this->p_queue.end();
this->p_queue.pop();
return rc;
}
}; };

View File

@@ -5,6 +5,19 @@
* Author: Andreas Schneider, Johannes Wendel, Jonas Zeunert, Rafael Vinci, Dr. Franca Rupprecht * Author: Andreas Schneider, Johannes Wendel, Jonas Zeunert, Rafael Vinci, Dr. Franca Rupprecht
*/ */
#include "GPIOInterface.h"
#include "../lib/wiringPi/wiringPi.h"
#include "../lib/json/json.hpp"
static void GPIOInterface::write_pin(char address, char data)
{
digitalWrite(address, data);
}
static bool GPIOInterface::read_pin(char address)
{
return digitalRead(address);
}

View File

@@ -16,24 +16,15 @@
#include <fstream> #include <fstream>
#include "config.h" #include "config.h"
#include "../lib/wiringPi/wiringPi.h"
#include "../lib/json/json.hpp"
class GPIOInterface class GPIOInterface
{ {
public: public:
GPIOInterface(); GPIOInterface();
virtual ~GPIOInterface(); virtual ~GPIOInterface();
static void write_pin(char address, char data) static void write_pin(char address, char data);
{
digitalWrite(address, data);
}
static bool read_pin(char address) static bool read_pin(char address)
{
return digitalRead(address);
}
}; };