|
Go to the documentation of this file.
65 std::cout << std::endl << "******** reading files: plant A, spec A, constraints LC_A, LP_A and LE_A." << std::endl;
67 HioPlant plantA( "data/5_conveyor_belts/A_plant.gen");
68 plantA. Write( "tmp_hio_cb_A_plant.gen");
70 std::cout<<std::endl<< "plant done.";
75 Generator LP_A( "data/5_conveyor_belts/A_LP.gen");
78 Generator LE_A( "data/5_conveyor_belts/A_LE.gen");
81 HioPlant specA( "data/5_conveyor_belts/A_spec.gen");
83 specA. Write( "tmp_hio_cb_A_spec.gen");
88 LC_A. Write( "tmp_hio_cb_A_LC.gen");
92 std::cout << std::endl << "******** local controller synthesis for plant A, B, C,...,H." << std::endl;
95 FAUDES_TEST_DUMP( "HioSynthMonolithic: Fischertechnik Conveyor Belts",controllerA);
97 controllerA. Write( "tmp_hio_cb_A_controller.gen");
112 controllerA. Version( "A_", "B_",controllerX);
113 controllerX. Write( "tmp_hio_cb_B_controller.gen");
114 controllerA. Version( "A_", "C_",controllerX);
115 controllerX. Write( "tmp_hio_cb_C_controller.gen");
116 controllerA. Version( "A_", "D_",controllerX);
117 controllerX. Write( "tmp_hio_cb_D_controller.gen");
118 controllerA. Version( "A_", "E_",controllerX);
119 controllerX. Write( "tmp_hio_cb_E_controller.gen");
120 controllerA. Version( "A_", "F_",controllerX);
121 controllerX. Write( "tmp_hio_cb_F_controller.gen");
122 controllerA. Version( "A_", "G_",controllerX);
123 controllerX. Write( "tmp_hio_cb_G_controller.gen");
124 controllerA. Version( "A_", "H_",controllerX);
125 controllerX. Write( "tmp_hio_cb_H_controller.gen");
136 specA. Version( "A_", "B_",specB);
137 specB. Write( "tmp_hio_cb_B_spec.gen");
139 std::cout <<std::endl<< "******** IOshuffle of spec A and spec B." << std::endl;
146 std::cout<<std::endl<< "**** Statistics of shuffAB: "<<std::endl;
148 std::cout<<std::endl<< "**** Doing statemin...";
150 std::cout<<std::endl<< "**** Statistics after statemin: "<<std::endl;
153 shuffAB. Name( "IO shuffle AB");
154 shuffAB. Write( "tmp_hio_cb_AB_shuff.gen_rename");
156 std::cout <<std::endl<< "******** environment: read files AB_Env1 and AB_Env2, composition to environment model." << std::endl;
160 envAB1. Write( "tmp_hio_cb_AB_env1.gen");
161 envAB2. Write( "tmp_hio_cb_AB_env2.gen");
171 envAB. Write( "tmp_hio_cb_AB_env.gen");
173 std::cout <<std::endl<< "******** Composition shuffAB||envAB." << std::endl;
179 std::cout <<std::endl<< "******** Specification and constraints for compound AB." << std::endl;
182 HioPlant specAB( "data/5_conveyor_belts/AB_spec.gen");
184 specAB. Write( "tmp_hio_cb_AB_spec.gen");
189 LC_AB. Write( "tmp_hio_cb_AB_LC.gen");
191 Generator LL_AB( "data/5_conveyor_belts/AB_LL.gen");
199 Parallel(intConstr_AB,LE_A,intConstr_AB);
200 Parallel(intConstr_AB,LE_B,intConstr_AB);
201 intConstr_AB. Name( "intConstr_AB");
208 std::cout <<std::endl<< "******** Controller synthesis for compound AB." << std::endl;
212 controllerAB. Name( "controllerAB");
214 controllerAB. Write( "tmp_hio_cb_AB_controller.gen_rename");
218 controllerAB. Version( "AB_", "CD_",controllerX);
219 controllerX. Version( "A_", "C_",controllerX2);
220 controllerX2. Version( "B_", "D_",controllerX);
221 controllerX. Write( "tmp_hio_cb_CD_controller.gen_rename");
223 controllerAB. Version( "AB_", "EF_",controllerX);
224 controllerX. Version( "A_", "E_",controllerX2);
225 controllerX2. Version( "B_", "F_",controllerX);
226 controllerX. Write( "tmp_hio_cb_EF_controller.gen_rename");
228 controllerAB. Version( "AB_", "GH_",controllerX);
229 controllerX. Version( "A_", "G_",controllerX2);
230 controllerX2. Version( "B_", "H_",controllerX);
231 controllerX. Write( "tmp_hio_cb_GH_controller.gen_rename");
237 intConstr_AB. Clear();
245 std::cout <<std::endl<< "******** IOshuffle of spec AB and spec CD." << std::endl;
249 specAB. Version( "AB_", "CD_",specCD);
250 specCD. Write( "tmp_hio_cb_CD_spec.gen");
258 shuffABCD. Name( "shuff ABCD");
261 shuffABCD. Write( "tmp_hio_cb_ABCD_shuff.gen_rename");
263 std::cout <<std::endl<< "******** environmentAB: read files, composition to environment model." << std::endl;
266 envABCD1. Write( "tmp_hio_cb_ABCD_env1.gen");
267 HioEnvironment envABCD2( "data/5_conveyor_belts/ABCD_Env_ABCDfreetr.gen");
268 envABCD2. Write( "tmp_hio_cb_ABCD_env_freetr.gen");
271 envABCD2. Read( "data/5_conveyor_belts/ABCD_Env_ABCDoccfl.gen");
272 envABCD2. Write( "tmp_hio_cb_ABCD_env_occfl.gen");
278 envABCD. Name( "envABCD");
281 envABCD. Write( "tmp_hio_cb_ABCD_env.gen");
289 specAB. Version( "AB_", "ABCD_",specABCD);
291 specABCD. Write( "tmp_hio_cb_ABCD_spec.gen");
295 LC_AB. Version( "AB_", "CD_",LC_CD);
296 LL_AB. Version( "AB_", "CD_",LL_CD);
299 Parallel(LC_AB,LC_CD,intConstr_ABCD);
300 Parallel(intConstr_ABCD,LL_AB,intConstr_ABCD);
301 Parallel(intConstr_ABCD,LL_CD,intConstr_ABCD);
302 intConstr_ABCD. Name( "intConstr_ABCD");
307 LC_AB. Version( "AB_", "ABCD_",LC_ABCD);
308 LL_AB. Version( "AB_", "ABCD_",LL_ABCD);
312 std::cout <<std::endl<< "******** Controller synthesis for compound ABCD." << std::endl;
316 std::cout <<std::endl<< "**** Synthesis procedure is running - this can take about two hours! ..." << std::endl;
318 controllerABCD. Name( "controllerABCD");
320 controllerABCD. Write( "tmp_hio_cb_ABCD_controller.gen_rename");
321 controllerABCD. Read( "tmp_hio_cb_ABCD_controller.gen_rename");
325 intConstr_ABCD. Clear();
327 controllerABCD. Version( "ABCD_", "EFGH_",controllerX);
328 controllerX. Version( "AB_", "EF_",controllerX2);
329 controllerX2. Version( "CD_", "GH_",controllerX);
330 controllerX. Write( "tmp_hio_cb_EFGH_controller.gen_rename");
332 controllerABCD. Version( "ABCD_", "ABCDEFGH_",controllerX);
333 controllerX. Version( "CD_", "EFGH_",controllerX2);
334 controllerX2. Version( "AB_", "ABCD_",controllerX);
335 controllerX. Write( "tmp_hio_cb_ABCDEFGH_controller.gen_rename");
337 std::cout << std::endl << "done.";
349 std::cout << "function: " << e. Where() << std::endl;
350 std::cout << "exception description: " << e. What() << std::endl;
351 std::cout << "exception id: " << e. Id() << std::endl;
#define FAUDES_TEST_DUMP(mes, dat)
virtual const char * What() const
virtual unsigned int Id() const
virtual const char * Where() const
void Read(const std::string &rFileName, const std::string &rLabel="", const Type *pContext=0)
void Write(const Type *pContext=0) const
void SWrite(TokenWriter &rTw) const
void Name(const std::string &rName)
bool StateNamesEnabled(void) const
virtual void Version(const std::string &rVersion, vGenerator &rResGen) const
void StateMin(const Generator &rGen, Generator &rResGen)
void aParallel(const Generator &rGen1, const Generator &rGen2, Generator &rResGen)
void Parallel(const Generator &rGen1, const Generator &rGen2, Generator &rResGen)
void HioSynthMonolithic(const HioPlant &rPlant, const HioPlant &rSpec, const HioConstraint &rSc, const HioConstraint &rSp, const HioConstraint &rSe, HioController &rController)
void HioSynthHierarchical(const HioPlant &rHioShuffle, const HioEnvironment &rEnvironment, const HioPlant &rSpec, const Generator &rIntConstr, const HioConstraint &rSc, const HioConstraint &rSl, HioController &rController)
void HioShuffle(const Generator &rPlantA, const Generator &rPlantB, const EventSet &rYp, const EventSet &rUp, const EventSet &rYe, const EventSet &rUe, Generator &rIOShuffAB)
bool IsHioConstraintForm(HioConstraint &rHioConstraint, StateSet &rQY, StateSet &rQU, EventSet &rErrEvSet, TransSet &rErrTrSet, StateSet &rErrStSet, std::string &rReportStr)
bool IsHioEnvironmentForm(HioEnvironment &rHioEnvironment, StateSet &rQYe, StateSet &rQUe, StateSet &rQUl, StateSet &rQYlUe, EventSet &rErrEvSet, TransSet &rErrTrSet, StateSet &rErrStSet, std::string &rReportStr)
bool IsHioPlantForm(HioPlant &rHioPlant, StateSet &rQYpYe, StateSet &rQUp, StateSet &rQUe, EventSet &rErrEvSet, TransSet &rErrTrSet, StateSet &rErrStSet, std::string &rReportStr)
libFAUDES 2.33b
--- 2025.05.07
--- c++ api documentaion by doxygen
|