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; } }
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); }
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); } } } } } }
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); } }
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 }); } } }
public static TransportOrder AgvMissonToTransportOrder(this AgvInMisson agvInMisson, string name = "") { return(GetOrder(agvInMisson.Id, name)); }
public void SendInMission(AgvInMisson message) { Clients.All.receiveInMissionMessage(message); }