Erick / Mbed 2 deprecated ICE_BLE_TEST

Dependencies:   NaturalTinyShell_ice libmDot-12Sept mbed-rtos mbed

Fork of ICE by Erick

src/OutputTask/OutputTask.h

Committer:
jmarkel44
Date:
2016-09-19
Revision:
77:43e0a3d9e536
Parent:
74:03ccf04998b5
Child:
115:1558e01d04c6

File content as of revision 77:43e0a3d9e536:

#ifndef OUTPUTTASK_H
#define OUTPUTTASK_H

#include <string>
#include <stdio.h>

void OutputTask(void const *args);
void DisplayOutputs(void);

#define OUTPUT_STR  "output"

typedef enum {
    CONTROL_OFF = 0,
    CONTROL_ON  = 1
} ControlState;


/*****************************************************************************
 * Control class
 * Contains the most pertinent control information to stack onto the output
 * entry
 ****************************************************************************/
class Control
{
private:
    std::string     id;             // control identifier 
    unsigned int    priority;       // control priority 
    ControlState    state;          // state (ON or OFF) 

public:
    // ctor
    Control(std::string id, unsigned int priority, ControlState state) :
        id(id), priority(priority), state(state) {}
    // dtor
    ~Control() {}
    
    // displays a control's pertinents
    void display() {
        printf("[%s | %s | %u]",
               id.c_str(), (state == CONTROL_ON) ? "ON" : "OFF", priority);
    }

    std::string getId() const {
        return id;
    }

    unsigned int getPriority() const {
        return priority;
    }

    ControlState getState(void) const {
        return state;
    }

    void setState(ControlState _state) {
        state = _state;
    }
};


#endif