コード例 #1
0
        private void LetsDoIt(ATTask atTask)
        {
            ExecuteResult result = null;

            if (_context.IsAvaliable())
            {
                ushort timeout = 10;
                Log.Info("_context valid, start robot");
                try
                {
                    result          = new ConfigCommandExecutor().Execute(task, _context, timeout);
                    result.ErrorMsg = "OK";
                }
                catch (Exception ex)
                {
                    Log.Error(ex.Message);
                    result.ErrorMsg = "FAILED";
                }
            }
            else
            {
                Log.Error("_context Busy, can't run.");
                result = new ExecuteResult
                {
                    IsOK      = false,
                    ErrorCode = (int)Errors.ERR_NOT_CONNECTED,
                    ErrorMsg  = "FAILED",
                    Task      = atTask,
                    Elapsed   = 0,
                    Finished  = DateTime.Now
                };
                foreach (var ac in atTask.AtCommands.AtCommands)
                {
                    ATCommandResult r = new ATCommandResult();
                    r.GetJsonResult(ac.ToATString());
                    result.AddAtResult(r);
                }
                result.Task.Status = DACTaskStatus.FAIL;
            }

            if (atTask.Consumer != null)
            {
                atTask.Consumer(result);
            }
            this.Stop();
        }
コード例 #2
0
        public void TestConfigCommandExecutor()
        {
            ConfigCommand cfgCmd = new ConfigCommand();

            cfgCmd.AddRange(new List <ATCommand> {
                new SetIP("{'ip':'192.168.1.145'}"), new SetPort("{'port':5050}"), new SetReset()
            });
            string        dtu     = "12345678";
            GprsDtuServer _server = new GprsDtuServer(5055);

            _server.Start();
            DacTaskContext context = new DacTaskContext()
            {
                DtuConnection = new GprsDtuConnection(_server),
                Node          = new DtuNode()
                {
                    DtuCode = dtu
                }
            };

            Thread.Sleep(8000);

            //conn = (GprsDtuConnection) _server.GetConnection(new DtuNode{DtuCode = dtu});

            if (context.DtuConnection != null && context.DtuConnection.IsAvaliable())
            {
                var cce = new ConfigCommandExecutor();
                //cce.Execute(conn, cfgCmd, 12000);
                ExecuteResult result = cce.Execute(null, context, 12000);
                // Assert.IsTrue(result.IsOK);
            }
            else
            {
                //Assert.
            }
        }