private void InitStateMachine()
        {
            BuildStateMachine();
#if DEV_MODE
            _vis = new StateMachineVis <Triggers, States>(_sm, pipeName: "graphViz", loggingEnabled: false);
            _vis.Start(@"StateMachineLibVis.exe", "-c graphViz -l 970");
#endif
        }
        private void InitStateMachine()
        {
            BuildStateMachine();
#if DEV_MODE
            _vis = new StateMachineVis <Triggers, States>(_sm, name: "graphViz");
            _vis.Start(@"StateMachineLibVis.exe", "-c graphViz -l 970");
#endif
        }
Exemplo n.º 3
0
        static void Main(string[] args)
        {
            var t1 = 0;

            var sm = new StateMachineBuilder <Trig, State>()
                     .CreateState(State.S1)
                     .Ignoring()
                     .Transition(Trig.T1, State.S2)
                     .End()
                     .CreateState(State.S2)
                     .Transition(Trig.T1, State.S3)
                     .End()
                     .CreateState(State.S3)
                     .Transition(Trig.T2, State.S1)
                     .End()
                     .Build(State.S1, "example");

            var vis = new StateMachineVis <Trig, State>(sm, name: "graphVizTest");

            vis.Start("StateMachineLibVis.exe", clientArgs: "-c graphVizTest");

            var logging = new StateMachineLogging <Trig, State>(sm);

            var cts = new CancellationTokenSource();

            Task.Run(async() =>
            {
                while (!cts.IsCancellationRequested)
                {
                    if (t1 < 2)
                    {
                        sm.Next(Trig.T1);
                        t1++;
                    }
                    else
                    {
                        t1 = 0;
                        sm.Next(Trig.T2);
                    }

                    await Task.Delay(750, cts.Token);
                }
            });


            Console.ReadKey();
            vis.Stop();
            cts.Cancel();
        }