00001 /* 00002 * FSM_TEST1.h 00003 * 00004 * Created on: Nov 26, 2013 00005 * Author: dan 00006 */ 00007 00008 #ifndef FSM_TEST1_H_ 00009 #define FSM_TEST1_H_ 00010 00011 00012 #include "custom_decision_making.h" 00013 00014 FSM(TEST1){ 00015 enum STATt{ 00016 C, 00017 D, 00018 S 00019 } 00020 FSM_START(C); 00021 FSM_BGN{ 00022 FSM_STATE( C ){ 00023 FSM_CALL_TASK(C); 00024 FSM_TRANSITIONS{ 00025 FSM_ON_EVENT(C/SUCCESS, FSM_NEXT(D)); 00026 FSM_ON_EVENT(C/FAIL, FSM_NEXT(D)); 00027 } 00028 } 00029 FSM_STATE( D ){ 00030 FSM_CALL_TASK(D); 00031 FSM_TRANSITIONS{ 00032 // FSM_ON_EVENT(D/SUCCESS, FSM_NEXT(D)); 00033 // FSM_ON_EVENT(D/FAIL, FSM_NEXT(D)); 00034 } 00035 } 00036 FSM_STATE( S ){ 00037 FSM_STOP(SUCCESS, TaskResult::SUCCESS()); 00038 FSM_TRANSITIONS{} 00039 } 00040 } 00041 FSM_END 00042 } 00043 00044 00045 #endif /* FSM_TEST1_H_ */