1 #ifndef __DIADES__AUTOMATA__FAULTDIAGNOSIS_HH_ 2 #define __DIADES__AUTOMATA__FAULTDIAGNOSIS_HH_ 4 #include <unordered_map> 22 static string typeName() {
return "Automata::FaultDiagnosis"; }
74 const vector<Transition> & nextTransition,
75 const vector<State> & nextState,
79 EdgeMap< vector<Transition> > & transitions,
80 EdgeMap< set<int> > & supportedTransition);
93 list< list<Transition>::const_iterator > & configuration)
const;
104 const set<Event> & faults);
list< vector< State > > * _currentState
const ObservableComponent * _globalModel
bool createState(Graph::Graph &synchronisation, const vector< State > &nextState, NodeMap< vector< State > > &states, State &s) const
void diagnoserDiagnose(const Event &obs)
FaultDiagnosis(const vector< const ObservableComponent *> models, const SynchronisationRules &rules, const set< Event > &faults)
Diades::Utils::Exception< FaultDiagnosis > Exception
list< set< Event > > * _currentFaults
void diagnose(const Event &obs)
set< State > _currentGlobalStates
An observable Component defined as a automaton.
void getDiagnosis(Diagnosis &diagnosis)
list< Event > _observations
ComposableModel * _globalComposableModel
const SynchronisationRules * _rules
Namespace of the Diades project.
ClassicalDiagnoser * _diagnoser
void componentDiagnose(const Event &obs)
bool nextConfiguration(const list< list< Transition > > &candidateTransitions, list< list< Transition >::const_iterator > &configuration) const
bool createTransition(State stateToSynchronise, const vector< Transition > &nextTransition, const vector< State > &nextState, State &targetState, Graph::Graph &synchronisation, NodeMap< vector< State > > &states, EdgeMap< vector< Transition > > &transitions, EdgeMap< set< int > > &supportedTransition)
Diades::Graph::Node State
vector< const ComposableModel * > _models
void globalModelDiagnose(const Event &obs)
set< Event > _faultEvents