Page Menu
Home
Phorge
Search
Configure Global Search
Log In
Files
F25858842
StateHandler.hpp
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Size
5 KB
Referenced Files
None
Subscribers
None
StateHandler.hpp
View Options
#ifndef STATEHANDLER_HEADERFILE
#define STATEHANDLER_HEADERFILE
#include
"rosa/agent/experimental/Module.hpp"
#include
"rosa/agent/experimental/SlaveAgentSlotOfAgent.hpp"
#include
"rosa/agent/experimental/State.hpp"
//#include "rosa/agent/experimental/StateVariable.hpp"
#include
<vector>
//XXX - only for now
#include
"rosa/agent/experimental/CSV_Writer.hpp"
#include
"rosa/agent/experimental/LinearFunctionBlock.hpp"
using
namespace
std
;
class
StateHandler
:
public
Module
{
public
:
LinearFunctionBlock
*
StabSamples
;
LinearFunctionBlock
*
StabDeviation
;
LinearFunctionBlock
*
UnstabDeviation
;
LinearFunctionBlock
*
SameState
;
LinearFunctionBlock
*
DriftDeviation
;
LinearFunctionBlock
*
BrokenCounterSamples
;
LinearFunctionBlock
*
ValidState
;
//NEU:
//compare
LinearFunctionBlock
*
FuncBlockConfSim2StateDev
;
LinearFunctionBlock
*
FuncBlockConfDif2StateDev
;
LinearFunctionBlock
*
FuncBlockConfSim2StateTime
;
LinearFunctionBlock
*
FuncBlockConfDif2StateTime
;
//insert
LinearFunctionBlock
*
FuncBlockConfValStateDev
;
LinearFunctionBlock
*
FuncBlockConfInvStateDev
;
LinearFunctionBlock
*
FuncBlockConfValStateTime
;
LinearFunctionBlock
*
FuncBlockConfInvStateTime
;
LinearFunctionBlock
*
FuncBlockConfBrokenSamples
;
unsigned
int
maxStateHistoryLength
;
private
:
//DATE18
//XXX - >0,5?
//discreate Average Partition Size adjustable?
float
confidenceStableInput
;
float
confidenceStableOutput
;
float
confidenceStable
;
float
confStableAdjustableThreshold
;
float
confidenceUnstableInput
;
float
confidenceUnstableOutput
;
float
confidenceUnstable
;
float
confidenceUnstableAdjustableThreshold
;
float
confidenceSameStateInput
;
float
confSameStateInputAdjustableThreshold
;
float
confidenceSameStateOutput
;
float
confSameStateOutputAdjustableThreshold
;
float
confidenceValidState
;
float
confValidStateAdjustableThreshold
;
unsigned
int
brokenCounter
;
float
confidenceBroken
;
float
confidenceBrokenAdjustableThreshold
;
unsigned
int
driftCounter
;
float
confidenceDrift
;
float
confidenceDriftAdjustableThreshold
;
//XXX - Maybe Object "StateVariable" between StateHandler and Slot?!
vector
<
SlaveAgentSlotOfAgent
*>
vInputVariables
;
vector
<
SlaveAgentSlotOfAgent
*>
vOutputVariables
;
vector
<
State
*>
vStates
;
State
*
activeState
;
unsigned
int
minNumToBeValidState
;
bool
flagVariablesWereStable
;
unsigned
int
slidingWindowBufferSize
;
unsigned
int
minNumOfRelatedValuesToBeStable
;
float
thresholdToBeStable
;
float
thresholdToBeRelated
;
unsigned
int
discreteAveragePartitionSize
;
unsigned
int
compareDistanceDiscreteAveragePartition
;
float
thresholdNotDrift
;
void
initStateHandler
();
bool
addVariable
(
vector
<
SlaveAgentSlotOfAgent
*>*
vVariables
,
SlaveAgentSlotOfAgent
*
slot
);
bool
variablesAreStable
(
vector
<
SlaveAgentSlotOfAgent
*>*
vVariables
);
//DATE18
float
getConfVariableIsStable
(
SlaveAgentSlotOfAgent
*
variable
);
float
getConfVariablesAreStable
(
vector
<
SlaveAgentSlotOfAgent
*>*
vVariables
);
float
getConfVariableIsUnstable
(
SlaveAgentSlotOfAgent
*
variable
);
float
getConfVariablesAreUnstable
(
vector
<
SlaveAgentSlotOfAgent
*>*
vVariables
);
//bool getConfAndUnconfVariableIsMatching(SlaveAgentSlotOfAgent* variable, LinearFunctionBlock* confDeviation, LinearFunctionBlock* confTime, float* conf, float* unconf);
//bool getConfAndUnconfVariableIsMatching(State* state, LinearFunctionBlock* confDeviation, LinearFunctionBlock* confTime, float* conf, float* unconf);
//bool getConfAndUnconfVariablesAreMatching(vector<SlaveAgentSlotOfAgent*>* vVariables, LinearFunctionBlock* confDeviation, LinearFunctionBlock* confTime, float* conf, float* unconf);
State
*
makeNewState
();
bool
addActiveStateToStateVector
();
//bool addStateAndMakeItActive();
bool
makeNewActiveState
();
State
*
findRelatedState
();
bool
findRelatedStateAndMakeItActive
();
void
eraseStatesWithLessInjections
();
//XXX - only for now:
CSV_Writer
*
csv_writer
;
public
:
StateHandler
();
StateHandler
(
char
*
name
);
bool
setDiscreteAveragePartitionSize
(
unsigned
int
discreteAverage
);
unsigned
int
getDiscreteAveragePartitionSize
();
bool
addInputVariable
(
SlaveAgentSlotOfAgent
*
slot
);
bool
addOutputVariable
(
SlaveAgentSlotOfAgent
*
slot
);
bool
setSlidingWindowBufferSize
(
unsigned
int
slidingWindowBufferSize
);
bool
setMinNumOfRelatedValuesToBeStable
(
unsigned
int
minNumOfRelatedValuesToBeStable
);
bool
setThresholdToBeStable
(
float
thresholdToBeStable
);
bool
setThresholdToBeRelated
(
float
thresholdToBeRelated
);
void
trigger
(
unsigned
int
cycle
);
//XXX - only for now
void
closeCsvFile
();
void
setCSVwriter
(
char
*
output_file_name
);
/*
private:
vector<SlaveAgentSlotOfAgent*> vSlots;
unsigned int minNumOfChangedForValidStateChange;
unsigned int minimumInjectionsForBeingState;
void initStateHandler();
public:
StateHandler();
StateHandler(char* name);
bool setMinimumInjectionsForBeingState(unsigned int minimumInjectionsForBeingState);
unsigned int getMinimumInjectionsForBeingState();
//TODO: function for deleting slot and function with the whole vector as parameter
bool add_slot(SlaveAgentSlotOfAgent* slot);
void set_minNumOfChangedForValidStateChange(unsigned int minNumOfChangedForValidStateChange);
unsigned int get_minNumOfChangedForValidStateChange();
bool trigger();
*/
};
#endif
File Metadata
Details
Attached
Mime Type
text/x-c++
Expires
Sat, Aug 29, 3:51 PM (1 d, 7 h)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
376871
Default Alt Text
StateHandler.hpp (5 KB)
Attached To
Mode
R20 SoC_Rosa_repo
Attached
Detach File
Event Timeline
Log In to Comment