Exemplo n.º 1
0
        private void Feedback(IHandler handler)
        {
            Console.WriteLine("FEEDBACK");

            Receiver = (sender, args) =>
            {
                Console.WriteLine("Receiver --- Handler name: " + handler.Name);
                SerialPort sp     = (SerialPort)sender;
                string     indata = sp.ReadExisting();
                Console.WriteLine($"Indata({handler.Name}): " + indata + "<-end");
                bool complete = handler.Responce(indata);

                if (complete)
                {
                    PortConnect.RemoveReceiver(Receiver);
                    Console.WriteLine("Убрал receiver: " + Receiver.GetHashCode());
                    Command();
                }
            };
        }
Exemplo n.º 2
0
        private void Command()
        {
            bool move = enumerator.MoveNext();

            if (this.handlers.Count == 0)
            {
                move = false;
            }
            if (move)
            {
                IHandler handler = (IHandler)enumerator.Current;

                if (handler.Skip())
                {
                    Command();
                }

                if (handler.Action())
                {
                    Command();
                }


                Receiver = null;
                Feedback(handler);
                PortConnect.AddReceiver(Receiver);
                Console.WriteLine("Добавил recceiver: " + Receiver.GetHashCode());

                if (handler.Request() != null)
                {
                    foreach (string r in handler.Request())
                    {
                        PortConnect.Write(r);
                    }
                }
            }
            else
            {
                Console.WriteLine("ProcessNewCard_Конец_Опреации");
            }
        }