summaryrefslogtreecommitdiffstats
path: root/pid/controller.hpp
blob: 55308436bb41f9ee8cbc61017ecfc050819df394 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#pragma once

#include "ec/pid.hpp"
#include "fan.hpp"

#include <string>

/*
 * Base class for controllers.  Each controller that implements this needs to
 * provide an inputProc, process, and outputProc.
 */
class ZoneInterface;

struct Controller
{
    virtual ~Controller() = default;

    virtual double inputProc(void) = 0;

    virtual void outputProc(double value) = 0;

    virtual void process(void) = 0;

    virtual std::string getID(void) = 0;
};
OpenPOWER on IntegriCloud