Beispiel #1
0
        public void UpdateListAffichage()
        {
            // Update Robots
            listAffichageArduino.Items.Clear();
            //foreach (ArduinoBotIA Robot in _Follower.ListArduino)
            for (int i = 0; i < _Follower.ListArduino.Count; i++)
            {
                ArduinoBotIA Robot = _Follower.ListArduino[i];

                if (_ArduinoManager != null)
                {
                    ArduinoBotComm RobotComm = _ArduinoManager.getArduinoBotById(Robot.ID);
                    ListViewItem   master    = new ListViewItem(Robot.ID + "");
                    if (RobotComm != null)
                    {
                        master.SubItems.Add(RobotComm.Connected + "");
                        master.SubItems.Add(RobotComm.stateComm + "");
                    }
                    else
                    {
                        master.SubItems.Add("N/A");
                        master.SubItems.Add("N/A");
                    }


                    master.SubItems.Add(Robot.LastAction + "");
                    master.SubItems.Add(Robot.Position.X + "");
                    master.SubItems.Add(Robot.Position.Y + "");
                    master.SubItems.Add(Robot.Angle + "");

                    listAffichageArduino.Items.Add(master);
                }
            }
            // Update Cubes
            listAffichageCubes.Items.Clear();

            for (int i = 0; i < _Follower.TrackMaker.Cubes.Count; i++)
            {
                Objectif cube = _Follower.TrackMaker.Cubes[i];

                ListViewItem master = new ListViewItem(cube.id + "");
                master.SubItems.Add(cube.idZone + "");
                master.SubItems.Add(cube.Done + "");
                if (cube.Robot != null)
                {
                    master.SubItems.Add(cube.Robot.ID + "");
                }
                else
                {
                    master.SubItems.Add("N/A");
                }
                master.SubItems.Add(cube.position.X + "");
                master.SubItems.Add(cube.position.Y + "");

                listAffichageCubes.Items.Add(master);
            }

            // Update Zones
            listAffichageZones.Items.Clear();
            for (int i = 0; i < _Follower.TrackMaker.ZonesDepose.Count; i++)
            {
                Zone         zone   = _Follower.TrackMaker.ZonesDepose[i];
                ListViewItem master = new ListViewItem(zone.id + "");
                master.SubItems.Add("A : " + zone.position.A.ToString() + " B : " + zone.position.B.ToString() + " C : " + zone.position.C.ToString() + " D : " + zone.position.D.ToString());
                master.SubItems.Add(UtilsMath.CentreRectangle(zone.position).ToString());

                listAffichageZones.Items.Add(master);
            }
        }
Beispiel #2
0
        public void UpdateImageDebug()
        {
            if (_Follower.TrackMaker != null && _Follower.TrackMaker.ZoneTravail.B.X != 0)
            {
                List <PolyligneDessin> ListePoly = new List <PolyligneDessin>(); // Liste envoyé a l'image

                Bitmap bitmap = new Bitmap(_Follower.TrackMaker.ZoneTravail.B.X, _Follower.TrackMaker.ZoneTravail.B.Y);
                //dessinerTrack(bitmap, tr);

                // Dessiner Cubes
                // foreach (Objectif obstacle in _Follower.TrackMaker.Cubes)
                for (int i = 0; i < _Follower.TrackMaker.Cubes.Count; i++)
                {
                    Objectif        obstacle = _Follower.TrackMaker.Cubes[i];
                    PolyligneDessin p        = new PolyligneDessin(Color.LimeGreen);
                    for (int x = obstacle.position.X - 5; x <= obstacle.position.X + 5; x++)
                    {
                        for (int y = obstacle.position.Y - 5; y <= obstacle.position.Y + 5; y++)
                        {
                            p.addPoint(new PointDessin(x, y));
                        }
                    }
                    ListePoly.Add(p);
                    dessinerPoint(bitmap, obstacle.position, Brushes.Gray);
                }

                foreach (QuadrillageCoord q in _Follower.TrackMaker.CreerAstarQuadriallage().CalculerQuadrillage())
                {
                    PolyligneDessin p = new PolyligneDessin(Color.Gray);
                    p.addPoint(new PointDessin(q.A.X, q.A.Y));
                    p.addPoint(new PointDessin(q.B.X, q.B.Y));
                    ListePoly.Add(p);

                    dessinerLigne(bitmap, q.A, q.B, Color.Gray, 1);
                }

                for (int i = 0; i < _Follower.TrackMaker.ZonesDepose.Count; i++)
                {
                    Zone            z   = _Follower.TrackMaker.ZonesDepose[i];
                    PositionElement pos = UtilsMath.CentreRectangle(z.position);
                    PolyligneDessin p   = new PolyligneDessin(Color.Pink);
                    for (int x = pos.X - 5; x <= pos.X + 5; x++)
                    {
                        for (int y = pos.Y - 5; y <= pos.Y + 5; y++)
                        {
                            p.addPoint(new PointDessin(x, y));
                        }
                    }
                    ListePoly.Add(p);

                    dessinerPoint(bitmap, pos, Brushes.Pink);
                }


                for (int ab = 0; ab < _Follower.ListArduino.Count; ab++)
                //foreach (ArduinoBotIA robot in _Follower.ListArduino)
                {
                    ArduinoBotIA robot = _Follower.ListArduino[ab];

                    PolyligneDessin p = new PolyligneDessin(Color.Purple);

                    PositionElement pos = robot.Position;

                    for (int x = pos.X - 5; x <= pos.X + 5; x++)
                    {
                        for (int y = pos.Y - 5; y <= pos.Y + 5; y++)
                        {
                            p.addPoint(new PointDessin(x, y));
                        }
                    }
                    ListePoly.Add(p);

                    dessinerPoint(bitmap, pos, Brushes.Turquoise);
                    if (robot.Trace != null)
                    {
                        dessinerTrack(bitmap, robot.Trace, _Follower.TrackMaker.CreerAstarQuadriallage());
                        PolyligneDessin p2 = new PolyligneDessin(Color.Red);
                        for (int i = 0; i < robot.Trace.Positions.Count; i++)
                        {
                            p.addPoint(new PointDessin(robot.Trace.Positions[i].X, robot.Trace.Positions[i].Y));
                        }
                        ListePoly.Add(p2);
                    }
                }


                imageDebug.Image = bitmap;

                if (DrawPolylineEvent != null)
                {
                    DrawPolylineEventArgs args = new DrawPolylineEventArgs(ListePoly);
                    DrawPolylineEvent(this, args);
                }
            }
        }