stopRollerController.cs 3.6 KB
using DeviceLibrary;
using OnlineStore;
using OnlineStore.Common;
using System;
using System.Security.Cryptography;
using System.Web.Http;
using WebApi.Schemas;

namespace WebApi.Controllers
{
    [RoutePrefix("api")]
    public class stopRollerController : ApiController
    {
        [HttpPost]
        public Result_20861 Get([FromBody] InParam_20861 body)
        {
            Result_20861 result = new Result_20861();
            try
            {
                var requestData = body;
                if (string.IsNullOrEmpty(requestData.cid))
                {
                    result.code = 202;
                    result.status = "cid is empty";
                }
                else
                {
                    //IDLE
                    //ERROR
                    if (body.cid.Equals("B1") || body.cid.Equals("B2"))
                    {
                        if (!RobotManage.isRunning)
                        {
                            result.code = 201;
                            result.status = crc.GetString("Res0079", "机器尚未启动不能呼叫Agv");
                            return result;
                        }
                    }
                    else
                    {
                        result.code = -1;
                        result.status = $" cid {body.cid} not exist";
                    }
                    switch (body.cid)
                    {
                        case "B1"://NS200入料口上料任务
                            if (RobotManage.mainMachine.RightMoveInfo.MoveStep >= MoveStep.R40_InShelf)
                            {
                                result.code = 201;
                                result.status = crc.GetString("Res0109.d647c69c", "入料口正在进料");
                            }
                            else if (RobotManage.mainMachine.RightMoveInfo.MoveStep >= MoveStep.R30_OutShelf)
                            {
                                result.code = 202;
                                result.status = crc.GetString("Res0110.97f61551", "入料口正在出料");
                            }
                            else
                            {
                                result.status = "IDLE";
                            }
                            break;
                        case "B2"://NS200出料口上料任务
                            if (RobotManage.mainMachine.LeftMoveInfo.MoveStep >= MoveStep.L60_InShelf)
                            {
                                result.code = 201;
                                result.status = crc.GetString("Res0113.15f652b4", "出料口正在入料");
                            }
                            else if (RobotManage.mainMachine.LeftMoveInfo.MoveStep >= MoveStep.L50_OutShelf)
                            {
                                result.code = 202;
                                result.status = crc.GetString("Res0114.b6a35f01", "出料口正在出料");
                            }
                            else
                            {
                                result.status = "IDLE";
                            }
                            break;
                    }
                }

                LogUtil.info($"AGV请求 滚筒停止:【{JsonHelper.SerializeObject(body)} 】【 {JsonHelper.SerializeObject(result)}】");

            }
            catch (Exception ex)
            {
                result.code = 204;
                result.status = $"parse error:{ex.Message}";
                LogUtil.error("stopRoller", ex);
            }

            return result;
        }

    }
}