Exemple #1
0
        private void AgvMissionSrv_AgvInMissChangeEvent(AgvInMisson mission, bool arg2)
        {
            if (arg2)
            {
                InMissionItemAddEvent?.Invoke(InMissions, new InMissionItem
                {
                    Id             = mission.Id,
                    ClientId       = mission.ClientId,
                    Type           = mission.Type,
                    Process        = mission.Process,
                    CarryProcess   = mission.CarryProcess,
                    CreateDateTime = mission.CreateDateTime,
                });
                return;
            }

            var item = InMissions.Where(x => x.Id == mission.Id && x.Process != AgvInMissonProcessEnum.CLOSE).FirstOrDefault();

            if (item != null)
            {
                item.Process        = mission.Process;
                item.CarryProcess   = mission.CarryProcess;
                item.CreateDateTime = mission.CreateDateTime;
            }
        }
Exemple #2
0
        private async void SendInMission(AgvInMisson mission)
        {
            SendStationClientStateMessage(
                new StationClientState {
                State = StationClientStateEnum.INFO, Message = "入库请求:" + mission.Type.EnumToString(), CreateDateTime = DateTime.Now
            });

            await signalrService.Send(AgvSendActionEnum.SendInMission.EnumToString(), mission);
        }
Exemple #3
0
        private void OnAgvInMissonEvent(AgvInMisson mission)
        {
            //毛坯空箱回库
            if (mission.Id.Equals(Station_Id + "_EMPTYOUT"))
            {
                if (mission.Process > AgvInMissonProcessEnum.AGVPICKEDANDLEAVE && mission.Process != AgvInMissonProcessEnum.CANCEL & mission.Process != AgvInMissonProcessEnum.CANCELED)
                {
                    bool empty_out     = false;
                    var  ret_empty_out = StationDevice.GetEmptyOutState(ref empty_out);
                    if (ret_empty_out == true && empty_out == true)
                    {
                        StationDevice.SetEmptyOutFin(true);

                        bool empty_out_confirm = true;

                        while (empty_out_confirm)
                        {
                            ret_empty_out = StationDevice.GetEmptyOutState(ref empty_out_confirm);
                            if (ret_empty_out == true && empty_out_confirm == false)
                            {
                                StationDevice.SetEmptyOutFin(false);
                            }
                        }
                    }
                }
            }
            //成品回库
            if (mission.Id.Equals(Station_Id + "_FINOUT"))
            {
                if (mission.Process > AgvInMissonProcessEnum.AGVPICKEDANDLEAVE && mission.Process != AgvInMissonProcessEnum.CANCEL & mission.Process != AgvInMissonProcessEnum.CANCELED)
                {
                    bool fin_out     = false;
                    var  ret_fin_out = StationDevice.GetFinOutState(ref fin_out);
                    if (ret_fin_out == true && fin_out == true)
                    {
                        StationDevice.SetFinOutFin(true);

                        bool fin_out_confirm = true;

                        while (fin_out_confirm)
                        {
                            ret_fin_out = StationDevice.GetFinOutState(ref fin_out_confirm);
                            if (ret_fin_out == true && fin_out_confirm == false)
                            {
                                StationDevice.SetFinOutFin(false);
                            }
                        }
                    }
                }
            }
        }
Exemple #4
0
        public AgvInMisson SendMissonInOrder(AgvInMisson message)
        {
            var hubContext2 = GlobalHost.ConnectionManager.GetHubContext <NoticeHub>();

            try
            {
                var    client = new Client(StaticData.AppHostConfig.AgvServiceUrl);
                string id     = $"{message.Id}_{ message.TimeId}";
                StaticData.OrderName.Add(id);
                client.TransportOrders2(id, message.AgvMissonToTransportOrder());
                hubContext2.Clients.All.queryOrder(id);
                return(message);
            }
            catch (Exception ex)
            {
                hubContext2.Clients.All.pushSystemMessage($"AGV调度服务连接失败,异常信息:{ex.Message}", new { state = false });

                return(message);
            }
        }
Exemple #5
0
        public void sendTask(string id)
        {
            TransportOrder order = new TransportOrder();
            string         name  = $"{id}_{ DateTime.Now.ToFileTime()}";

            try
            {
                order = new AgvInMisson()
                {
                    Id = id
                }.AgvMissonToTransportOrder(name);
                client.TransportOrders2(name, order);
                StaticData.OrderName.Add(name);
                Clients.All.queryOrder(name);
            }
            catch (Exception ex)
            {
                if (Context != null && !string.IsNullOrEmpty(Context.ConnectionId))
                {
                    Clients.Client(Context.ConnectionId).pushSystemMessage($"发送订单失败,异常信息:{ex.Message}", new { state = false });
                }
            }
        }
Exemple #6
0
 public static TransportOrder AgvMissonToTransportOrder(this AgvInMisson agvInMisson, string name = "")
 {
     return(GetOrder(agvInMisson.Id, name));
 }
Exemple #7
0
 public void SendInMission(AgvInMisson message)
 {
     Clients.All.receiveInMissionMessage(message);
 }