/// <summary> /// 初始化界面 /// </summary> private void CarInit(object obj) { try { if (obj == null) { return; } if (!this.m_canvas.IsHandleCreated) { return; } this.m_canvas.Invoke((EventHandler)(delegate { IList <CarInfo> Cars = obj as IList <CarInfo>; agvs.Clear(); AllLands.Clear(); AllLands = AGVDAccess.AGVClientDAccess.LoadLandByCondition("1=1"); List <IDrawObject> agvobjs = m_data.ActiveLayer.Objects.Where(p => p.Id == "AGVTool").ToList(); m_data.DeleteObjects(agvobjs); foreach (CarInfo carinfo in Cars) { AGVTool agv = new AGVTool(); agv.HandState = carinfo.JCState; agv.Agv_id = carinfo.AgvID.ToString(); //LandmarkInfo CurLand = AllLands.Where(p => p.LandmarkCode == carinfo.CurrSite.ToString()).FirstOrDefault(); //if (CurLand != null) //{ agv.Position = new UnitPoint(CurLand.LandX, CurLand.LandY); } //else //{ agv.Position = new UnitPoint(carinfo.X, carinfo.Y); } agv.Position = new UnitPoint(carinfo.X, carinfo.Y); if (carinfo.bIsCommBreak) { agv.IsViewable = false; } else { agv.IsViewable = true; } m_data.AddObject(m_data.ActiveLayer, agv); m_canvas.DoInvalidate(true); agvs.Add(carinfo); } bsCar.DataSource = agvs; bsCar.ResetBindings(false); })); } catch (Exception ex) { } }
private void stepCar(object obj) { try { if (obj == null) { return; } if (!this.m_canvas.IsHandleCreated) { return; } this.m_canvas.Invoke((EventHandler)(delegate { CarInfo car = obj as CarInfo; if (agvs.Count <= 0) { return; } IEnumerable <IDrawObject> objects = from a in m_data.ActiveLayer.Objects where a.Id == "AGVTool" && (a as AGVTool).Agv_id == car.AgvID.ToString() select a; if (objects != null && objects.Count() > 0) { AGVTool agv = objects.FirstOrDefault() as AGVTool; if (agv != null) { if (car.bIsCommBreak) { agv.IsViewable = false; } else { agv.IsViewable = true; agv.Position = new UnitPoint(car.X, car.Y); agv.HandState = car.JCState; agv.Agv_id = car.AgvID.ToString(); //agv.Move(new UnitPoint(agv.Position.X - car.X, agv.Position.Y - car.Y)); //LandmarkInfo CurLand = AllLands.Where(p => p.LandmarkCode == car.CurrSite.ToString()).FirstOrDefault(); //if (CurLand == null) //{ // agv.Position = new UnitPoint(car.X, car.Y); // return; //} //else //{ // agv.Position = new UnitPoint(CurLand.LandX, CurLand.LandY); //} } m_canvas.DoInvalidate(true); } } else if (car != null) { //LandmarkInfo CurLand = AllLands.Where(p => p.LandmarkCode == car.CurrSite.ToString()).FirstOrDefault(); //if (CurLand == null) { return; } AGVTool agv = new AGVTool(); agv.HandState = car.JCState; agv.Agv_id = car.AgvID.ToString(); agv.Position = new UnitPoint(car.X, car.Y); if (car.bIsCommBreak) { agv.IsViewable = false; } else { agv.IsViewable = true; } m_data.AddObject(m_data.ActiveLayer, agv); m_canvas.DoInvalidate(true); } //更新一下AGV集合中的对应车辆信息 CarInfo CurrentCar = agvs.FirstOrDefault(p => p.AgvID == car.AgvID); if (CurrentCar != null) { CurrentCar.bIsCommBreak = car.bIsCommBreak; CurrentCar.CarState = car.CarState; CurrentCar.ExcuteTaksNo = car.ExcuteTaksNo; CurrentCar.CurrSite = car.CurrSite; CurrentCar.fVolt = car.fVolt; CurrentCar.LowPower = car.LowPower; CurrentCar.TaskDetailID = car.TaskDetailID; bsCar.DataSource = agvs; bsCar.ResetBindings(false); } })); } catch (Exception ex) { } }