示例#1
0
文件: CInTask.cs 项目: wg3281/JZFJ
        public void StopScanTask()
        {
            taskStatus = TaskStatus.Stop;
            if (thread != null)
            {
                while (thread.IsAlive)
                {
                    Thread.Sleep(300);
                }
                thread = null;


                if (OnTaskStatusChanged != null)
                {
                    OnTaskStatusChanged.Invoke(null, new EventArgs());
                }
                monitorLog             = MonitorLog.NewMonitorLog();
                monitorLog.LOGNAME     = "线程操作";
                monitorLog.LOGINFO     = "补货线程停止!";
                monitorLog.LOGLOCATION = "线程";
                monitorLog.LOGTYPE     = 0;
                monitorLog.Save();

                Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);

                config.AppSettings.Settings["IsStart"].Value = false.ToString();
                config.Save(ConfigurationSaveMode.Modified);
                ConfigurationManager.RefreshSection("appSettings");
            }
            OnOnTaskStopFinished();
        }
示例#2
0
        public void NotifyTaskStatusChange(QuestTask task)
        {
            OnTaskStatusChanged?.Invoke(this, task);
            if (task.Status == Status.Completed)
            {
                QuestManager.Notifications.taskCompleted.Show(task.Description);
                var next = tasks.FirstOrDefault(x => x.Status == Status.Inactive);
                if (next != null)
                {
                    next.Activate();
                }
            }

            if (task.Status == Status.Failed)
            {
                QuestManager.Notifications.taskFailed.Show(task.Description);
                if (!task.Optional)
                {
                    task.owner.Status = Status.Failed;
                }
                else
                {
                    var next = tasks.FirstOrDefault(x => x.Status == Status.Inactive);
                    if (next != null)
                    {
                        next.Activate();
                    }
                }
            }

            if (AutoComplete && CanComplete())
            {
                Complete();
            }
        }
示例#3
0
 private void NotifyTaskStatusChanged(Quest quest, QuestTask task)
 {
     OnTaskStatusChanged?.Invoke(quest, task);
     if (QuestManager.SavingLoading.autoSave)
     {
         QuestManager.Save();
     }
 }
示例#4
0
        public void StartScanTask()
        {
            taskStatus = TaskStatus.Run;

            if (Issuedthread == null)
            {
                Issuedthread = new Thread(ScanTask);
                Issuedthread.IsBackground = true;
                Issuedthread.Name         = "IssuedthreadTask";
                Issuedthread.Start();

                monitorLog             = MonitorLog.NewMonitorLog();
                monitorLog.LOGNAME     = "线程操作";
                monitorLog.LOGINFO     = "分拣任务下达线程开始!";
                monitorLog.LOGLOCATION = "线程";
                monitorLog.LOGTYPE     = 0;
                monitorLog.Save();
            }

            if (Arrivedthread == null)
            {
                Arrivedthread = new Thread(FinishTask);
                Arrivedthread.IsBackground = true;
                Arrivedthread.Name         = "ArrivedthreadTask";
                Arrivedthread.Start();


                monitorLog             = MonitorLog.NewMonitorLog();
                monitorLog.LOGNAME     = "线程操作";
                monitorLog.LOGINFO     = "分拣任务到达线程开始!";
                monitorLog.LOGLOCATION = "线程";
                monitorLog.LOGTYPE     = 0;
                monitorLog.Save();
            }
            else
            {
                monitorLog             = MonitorLog.NewMonitorLog();
                monitorLog.LOGNAME     = "线程操作";
                monitorLog.LOGINFO     = "分拣任务到达线程正在运行!";
                monitorLog.LOGLOCATION = "线程";
                monitorLog.LOGTYPE     = 0;
                monitorLog.Save();
            }

            if (OnTaskStatusChanged != null)
            {
                OnTaskStatusChanged.Invoke(null, new EventArgs());
            }

            Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);

            config.AppSettings.Settings["IsStart"].Value = true.ToString();
            config.Save(ConfigurationSaveMode.Modified);
            ConfigurationManager.RefreshSection("appSettings");
        }
示例#5
0
文件: CInTask.cs 项目: wg3281/JZFJ
        public void StartScanTask()
        {
            //设置任务开始状态
            taskStatus = TaskStatus.Run;

            if (thread == null)
            {
                thread = new Thread(ScanTask);
                thread.IsBackground = true;
                thread.Name         = "PLCBHTask";
                thread.Start();

                if (OnTaskStatusChanged != null)
                {
                    OnTaskStatusChanged.Invoke(null, new EventArgs());
                }
                monitorLog             = MonitorLog.NewMonitorLog();
                monitorLog.LOGNAME     = "线程操作";
                monitorLog.LOGINFO     = "补货线程开始!";
                monitorLog.LOGLOCATION = "线程";
                monitorLog.LOGTYPE     = 0;
                monitorLog.Save();
            }
            //else if (taskStatus == TaskStatus.Stop)
            //{
            //    thread.Start();
            //    taskStatus = TaskStatus.Run;
            //    if (OnTaskStatusChanged != null)
            //    {
            //        OnTaskStatusChanged.Invoke(null, new EventArgs());
            //    }
            //    monitorLog = MonitorLog.NewMonitorLog();
            //    monitorLog.LOGNAME = "线程操作";
            //    monitorLog.LOGINFO = "补货线程开始!";
            //    monitorLog.LOGLOCATION = "线程";
            //    monitorLog.LOGTYPE = 0;
            //    monitorLog.Save();
            //}
            //else if (taskStatus == TaskStatus.Suspend)
            //{
            //    thread.Resume();
            //    taskStatus = TaskStatus.Run;
            //    if (OnTaskStatusChanged != null)
            //    {
            //        OnTaskStatusChanged.Invoke(null, new EventArgs());
            //    }
            //    monitorLog = MonitorLog.NewMonitorLog();
            //    monitorLog.LOGNAME = "线程操作";
            //    monitorLog.LOGINFO = "补货线程恢复!";
            //    monitorLog.LOGLOCATION = "线程";
            //    monitorLog.LOGTYPE = 0;
            //    monitorLog.Save();
            //}
        }
示例#6
0
        public void StopScanTask()
        {
            //只暂停下达任务,不暂停到达任务
            //分拣线需要到达任务将皮带上的烟分拣完
            taskStatus = TaskStatus.Stop;
            if (Issuedthread != null)
            {
                while (Issuedthread.IsAlive)
                {
                    Thread.Sleep(300);
                }
                Issuedthread           = null;
                monitorLog             = MonitorLog.NewMonitorLog();
                monitorLog.LOGNAME     = "线程操作";
                monitorLog.LOGINFO     = "分拣任务下达线程停止!";
                monitorLog.LOGLOCATION = "线程";
                monitorLog.LOGTYPE     = 0;
                monitorLog.Save();



                //while (Arrivedthread.IsAlive)
                //{
                //    Thread.Sleep(300);
                //}
                //Arrivedthread = null;

                //monitorLog = MonitorLog.NewMonitorLog();
                //monitorLog.LOGNAME = "线程操作";
                //monitorLog.LOGINFO = "分拣任务到达线程停止!";
                //monitorLog.LOGLOCATION = "线程";
                //monitorLog.LOGTYPE = 0;
                //monitorLog.Save();


                if (OnTaskStatusChanged != null)
                {
                    OnTaskStatusChanged.Invoke(null, new EventArgs());
                }


                Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);

                config.AppSettings.Settings["IsStart"].Value = false.ToString();
                config.Save(ConfigurationSaveMode.Modified);
                ConfigurationManager.RefreshSection("appSettings");
            }
            OnOnTaskStopFinished();
        }
示例#7
0
文件: CInTask.cs 项目: wg3281/JZFJ
 public void SuspendScanTask()
 {
     if (thread != null)
     {
         thread.Suspend();
         taskStatus = TaskStatus.Suspend;
         if (OnTaskStatusChanged != null)
         {
             OnTaskStatusChanged.Invoke(null, new EventArgs());
         }
         monitorLog             = MonitorLog.NewMonitorLog();
         monitorLog.LOGNAME     = "线程操作";
         monitorLog.LOGINFO     = "补货线程暂停!";
         monitorLog.LOGLOCATION = "线程";
         monitorLog.LOGTYPE     = 0;
         monitorLog.Save();
     }
 }