Exemple #1
0
        public bool CanRequest()
        {
            missonNodes.Clear();
            var agv_outmissions_atpreplace = missionContext.undo_outmissions.Where(x => x.Process == AgvMissonProcessEnum.AGVATPREPLACE).ToList() ?? new List <AgvOutMissonModel>();

            foreach (var mission in agv_outmissions_atpreplace)
            {
                var brother_mission_type = missionContext.brotherMissionType[mission.Type];
                var brother_inmission    = missionContext.MissionInNodes
                                           .Where(x => x.ClientId == mission.ClientId &&
                                                  x.Type == brother_mission_type &&
                                                  x.Process >= AgvMissonProcessEnum.NEW && x.Process < AgvMissonProcessEnum.AGVPICKEDANDLEAVE)
                                           .FirstOrDefault();

                //var feeding_signal = feedingSignals.Where(x => x.ClientId == mission.ClientId && x.Type == mission.Type).FirstOrDefault() ?? new AgvFeedingSignal { Value = true };

                //测试用 料道信号判断是否单元入料道是否有箱子--忽略
                var feeding_signal = new AgvFeedingSignal {
                    Value = false
                };


                if (brother_inmission == null && feeding_signal.Value == false && mission.Process == AgvMissonProcessEnum.AGVATPREPLACE)
                {
                    missonNodes.Add(mission);
                }
            }
            return(missonNodes.Count > 0);
        }
Exemple #2
0
        public bool CanRequest()
        {
            missonModels.Clear();
            var agv_inmissions_atprepick = missionContext.undo_inmissions.Where(x => x.Process == AgvMissonProcessEnum.AGVATPREPICK).ToList() ?? new List <AgvInMissonModel>();

            foreach (var mission in agv_inmissions_atprepick)
            {
                //var brother_mission_type = brotherMissionType[mission.Type];
                //var brother_inmission = OutMissions
                //    .Where(x => x.ClientId == mission.ClientId
                //        && x.Type == brother_mission_type
                //        && x.Process >= AgvOutMissonProcessEnum.NEW && x.Process < AgvOutMissonProcessEnum.AGVPICKEDANDLEAVE)
                //    .FirstOrDefault();

                //var feeding_signal = feedingSignals.Where(x => x.ClientId == mission.ClientId && x.Type == mission.Type).FirstOrDefault() ?? new AgvFeedingSignal { Value = true };

                //测试用 料道信号判断是否单元入料道是否有箱子--忽略
                var feeding_signal = new AgvFeedingSignal {
                    Value = true
                };


                if (feeding_signal.Value == true && mission.Process == AgvMissonProcessEnum.AGVATPREPICK)
                {
                    missonModels.Add(mission);
                }
            }
            return(missonModels.Count > 0);
        }
Exemple #3
0
        public void UpdataFeedingSignal(AgvFeedingSignal signal)
        {
            var sig = feedingSignals.Where(x => x.Id == signal.Id).FirstOrDefault();

            if (sig == null)
            {
                feedingSignals.Add(signal);
            }
            else
            {
                sig.Value = signal.Value;
            }
        }
Exemple #4
0
 public SendFeedingSignalMessage(AgvFeedingSignal model)
 {
     Model = model;
 }
Exemple #5
0
 public void SendFeedingSignalMessage(AgvFeedingSignal message)
 {
     Clients.All.receiveFeedingSignalMessage(message);
 }