示例#1
0
        public void TestAtCommandExecutor()
        {
            GprsDtuServer _server = new GprsDtuServer(5055);

            _server.Start();
            string dtu = "12345678";

            Thread.Sleep(500);
            if (client.Connect(12345678, "22222222", "127.0.0.2"))
            {
                Console.WriteLine("Connected");
            }
            else
            {
                Console.WriteLine("ERROR");
            }
            client.OnReceived = (msg, len) => client.Send("OK");
            Thread.Sleep(500);
            GprsDtuConnection conn = (GprsDtuConnection)_server.GetConnection(new DtuNode {
                DtuCode = dtu
            });
            ATCommand       cmd = new EnterConfig();
            CommandExecutor ce  = new CommandExecutor();

            Assert.IsNotNull(conn);

            if (conn != null && conn.IsAvaliable())
            {
                ATCommandResult r = ce.Execute(conn, cmd);
                Assert.IsTrue(r.IsOK);
            }

            if (conn != null && conn.IsAvaliable())
            {
                cmd = new SetPort("{'port':5008}");
                ATCommandResult r = ce.Execute(conn, cmd);
                Assert.IsTrue(r.IsOK);
            }

            if (conn != null && conn.IsAvaliable())
            {
                cmd = new SetPort("{'port':5009");
                ATCommandResult r = ce.Execute(conn, cmd);
                Assert.IsTrue(r.IsOK);
            }
        }
示例#2
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();
        }