|
diag_modulardiagnosis.cpp
Go to the documentation of this file.
1/** @file diag_modulardiagnosis.cpp Functions to test modular diagnosability and compute modular diagnosers.
23bool IsModularDiagnosable(const SystemVector& rGsubs, const GeneratorVector& rKsubs, string& rReportString) {
50bool IsModularDiagnosable(const vector< const System* >& rGSubs, const vector< const Generator* >& rKSubs, std::string& rReportString) {
59 errstr << "Number of specifications (" << rKSubs.size() << ") does not equal number of subsystems ("<< rGSubs.size() << ")" << endl;
70 for(EventSet::Iterator eit=sigmaCup.Begin(); eit!=sigmaCup.End(); eit++) { // overall shared events
88 // Compute abstraction alphabet for each component such that loop-preserving observer is fulfilled
99 FD_DD("AbstractionAlphabet of Automaton " + ToStringInteger(i) + " " + sigmaAbstVector.at(i).ToString());
111 plant.SetObservable(rGSubs.at(i)->ObservableEvents() ); // only observable events of the subsystem are observable
128bool ModularDiagnoser(const SystemVector& rGsubs, const GeneratorVector& rKsubs, GeneratorVector& rDiagSubs, string& rReportString) {
165bool ModularDiagnoser(const std::vector< const System* >& rGSubs, const std::vector< const Generator* >& rKSubs, std::vector<Diagnoser*>& rDiagSubs, std::string& rReportString){
175 errstr << "Number of specifications (" << rKSubs.size() << ") does not equal number of subsystems ("<< rGSubs.size() << ")" << endl;
187 for(EventSet::Iterator eit=sigmaCup.Begin(); eit!=sigmaCup.End(); eit++) { // overall shared events
205 // Compute abstraction alphabet for each component such that loop-preserving observer is fulfilled
216 FD_DD("AbstractionAlphabet of Automaton " + ToStringInteger(i) + " " + sigmaAbstVector.at(i).ToString());
228 plant.SetObservable(rGSubs.at(i)->ObservableEvents() ); // only observable events of the subsystem are observable
260bool ModularDiagnoser(const SystemVector& rGsubs, const GeneratorVector& rKsubs, GeneratorVector& rDiagsubs) {
Definition cfl_exception.h:118 Definition cfl_nameset.h:70 virtual void InsertSet(const NameSet &rOtherSet) Definition cfl_nameset.cpp:301 Definition cfl_basevector.h:628 virtual const T & At(const Position &pos) const Definition cfl_basevector.h:930 const TaEventSet< EventAttr > & Alphabet(void) const Definition cfl_agenerator.h:1358 Definition cfl_cgenerator.h:76 std::string ToString(const std::string &rLabel="", const Type *pContext=0) const Definition cfl_types.cpp:175 void LanguageDiagnoser(const System &rGen, const System &rSpec, Diagnoser &rDiagGen) Definition diag_languagediagnosis.cpp:275 void LoopPreservingObserver(const System &rGen, const EventSet &rInitialHighAlph, EventSet &rHighAlph) Definition diag_languagediagnosis.cpp:687 TcGenerator< AttributeVoid, AttributeVoid, AttributeCFlags, AttributeVoid > System Definition cfl_cgenerator.h:719 void aParallel(const Generator &rGen1, const Generator &rGen2, Generator &rResGen) Definition cfl_parallel.cpp:101 void Project(const Generator &rGen, const EventSet &rProjectAlphabet, Generator &rResGen) Definition cfl_project.cpp:1349 void Parallel(const Generator &rGen1, const Generator &rGen2, Generator &rResGen) Definition cfl_parallel.cpp:33 Definition cfl_agenerator.h:43 bool ModularDiagnoser(const SystemVector &rGsubs, const GeneratorVector &rKsubs, GeneratorVector &rDiagSubs, string &rReportString) Definition diag_modulardiagnosis.cpp:128 bool IsLanguageDiagnosable(const System &rGen, const System &rSpec) Definition diag_languagediagnosis.cpp:20 TdiagGenerator< AttributeFailureTypeMap, AttributeDiagnoserState, AttributeCFlags, AttributeVoid > Diagnoser Definition diag_generator.h:198 void cParallel(const std::vector< const System * > &rGens, System &rResGen) bool IsModularDiagnosable(const SystemVector &rGsubs, const GeneratorVector &rKsubs, string &rReportString) Definition diag_modulardiagnosis.cpp:23 libFAUDES 2.33k --- 2025.09.16 --- c++ api documentaion by doxygen |