Erick / Mbed 2 deprecated ICE-F412

Dependencies:   mbed-rtos mbed

ICE-Application/src/ConfigurationHandler/ConfigurationHandler.h

Committer:
jmarkel44
Date:
2017-01-24
Revision:
0:61364762ee0e

File content as of revision 0:61364762ee0e:

/******************************************************************************
 * 
 * File:                ConfigurationHandler.h
 * Desciption:          interface file for the ICE Configuration Handler
 *
 *****************************************************************************/
#ifndef CONFIGURATIONHANDLER_H
#define CONFIGURATIONHANDLER_H

#include "./Controls/SetpointControl.h"
#include "./Controls/TimerControl.h"
#include "./Controls/ManualControl.h"
#include "./Controls/CompositeControl.h"
#include "./Controls/PIDControl.h"
#include "./Controls/FailsafeControl.h"
#include "./Controls/SensorErrorControl.h"
#include "./Controls/SequenceControl.h"
#include "./Algorithms/CompositeAlgorithm.h"
#include <map>

// file naming prefix conventions
#define CONTROL_SP_STR          "control_sp_"
#define CONTROL_TM_STR          "control_tm_"
#define CONTROL_MN_STR          "control_mn_"
#define CONTROL_COMP_STR        "control_comp_"
#define CONTROL_CA_STR          "control_ca_"
#define CONTROL_FS_STR          "control_fs_"
#define CONTROL_SE_STR          "control_se_"
#define CONTROL_PID_STR         "control_pid_"
#define CONTROL_ADM_STR         "control_adm_"
#define CONTROL_SEQ_STR         "control_seq_"

#define VIRTUAL_OUTPUT_PREFIX   "v_"

typedef struct va_tag {
    std::string     tag;
    std::string     opr;
    std::string     op;
} VirtualAlgorithm;
    
void ConfigurationHandler(void const *args);

// Public APIs
void ConfigurationHandler_showControls(void);
void ConfigurationHandler_showAlgorithms(void);
void ConfigurationHandler_showTimerControls(void);
void ConfigurationHandler_showManualControls(void);
void ConfigurationHandler_showSetpointControls(void);
void ConfigurationHandler_showCompositeControls(void);
void ConfigurationHandler_showFailsafeControls(void);
void ConfigurationHandler_showSensorErrorControls(void);
void ConfigurationHandler_showSequenceControls(void);

// map["control_sp_1.json"] : setpointControl 
typedef std::map<std::string, SetpointControl*> StringSetpointMap;

// map["control_tm_rly01.json"] : timerControl
typedef std::map<std::string, TimerControl*> StringTimerMap;

//map["control_mn_1.json"] : manualControl 
typedef std::map<std::string, ManualControl*> StringManualMap;

// map["control_pid_1.json"] : PIDControl
//typedef std::map<std::string, PIDControl *> StringPIDMap;

// map["control_cmp_1.json"] : compositeControl 
typedef std::map<std::string, CompositeControl*> StringCompositeMap;

// map["control_fs_rly1.json"] : failsafeControl 
typedef std::map<std::string, FailsafeControl*> StringFailsafeMap;

// map["control_se_bdcond.json"] : sensorErrorControl
typedef std::map<std::string, SensorErrorControl*> StringSensorErrorMap;

// map["EQUAL_TO_1"].<operands stucture>
typedef std::map<std::string, CompositeAlgorithm *> StringAlgorithmMap;

// map["control_seq_slug.json"] : sequenceControl
typedef std::map<std::string, SequenceControl *> StringSequenceMap;

extern StringSetpointMap        setpointTable;
extern StringTimerMap           timerTable;
extern StringManualMap          manualTable;
//extern StringPIDMap             PIDTable; 
extern StringCompositeMap       compositeTable;
extern StringAlgorithmMap       algorithmTable;
extern StringFailsafeMap        failsafeTable;
extern StringSensorErrorMap     sensorErrorTable;
extern StringSequenceMap        sequenceTable;

extern Mutex manual_mutex;
extern Mutex setpoint_mutex;
extern Mutex timer_mutex;
extern Mutex failsafe_mutex;
extern Mutex sensorError_mutex;
extern Mutex composite_mutex;
extern Mutex sequence_mutex;

#endif