Page Menu
Home
Phorge
Search
Configure Global Search
Log In
Files
F25861104
StateHandler.h
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Size
5 KB
Referenced Files
None
Subscribers
None
StateHandler.h
View Options
#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
Details
Attached
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)
Attached To
Mode
R20 SoC_Rosa_repo
Attached
Detach File
Event Timeline
Log In to Comment