module Bordel: type orcStrlPtr ; output BF_Bordel, STARTED_Bordel, GoodEnd_Bordel, Abort_Bordel, T3_Bordel; input START_Bordel, Abort_Local_Bordel; output START_InitCycab, Abort_Local_InitCycab; input InitCycab_Start : orcStrlPtr, USERSTART_InitCycab, BF_InitCycab, T3_InitCycab; procedure InitCycab_controler()(orcStrlPtr), InitCycab_fileparameter()(orcStrlPtr, string), InitCycab_parameter()(orcStrlPtr); output START_JoystickDrv, Abort_Local_JoystickDrv; input JoystickDrv_Start : orcStrlPtr, USERSTART_JoystickDrv, BF_JoystickDrv, T3_JoystickDrv; procedure JoystickDrv_controler()(orcStrlPtr), JoystickDrv_fileparameter()(orcStrlPtr, string), JoystickDrv_parameter()(orcStrlPtr); output START_ParkDrv, Abort_Local_ParkDrv; input ParkDrv_Start : orcStrlPtr, USERSTART_ParkDrv, BF_ParkDrv, T3_ParkDrv; procedure ParkDrv_controler()(orcStrlPtr), ParkDrv_fileparameter()(orcStrlPtr, string), ParkDrv_parameter()(orcStrlPtr,string,string); output START_SearchDrv, Abort_Local_SearchDrv; input SearchDrv_Start : orcStrlPtr, USERSTART_SearchDrv, BF_SearchDrv, T3_SearchDrv; procedure SearchDrv_controler()(orcStrlPtr), SearchDrv_fileparameter()(orcStrlPtr, string), SearchDrv_parameter()(orcStrlPtr,string); input T2_PbMotorE, T2_NoParkE; input Obstacle; relation START_Bordel# BF_InitCycab# T3_InitCycab# T2_PbMotorE# BF_JoystickDrv# T3_JoystickDrv# T2_PbMotorE# BF_ParkDrv# T3_ParkDrv# T2_PbMotorE# BF_SearchDrv# T3_SearchDrv# T2_NoParkE# Obstacle# Abort_Local_Bordel ; signal L_T2_NoParkE, L_T2_PbMotorE, dummylocalsignal in await immediate START_Bordel ; emit STARTED_Bordel ; trap Abort in trap T3_controle_Bordel in trap BF_controle_Bordel in [ [ [ % --------------- InitCycab --------------- [ call InitCycab_parameter()(?InitCycab_Start); call InitCycab_controler()(?InitCycab_Start); emit START_InitCycab; await case BF_InitCycab case T3_InitCycab do exit T3_controle_Bordel end await ] ] % ------------- fin InitCycab ------------- ; trap E_SearchDrv in [ loop [ % --------------- JoystickDrv --------------- [ call JoystickDrv_parameter()(?JoystickDrv_Start); call JoystickDrv_controler()(?JoystickDrv_Start); emit START_JoystickDrv; await case BF_JoystickDrv case T3_JoystickDrv do exit T3_controle_Bordel end await ] ] % ------------- fin JoystickDrv ------------- ; [ % --------------- SearchDrv --------------- [ call SearchDrv_parameter()(?SearchDrv_Start,"0.0 0.0 0.0"); call SearchDrv_controler()(?SearchDrv_Start); emit START_SearchDrv; await case BF_SearchDrv case T3_SearchDrv do exit T3_controle_Bordel end await ] ] % ------------- fin SearchDrv ------------- end loop ] || await BF_SearchDrv;emit Abort_Local_JoystickDrv; exit E_SearchDrv end trap ; [ % --------------- ParkDrv --------------- [ call ParkDrv_parameter()(?ParkDrv_Start,"0.0 0.0 0.0","0.0 0.0 0.0"); call ParkDrv_controler()(?ParkDrv_Start); emit START_ParkDrv; await case BF_ParkDrv case T3_ParkDrv do exit T3_controle_Bordel end await ] ] % ------------- fin ParkDrv ------------- ; exit BF_controle_Bordel ] || [ await Abort_Local_Bordel; emit Abort_Bordel; emit Abort_Local_InitCycab; emit Abort_Local_JoystickDrv; emit Abort_Local_ParkDrv; emit Abort_Local_SearchDrv; exit Abort; ] ] ; exit BF_controle_Bordel handle BF_controle_Bordel do emit BF_Bordel; emit GoodEnd_Bordel end trap handle T3_controle_Bordel do emit T3_Bordel end trap end trap end signal end module