开始测试状态机事件
开始进入停止状态
onSuspendService from=InitRobot to=SuspendService event=initerror.event
开始进入初始北状态
onInitRobot from=SuspendService to=InitRobot event=reset.event
去掉并发状态,同时启动水位、广告、主 状态机
onRobot from=InitRobot to=Robot event=initcomplete.event
开始进入低水位状态
onLowWater from=NormalWater to=LowWater event=lowwater.event
开始进入播放广告状态
onPlayAd from=IdleAd to=PlayAd event=havead.event
开始进入暂停播放广告状态
onPauseAd from=PlayAd to=PauseAd event=pausead.event
开始进入服务状态
onInService from=InIdle to=InService event=inservice.event
开始进入下班状态
onWorkOff from=InService to=WorkOff event=workoff.event
开始进入播放广告状态
onPlayAd from=PauseAd to=PlayAd event=palyad.event
开始进入暂停状态
onPauseService from=Work to=PauseService event=work2pauseservice.event
onPauseService from=Work to=PauseService event=work2pauseservice.event
onPauseService from=Work to=PauseService event=work2pauseservice.event
开始进入无广告状态
onIdleAd from=PlayAd to=IdleAd event=noad.event
开始进入正常水位状态
onNormalWater from=LowWater to=NormalWater event=normalwater.event
开始进入高水位状态
onHighWater from=NormalWater to=HighWater event=highwater.event
开始进入恢复暂停状态
onWork from=PauseService to=Work event=pauseservice.event
onWork from=PauseService to=Work event=pauseservice.event
onWork from=PauseService to=Work event=pauseservice.event
开始进入回充状态
onGoCharge from=WorkOff to=GoCharge event=homecharge.event
onGoCharge from=WorkOff to=GoCharge event=homecharge.event
onGoCharge from=WorkOff to=GoCharge event=homecharge.event
onGoCharge from=WorkOff to=GoCharge event=homecharge.event
开始进入空闲状态
onInIdle from=Work to=InIdle event=inidle.event
onInIdle from=Work to=InIdle event=inidle.event
onInIdle from=WorkOff to=InIdle event=inidle.event
onInIdle from=WorkOff to=InIdle event=inidle.event
onInIdle from=WorkOff to=InIdle event=inidle.event
onInIdle from=WorkOff to=InIdle event=inidle.event
onInIdle from=GoCharge to=InIdle event=inidle.event
onInIdle from=GoCharge to=InIdle event=inidle.event
onInIdle from=GoCharge to=InIdle event=inidle.event
onInIdle from=GoCharge to=InIdle event=inidle.event
开始进入正常水位状态
onNormalWater from=HighWater to=NormalWater event=normalwater.event
开始进入服务状态
onInService from=InIdle to=InService event=inservice.event
onInService from=InIdle to=InService event=inservice.event
onInService from=InIdle to=InService event=inservice.event
onInService from=InIdle to=InService event=inservice.event
onInService from=InIdle to=InService event=inservice.event
onInService from=InIdle to=InService event=inservice.event
onInService from=InIdle to=InService event=inservice.event
onInService from=InIdle to=InService event=inservice.event
onInService from=InIdle to=InService event=inservice.event
onInService from=InIdle to=InService event=inservice.event
onInService from=InIdle to=InService event=inservice.event
开始进入下班状态
onWorkOff from=InService to=WorkOff event=workoff.event
onWorkOff from=InService to=WorkOff event=workoff.event
onWorkOff from=InService to=WorkOff event=workoff.event
onWorkOff from=InService to=WorkOff event=workoff.event
onWorkOff from=InService to=WorkOff event=workoff.event
onWorkOff from=InService to=WorkOff event=workoff.event
onWorkOff from=InService to=WorkOff event=workoff.event
onWorkOff from=InService to=WorkOff event=workoff.event
onWorkOff from=InService to=WorkOff event=workoff.event
onWorkOff from=InService to=WorkOff event=workoff.event
onWorkOff from=InService to=WorkOff event=workoff.event
onWorkOff from=InService to=WorkOff event=workoff.event
开始进入空闲状态
onInIdle from=Work to=InIdle event=inidle.event
onInIdle from=Work to=InIdle event=inidle.event
onInIdle from=WorkOff to=InIdle event=inidle.event
onInIdle from=WorkOff to=InIdle event=inidle.event
onInIdle from=WorkOff to=InIdle event=inidle.event
onInIdle from=WorkOff to=InIdle event=inidle.event
onInIdle from=GoCharge to=InIdle event=inidle.event
onInIdle from=GoCharge to=InIdle event=inidle.event
onInIdle from=GoCharge to=InIdle event=inidle.event
onInIdle from=GoCharge to=InIdle event=inidle.event
onInIdle from=Work to=InIdle event=inidle.event
onInIdle from=Work to=InIdle event=inidle.event
onInIdle from=Work to=InIdle event=inidle.event
onInIdle from=Work to=InIdle event=inidle.event
onInIdle from=Work to=InIdle event=inidle.event
onInIdle from=Work to=InIdle event=inidle.event
onInIdle from=Work to=InIdle event=inidle.event
onInIdle from=Work to=InIdle event=inidle.event
onInIdle from=Work to=InIdle event=inidle.event
onInIdle from=Work to=InIdle event=inidle.event
onInIdle from=Work to=InIdle event=inidle.event
onInIdle from=Work to=InIdle event=inidle.event
onInIdle from=Work to=InIdle event=inidle.event
onInIdle from=Work to=InIdle event=inidle.event
onInIdle from=Work to=InIdle event=inidle.event
onInIdle from=Work to=InIdle event=inidle.event
onInIdle from=Work to=InIdle event=inidle.event
onInIdle from=Work to=InIdle event=inidle.event
onInIdle from=Work to=InIdle event=inidle.event
onInIdle from=Work to=InIdle event=inidle.event
onInIdle from=Work to=InIdle event=inidle.event
onInIdle from=WorkOff to=InIdle event=inidle.event
onInIdle from=WorkOff to=InIdle event=inidle.event
onInIdle from=WorkOff to=InIdle event=inidle.event
onInIdle from=WorkOff to=InIdle event=inidle.event
onInIdle from=WorkOff to=InIdle event=inidle.event
onInIdle from=WorkOff to=InIdle event=inidle.event
onInIdle from=WorkOff to=InIdle event=inidle.event
onInIdle from=WorkOff to=InIdle event=inidle.event
onInIdle from=WorkOff to=InIdle event=inidle.event
onInIdle from=WorkOff to=InIdle event=inidle.event
onInIdle from=WorkOff to=InIdle event=inidle.event
onInIdle from=WorkOff to=InIdle event=inidle.event
Class transformation time: 0.02639393s for 963 classes or 2.7408026998961578E-5s per class
主函数
InputStream is = new FileInputStream(xmlFile);
UntypedStateMachineBuilder xmlbuilder = new UntypedStateMachineImporter().importDefinition(is);
RobotStateMachine stateMachine1 = xmlbuilder.newAnyStateMachine(RobotStateMachine.RobotState.InitRobot, StateMachineConfiguration.create().enableDebugMode(false));
stateMachine1.addTransitionCompleteListener(new RobotStateMachine.TransitionCompleteListener<RobotStateMachine, RobotStateMachine.RobotState, String, Void>() {
@Override
public void transitionComplete(StateMachine.TransitionCompleteEvent<RobotStateMachine, RobotStateMachine.RobotState, String, Void> event) {
// System.out.println("StateMachine = " + event.getSourceState()+"--["+event.getCause()+"]--"+event.getTargetState());
}
});
stateMachine1.start();
// System.out.println("当前状态"+ stateMachine1.getCurrentRawState().getPath());
System.out.println("开始测试状态机事件");
System.out.println("开始进入停止状态");
stateMachine1.fire("initerror.event");
// System.out.println("当前状态"+ stateMachine1.getCurrentRawState().getPath());
System.out.println("开始进入初始北状态");
stateMachine1.fire("reset.event");
// System.out.println("当前状态"+ stateMachine1.getCurrentRawState().getPath());
System.out.println("去掉并发状态,同时启动水位、广告、主 状态机");
stateMachine1.fire("initcomplete.event");
// stateMachine1.fire("inidle.event");
// System.out.println("当前状态"+ stateMachine1.getSubStatesOn(RobotStateMachine.RobotState.Robot));
System.out.println("开始进入低水位状态");
stateMachine1.fire("lowwater.event");
// System.out.println("当前状态===="+ stateMachine1.getLastRawState().getThis().getPath());
System.out.println("开始进入播放广告状态");
stateMachine1.fire("havead.event");
// System.out.println("当前状态"+ stateMachine1.getSubStatesOn(RobotStateMachine.RobotState.AdSm));
System.out.println("开始进入暂停播放广告状态");
stateMachine1.fire("pausead.event");
// System.out.println("当前状态"+ stateMachine1.getCurrentRawState().getStateId());
System.out.println("开始进入服务状态");
stateMachine1.fire("inservice.event");
// System.out.println("当前状态"+ stateMachine1.getSubStatesOn(RobotStateMachine.RobotState.Main));
System.out.println("开始进入下班状态");
stateMachine1.fire("workoff.event");
// System.out.println("当前状态"+ stateMachine1.getCurrentRawState().getStateId());
System.out.println("开始进入播放广告状态");
stateMachine1.fire("palyad.event");
// System.out.println("当前状态"+ stateMachine1.getCurrentRawState().getStateId());
System.out.println("开始进入暂停状态");
stateMachine1.fire("work2pauseservice.event");
// System.out.println("当前状态"+ stateMachine1.getCurrentRawState().getStateId());
System.out.println("开始进入无广告状态");
stateMachine1.fire("noad.event");
// System.out.println("当前状态"+ stateMachine1.getCurrentRawState().getStateId());
System.out.println("开始进入正常水位状态");
stateMachine1.fire("normalwater.event");
// System.out.println("当前状态"+ stateMachine1.getCurrentRawState().getStateId());
System.out.println("开始进入高水位状态");
stateMachine1.fire("highwater.event");
// System.out.println("当前状态"+ stateMachine1.getCurrentRawState().getStateId());
System.out.println("开始进入恢复暂停状态");
stateMachine1.fire("pauseservice.event");
// System.out.println("当前状态"+ stateMachine1.getCurrentRawState().getStateId());
System.out.println("开始进入回充状态");
stateMachine1.fire("homecharge.event");
// System.out.println("当前状态"+ stateMachine1.getCurrentRawState().getStateId());
System.out.println("开始进入空闲状态");
stateMachine1.fire("inidle.event");
// System.out.println("当前状态"+ stateMachine1.getCurrentRawState().getStateId());
System.out.println("开始进入正常水位状态");
stateMachine1.fire("normalwater.event");
// System.out.println("当前状态"+ stateMachine1.getCurrentRawState().getStateId());
System.out.println("开始进入服务状态");
stateMachine1.fire("inservice.event");
// System.out.println("当前状态"+ stateMachine1.getCurrentRawState().getStateId());
System.out.println("开始进入下班状态");
stateMachine1.fire("workoff.event");
// System.out.println("当前状态"+ stateMachine1.getCurrentRawState().getStateId());
System.out.println("开始进入空闲状态");
stateMachine1.fire("inidle.event");