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); }
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); }
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); }
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); }
/// <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); } }