Example #1
0
        public static Hole ToModel(this HoleDto dto)
        {
            var model = new Hole();

            model.Id       = dto.Id ?? 0;
            model.CourseId = dto.CourseId;
            model.Number   = dto.Number;
            model.Par      = dto.Par;

            return(model);
        }
Example #2
0
        public static HoleDto ToDto(this Hole model)
        {
            var dto = new HoleDto();

            dto.Id        = model.Id == 0 ? (long?)null : model.Id;
            dto.CourseId  = model.CourseId;
            dto.Number    = model.Number;
            dto.Par       = model.Par;
            dto.WistiaKey = model.WistiaKey;

            return(dto);
        }
Example #3
0
        private HoleDto getUseTip(string suckType)
        {
            HoleDto dto = null;

            foreach (string rackName in tipBoxRackDict.Keys)
            {
                TipBoxRackModel rackModel = tipBoxRackDict[rackName];
                if (!suckType.Equals(rackModel.RackType.ToString()))
                {
                    continue;
                }
                List <int> list = rackModel.RackDataList;
                for (int i = 0; i < list.Count; i++)
                {
                    if (0.Equals(list[i]))
                    {
                        continue;
                    }
                    dto = new HoleDto(rackModel.RackName, i, 1);
                    return(dto);
                }
            }
            return(dto);
        }
Example #4
0
        public object Execute(int eventCode, object message)
        {
            object obj = null;

            switch (eventCode)
            {
            //获取当前板架模型
            case TipBoxRackEventCode.GETCURRENTRACKMODEL:
            {
                if (tipBoxRackDict.ContainsKey(currentRackName))
                {
                    obj = tipBoxRackDict[currentRackName];
                }
            }
            break;

            //获取板架模型
            case TipBoxRackEventCode.GETRACKMODEL:
            {
                if (tipBoxRackDict.ContainsKey(message.ToString()))
                {
                    obj = tipBoxRackDict[message.ToString()];
                }
            }
            break;

            //设置当前板架
            case TipBoxRackEventCode.SETCURRENTRACK:
            {
                if (!message.ToString().Equals(currentRackName) && WindowStartViewController.Instance != null && WindowStartViewController.Instance.PageSuckerRack != null)
                {
                    //设置当前板架名称
                    currentRackName = message.ToString();
                    PageTipBoxRackView view = WindowStartViewController.Instance.PageSuckerRack as PageTipBoxRackView;
                    //更新当前板架信息
                    view.ViewModel.Model.UpdateCurrentRack(tipBoxRackDict[currentRackName]);
                }
            }
            break;

            //设置孔信息
            case TipBoxRackEventCode.SETHOLE:
            {
                HoleDto         dto   = message as HoleDto;
                TipBoxRackModel model = null;
                if ("CurrentTipRack".Equals(dto.RackName))
                {
                    model = tipBoxRackDict[currentRackName];
                }
                else
                {
                    model = tipBoxRackDict[dto.RackName];
                }
                model.RackDataList[dto.Index] = dto.Hole;

                //通知界面更新
                if (WindowStartViewController.Instance != null && WindowStartViewController.Instance.PageSuckerRack != null)
                {
                    PageTipBoxRackView view = WindowStartViewController.Instance.PageSuckerRack as PageTipBoxRackView;
                    if ("CurrentTipRack".Equals(dto.RackName))
                    {
                        view.ViewModel.Model.UpdateCurrentRack(tipBoxRackDict[currentRackName]);
                        view.ViewModel.Model.UpdateRack(tipBoxRackDict[currentRackName]);
                    }
                    else
                    {
                        view.ViewModel.Model.UpdateRack(tipBoxRackDict[currentRackName]);
                    }
                }
            }
            break;

            //设置大吸头板
            case TipBoxRackEventCode.SETBIGRACK:
            {
                tipBoxRackDict[currentRackName].RackType = 0;
                CurrentRackAndSelRackUpdate();
            }
            break;

            //设置小吸头板
            case TipBoxRackEventCode.SETSMALLRACK:
            {
                tipBoxRackDict[currentRackName].RackType = 2;
                CurrentRackAndSelRackUpdate();
            }
            break;

            //填满吸头板
            case TipBoxRackEventCode.FULLRACK:
            {
                List <int> dataList = tipBoxRackDict[currentRackName].RackDataList;
                for (int i = 0; i < dataList.Count; i++)
                {
                    dataList[i] = 1;
                }
                CurrentRackAndSelRackUpdate();
            }
            break;

            //清空吸头板
            case TipBoxRackEventCode.CLEARRACK:
            {
                List <int> dataList = tipBoxRackDict[currentRackName].RackDataList;
                for (int i = 0; i < dataList.Count; i++)
                {
                    dataList[i] = 0;
                }
                CurrentRackAndSelRackUpdate();
            }
            break;

            //保存配置文件
            case TipBoxRackEventCode.SAVEFILE:
            {
                saveFile();
            }
            break;

            //获取一个可用吸头
            case TipBoxRackEventCode.GETUSETIP:
            {
                obj = getUseTip(message.ToString());
            }
            break;

            case TipBoxRackEventCode.SETNOHOLE:
            {
                HoleDto         dto   = message as HoleDto;
                TipBoxRackModel model = null;

                //if ("CurrentTipRack".Equals(dto.RackName))
                //    model = tipBoxRackDict[currentRackName];
                //else
                model = tipBoxRackDict[dto.RackName];
                model.RackDataList[dto.Index] = 0;

                //通知界面更新
                if (WindowStartViewController.Instance != null && WindowStartViewController.Instance.PageSuckerRack != null)
                {
                    PageTipBoxRackView view = WindowStartViewController.Instance.PageSuckerRack as PageTipBoxRackView;
                    if (currentRackName.Equals(dto.RackName))
                    {
                        view.ViewModel.Model.UpdateCurrentRack(tipBoxRackDict[currentRackName]);
                        view.ViewModel.Model.UpdateRack(tipBoxRackDict[currentRackName]);
                    }
                    else
                    {
                        view.ViewModel.Model.UpdateRack(tipBoxRackDict[dto.RackName]);
                    }
                }
            }
            break;

            default:
                break;
            }
            return(obj);
        }
Example #5
0
        /// <summary>
        /// 获取吸头
        /// </summary>
        public HoleDto GetSucker(string suctionType, string aisleId)
        {
            //拿到一个可用吸头位置
            HoleDto dto = TipBoxRackManager.Instance.Execute(TipBoxRackEventCode.GETUSETIP, suctionType) as HoleDto;

            //SuckModel sm = ManagerPlant.suckerManager.GetSuckBySuctionType(suctionType);
            //获取吸头到加样臂

            /*
             * <DispatchCmd strMemo="取吸头" strNodeName="PipArm" strCmdName="GetTips" >
             * <lpCmdArgs>
             * <Args dwTipsMask="1" anTipTypeArr="0,0,0" astrRackArr="Diti1,Diti1,Diti1" awHoleArr="0,1,2"/>
             * </lpCmdArgs>
             * </DispatchCmd>
             */
            if (dto == null)
            {
                return(null);
            }
            XmlDocument xd = new XmlDocument();

            xd.Load("Config/CmdConfig.xml");
            XmlNode cmdNode = xd.SelectSingleNode("Cmds/Cmd/DispatchCmd[@strMemo='取吸头']");
            XmlAttributeCollection attList = cmdNode.FirstChild.FirstChild.Attributes;

            attList["dwTipsMask"].Value = aisleId;

            if (aisleId.Equals("4"))
            {
                attList["anTipTypeArr"].Value = "0,0," + suctionType;
                attList["astrRackArr"].Value  = "TipBoxRack1,TipBoxRack1," + dto.RackName;
                attList["awHoleArr"].Value    = "0,0" + dto.Index.ToString();
            }
            else
            {
                if (aisleId.Equals("1"))
                {
                    attList["anTipTypeArr"].Value = suctionType + ",0,0";
                    attList["astrRackArr"].Value  = dto.RackName + ",TipBoxRack1,TipBoxRack1";
                    attList["awHoleArr"].Value    = dto.Index.ToString() + ",0,0";
                }
                else if (aisleId.Equals("2"))
                {
                    attList["anTipTypeArr"].Value = "0," + suctionType + ",0";
                    attList["astrRackArr"].Value  = "TipBoxRack1," + dto.RackName + ",TipBoxRack1";
                    attList["awHoleArr"].Value    = "0," + dto.Index.ToString() + ",0";
                }
            }
            XmlElement el = cmdNode as XmlElement;

            WaitEvent.Reset();
            ManagerPlant.aiKangManager.ClsModule.SendXmlElement(el, "Module_AiKang_Service");
            WaitEvent.WaitOne();
            //判断是否取到吸头
            //设置为不可用
            holeDto.Change(dto.RackName, dto.Index, 0);
            TipBoxRackManager.Instance.Execute(TipBoxRackEventCode.SETNOHOLE, holeDto);
            if (IsGetTip)
            {
                return(holeDto);
            }
            else
            {
                InitDropTip();
                Init();
                return(null);
            }
        }