コード例 #1
0
        public TelnetFSM(FSMConfiguration fsmConfiguration)
        {
            #region Sample

            //builder.In(States.OnFloor)
            //   .ExecuteOnEntry(this.AnnounceFloor)
            //   .ExecuteOnExit(Beep)
            //   .ExecuteOnExit(Beep) // just beep a second time
            //   .On(Events.CloseDoor).Goto(States.DoorClosed)
            //   .On(Events.OpenDoor).Goto(States.DoorOpen)
            //   .On(Events.GoUp)
            //       .If(CheckOverload).Goto(States.MovingUp)
            //       .Otherwise().Execute(this.AnnounceOverload)
            //   .On(Events.GoDown)
            //       .If(CheckOverload).Goto(States.MovingDown)
            //       .Otherwise().Execute(this.AnnounceOverload);
            //builder.In(States.Moving)
            //    .On(Events.Stop).Goto(States.OnFloor);
            //proxyRunMachine.DefineHierarchyOn(States.WaitConncet);

            //fSMData.elevator.AddExtension(new Appccelerate.Log4Net.StateMachineLogExtension<States, Events>("fSMData.elevator"));
            #endregion
            startFSM(fsmConfiguration);
            connected();
        }
コード例 #2
0
        private void startFSM(FSMConfiguration fsmConfiguration)
        {
            mainFSMConfiguration = fsmConfiguration;
            fSMData.tcaTSLPath   = fsmConfiguration.tslPath;
            fSMData.comPortName  = fsmConfiguration.defaultComPortName;
            fSMData.ruSerialPort = new RuSerialPort();
            fSMData.tCACommand   = new TCAControl.TCACommandWarpper(fSMData.tcaTSLPath);
            proxyRunMachine      = new StateMachineDefinitionBuilder <States, Events>();
            proxyRunMachine.WithInitialState(States.Connncted);
            proxyRunMachine.In(States.Connncted).On(Events.CT11Command).Goto(States.CT11Mode).Execute(ct11Mode);
            proxyRunMachine.In(States.Connncted).On(Events.RuCommand).Goto(States.RuMode).Execute(ruMode);
            proxyRunMachine.In(States.Connncted).On(Events.TCAIcolishCommand).Goto(States.TCAIcolishMode).Execute(tCAIcolishMode);
            proxyRunMachine.In(States.TCAIcolishMode).On(Events.GoBack).Goto(States.Connncted).Execute(connected);
            proxyRunMachine.In(States.CT11Mode).On(Events.RuCommand).Goto(States.RuMode).Execute(ruMode);
            proxyRunMachine.In(States.CT11Mode).On(Events.GoBack).Goto(States.Connncted).Execute(connected);
            proxyRunMachine.In(States.RuMode).On(Events.CT11Command).Goto(States.CT11Mode).Execute(ct11Mode);
            proxyRunMachine.In(States.RuMode).On(Events.GoBack).Goto(States.Connncted).Execute(connected);
            var definition = proxyRunMachine.Build();

            fSMData.elevator = definition.CreateActiveStateMachine();
            fSMData.elevator.Start();

            //Action must Instantiate after FSM member Instantiate
            connectedAction  = new ConnectedAction(ref fSMData);
            ruModeAction     = new RuModeAction(ref fSMData);
            ct11ModeAction   = new CT11ModeAction(ref fSMData);
            tCAIcolishAction = new TCAIcolishAction(ref fSMData);
        }
コード例 #3
0
 public TelnetServer(FSMConfiguration fsmConfiguration)
 {
     _fsmConfiguration = fsmConfiguration;
     baseActionDic.Add("", sendPromt);
     baseActionDic.Add("help", printHelp);
     baseActionDic.Add("Exit", sessionClose);
     startServer(_fsmConfiguration.serverPort);
 }
コード例 #4
0
 public void restartFSM(FSMConfiguration fsmConfiguration)
 {
     stopFSM();
     startFSM(fsmConfiguration);
 }
コード例 #5
0
 public void restartSession(FSMConfiguration fsmConfiguration)
 {
     telnetFSM.restartFSM(fsmConfiguration);
 }
コード例 #6
0
 public ProxyUserSession(FSMConfiguration fsmConfiguration)
 {
     telnetFSM = new TelnetFSM(fsmConfiguration);
 }
コード例 #7
0
 public void updateFSMConfiguration(FSMConfiguration fsmConfiguration)
 {
     _fsmConfiguration = fsmConfiguration;
 }