Page MenuHomePhorge

StateHandler.h
No OneTemporary

Size
5 KB
Referenced Files
None
Subscribers
None

StateHandler.h

#ifndef STATEHANDLER_HEADERFILE
#define STATEHANDLER_HEADERFILE
#include "Module.h"
#include "SlaveAgentSlotOfAgent.h"
#include "State.h"
#include "StateVariable.h"
#include <vector>
//XXX - only for now
#include "CSV_Writer.h"
#include "LinearFunctionBlock.h"
using namespace std;
class StateHandler : public Module {
private:
// compare
//Similar to State
LinearFunctionBlock *FuncBlockConfSim2StateDev;
LinearFunctionBlock *FuncBlockConfSim2StateTime;
//Different to State
LinearFunctionBlock *FuncBlockConfDif2StateDev;
LinearFunctionBlock *FuncBlockConfDif2StateTime;
// insert
//Similarity with in a state
LinearFunctionBlock *FuncBlockConfValStateDev;
LinearFunctionBlock *FuncBlockConfValStateTime;
//Unsimilarity with in a state
LinearFunctionBlock *FuncBlockConfInvStateDev;
LinearFunctionBlock *FuncBlockConfInvStateTime;
//Drift- and broken Fuzzy functions
LinearFunctionBlock *FuncBlockConfBrokenSamples;
LinearFunctionBlock *FuncBlockDriftDeviation;
//TODO: would be better to have some multidisciplinary writer thing outside of the state handler where all modules can pass something to write out
CSV_Writer *csv_writer;
float confidenceDrift;
float confidenceBroken;
unsigned int brokenCounter = 0;
// XXX - Maybe Object "StateVariable" between StateHandler and Slot?!
vector<SlaveAgentSlotOfAgent *> vInputVariables;
vector<SlaveAgentSlotOfAgent *> vOutputVariables;
vector<State *> vStates;
State *activeState;
unsigned int discreteAveragePartitionSize;
unsigned int maxStateHistoryLength;
bool delete_all_OuputVariables();
bool delete_all_InputVariables();
bool delete_allStates();
void initStateHandler();
bool addVariable(vector<SlaveAgentSlotOfAgent*>* vVariables, SlaveAgentSlotOfAgent* slot);
State *makeNewState();
bool makeNewActiveState();
bool addActiveStateToStateVector();
string create_Output_File_Name(string cfg_Parameter);
void printOK();
void printDrift();
void printBroken();
public:
StateHandler();
StateHandler(std::string name);
// TODO: would be better to have some multidisciplinary writer thing outside of the state handler where all modules can pass something to write out
StateHandler(std::string name, std::string csvWriterPath);
bool setDiscreteAveragePartitionSize(unsigned int discreteAverage);
unsigned int getDiscreteAveragePartitionSize();
bool addInputVariable(SlaveAgentSlotOfAgent* slot);
bool addOutputVariable(SlaveAgentSlotOfAgent* slot);
void trigger(unsigned int cycle);
// TODO: would be better to have some multidisciplinary writer thing outside of the state handler where all modules can pass something to write out
void closeCsvFile();
void set_CSV_Writer_parameter(string cfg_parameter);
void reset_States();
void reset_States_and_Slave_Agents();
void setMaxStateHistoryLength(unsigned int maxStateHistoryLength);
void setSimilarToStateDeviationFuzzyFunction(
LinearFunctionBlock* FuncBlockConfSim2StateDev);
LinearFunctionBlock* getSimilarToStateDeviationFuzzyFunction();
void setSimilarToStateTimeFuzzyFunction(
LinearFunctionBlock *FuncBlockConfSim2StateTime);
LinearFunctionBlock* getSimilarToStateTimeFuzzyFunction();
void setDifferentToStateFuzzyFunction(
LinearFunctionBlock *FuncBlockConfDif2StateDev);
LinearFunctionBlock *getDifferentToStateDeviationFuzzyFunction();
void setDifferentToStateTimeFuzzyFunction(
LinearFunctionBlock *FuncBlockConfDif2StateTime);
LinearFunctionBlock *getDifferentToStateTimeFuzzyFunction();
void setSimilarityInStateDeviationFuzzyFunction(
LinearFunctionBlock *FuncBlockConfValStateDev);
LinearFunctionBlock *getSimilarityInStateDeviationFuzzyFunction();
void setSimilarityInStateTimeFuzzyFunction(
LinearFunctionBlock *FuncBlockConfValStateTime);
LinearFunctionBlock *getSimilarityInStateTimeFuzzyFunction();
void setUnsimilarityInStateDeviationFuzzyFunction(
LinearFunctionBlock *FuncBlockConfInvStateDev);
LinearFunctionBlock *getUnsimilarityInStateDeviationFuzzyFunction();
void setUnsimilarityInStateTimeFuzzyFunction(
LinearFunctionBlock *FuncBlockConfInvStateTime);
LinearFunctionBlock *getUnsimilarityInStateTimeFuzzyFunction();
void setDriftFuzzyFunction(LinearFunctionBlock *FuncBlockDriftDeviation);
LinearFunctionBlock *getDriftFuzzyFunction();
void setBrokenFuzzyFunction(LinearFunctionBlock *FuncBlockConfBrokenSamples);
LinearFunctionBlock *getBrokenFuzzyFunction();
void setSimilarToStateFuzzyFunctions(
LinearFunctionBlock *FuncBlockConfSim2StateDev,
LinearFunctionBlock *FuncBlockConfSim2StateTime);
void setDifferentToStateFuzzyFunctions(
LinearFunctionBlock *FuncBlockConfDif2StateDev,
LinearFunctionBlock *FuncBlockConfDif2StateTime);
void setSimilarityInStateFuzzyFunctions(
LinearFunctionBlock *FuncBlockConfValStateDev,
LinearFunctionBlock *FuncBlockConfValStateTime);
void setUnsimilarityInStateFuzzyFunctions(
LinearFunctionBlock *FuncBlockConfInvStateDev,
LinearFunctionBlock *FuncBlockConfInvStateTime);
void setDriftAndBrokenFuzzyFunctions(
LinearFunctionBlock *FuncBlockDriftDeviation,
LinearFunctionBlock *FuncBlockConfBrokenSamples);
~StateHandler();
};
#endif

File Metadata

Mime Type
text/x-c++
Expires
Sat, Aug 29, 5:17 PM (8 h, 30 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
377504
Default Alt Text
StateHandler.h (5 KB)

Event Timeline