Exemple #1
0
        /// <summary>
        /// img click 事件接受器
        /// </summary>
        /// <param name="sender">事件发起方</param>
        /// <param name="e">参数</param>
        private void img_Click(object sender, EventArgs e)
        {
            SkinPictureBox img  = sender as SkinPictureBox;
            RailID         id   = this.ConvertNameToID(img.Name);
            RailMode       rail = this.RailDic[id];

            if (this.IsAllStoped)
            {
                switch (rail.Progress)
                {
                // 如果 其他轨道 被选中,并且所有 轨道 都没有在工作, 则特定 轨道 被选中,其他都清除状态
                // 如果所有的 轨道 都没有被选中,则直接选中
                case RailProgress.UnSelected:
                case RailProgress.Stop:
                    this.ClearOtherRail(id);
                    rail.Progress = RailProgress.Selected;
                    break;

                // 再次单击已选中轨道,取消选中
                case RailProgress.Selected:
                    rail.Progress = RailProgress.UnSelected;
                    break;

                // 单击已经清理过的轨道, 弹窗提示
                case RailProgress.Done:
                    DialogResult result = MessageBox.Show("该轨道已经清理过,是否确认重新清理?", "确认对话框", MessageBoxButtons.YesNo);
                    if (result == DialogResult.Yes)
                    {
                        rail.Progress = RailProgress.Selected;
                    }
                    break;
                }
            }
        }
Exemple #2
0
        /// <summary>
        /// 设置当前工作轨道的清理进度
        /// </summary>
        /// <param name="step"></param>
        public bool SetRailProgress(CleanSteps step)
        {
            RailMode mode = GetWorkingRail();

            if (mode == null)
            {
                return(false);
            }

            switch (step)
            {
            case CleanSteps.CleanRail:
                mode.Progress = RailProgress.CleanRail;
                break;

            case CleanSteps.DropAlcohol:
                mode.Progress = RailProgress.DropAlcohol;
                break;

            case CleanSteps.CoveredWithGrease:
                mode.Progress = RailProgress.DropAlcohol;
                break;

            case CleanSteps.Done:
                mode.Progress = RailProgress.Done;
                mode.Status   = RailStatus.Ready;
                break;
            }

            return(true);
        }
Exemple #3
0
 /// <summary>
 /// 清除 除了给定轨道之外, 其他轨道的进度状态--选中状态。
 /// </summary>
 /// <param name="specificRail">特定的轨道</param>
 private void ClearOtherRail(RailID id)
 {
     foreach (var item in this.RailDic)
     {
         RailMode rail = item.Value;
         if (rail.ID != id && rail.Progress == RailProgress.Selected)
         {
             rail.Progress = RailProgress.UnSelected;
         }
     }
 }
Exemple #4
0
        /// <summary>
        /// 对应暂停按钮, 改变轨道状态为暂停。
        /// </summary>
        public bool Pause()
        {
            RailMode rail = this.GetRunningRail();

            if (rail != null)
            {
                rail.Status = RailStatus.Pause;
                return(true);
            }

            return(false);
        }
Exemple #5
0
        public bool Continue()
        {
            RailMode rail = this.GetPauseRail();

            if (rail != null)
            {
                rail.Status = RailStatus.Running;
                return(true);
            }

            return(false);
        }
Exemple #6
0
        /// <summary>
        /// 给手动清理设置轨道状态用的。因为手动清理轨道没有因为步骤变化图标
        /// </summary>
        /// <param name="railStatus"></param>
        /// <returns></returns>
        public bool SetRailStatus(RailStatus railStatus)
        {
            RailMode mode = GetWorkingRail();

            if (mode == null)
            {
                return(false);
            }

            mode.Status = railStatus;

            return(true);
        }
Exemple #7
0
        /// <summary>
        /// 完成轨道清理
        /// </summary>
        /// <returns></returns>
        public bool FinishClean()
        {
            RailMode rail = this.GetRunningRail();

            if (rail != null)
            {
                rail.Progress = RailProgress.Done;
                rail.Status   = RailStatus.Ready;
                return(true);
            }

            return(false);
        }
Exemple #8
0
        /// <summary>
        /// 对应停止按钮, 如果返回-1:说明当前没有工作的轨道,弹窗提示用户。
        /// </summary>
        public bool Stop()
        {
            RailMode rail = this.GetWorkingRail();

            if (rail != null)
            {
                rail.Progress = RailProgress.Stop;
                rail.Status   = RailStatus.Ready;
                return(true);
            }

            return(false);
        }
Exemple #9
0
        /// <summary>
        /// 1.对应开始按钮, 当启动开始时,改变轨道的清理状态,并且返回轨道号
        /// 2.如果没有选定轨道, 返回 -1, UI 弹窗显示未选中
        /// 3.对于没有
        /// </summary>
        /// <returns>返回 当前工作的 轨道号</returns>
        public bool Start()
        {
            RailMode rail = this.GetSelectedRail();

            if (rail != null)
            {
                rail.Progress = RailProgress.CleanRail;
                rail.Status   = RailStatus.Running;
                return(true);
            }

            return(false);
        }
Exemple #10
0
        private RailMode GetWorkingRail()
        {
            RailMode mode = null;

            foreach (var item in this.RailDic)
            {
                if (item.Value.Status != RailStatus.Ready)
                {
                    mode = item.Value;
                }
            }

            return(mode);
        }
Exemple #11
0
 private void InitRails(List <SkinPictureBox> rails)
 {
     if (rails != null && rails.Count > 0)
     {
         foreach (var item in rails)
         {
             item.Click += this.img_Click;
             RailID   id   = this.ConvertNameToID(item.Name);
             RailMode mode = new RailMode {
                 ID = id
             };
             mode.ImageBox = item;
             mode.Status   = RailStatus.Ready;
             mode.Progress = RailProgress.UnSelected;
             this.RailDic.Add(id, mode);
         }
     }
 }