Exemple #1
0
 /// <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)
     { }
 }
Exemple #2
0
        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)
            { }
        }