Пример #1
0
        private bool DeserializePoints()
        {
            try
            {
                Console.WriteLine("Reading with XmlReader");

                // Create an instance of the XmlSerializer specifying type and namespace.
                XmlSerializer serializer = new
                                           XmlSerializer(typeof(RobotPoint));

                // A FileStream is needed to read the XML document.
                FileStream fs     = new FileStream("punti.xml", FileMode.Open);
                XmlReader  reader = XmlReader.Create(fs);

                // Use the Deserialize method to restore the object's state.
                _points = (RobotPoint)serializer.Deserialize(reader);

                //Correzione punti in millimetri, solamente i primi tre parametri di ogni array
                foreach (var a in _points.Aree)
                {
                    foreach (var p in a.Posizioni)
                    {
                        p.Punto.x = p.Punto.x / 1000;
                        p.Punto.y = p.Punto.y / 1000;
                        p.Punto.z = p.Punto.z / 1000;
                    }
                }

                fs.Close();
                return(true);
            }
            catch (Exception ex)
            {
                Console.WriteLine("Errore deserializzazione punti da foglio xml :" + ex.Message);
                return(false);
            }
        }
Пример #2
0
        /// <summary>
        /// Costruttore di classe,
        /// </summary>
        /// <param name="s"></param>
        public Robot()
        {
            //Imposto la culture info per poter convertire i numeri float in stringa, delimitati dal punto
            //invece che dalla virgola
            Thread.CurrentThread.CurrentCulture = CultureInfo.GetCultureInfo("en-US");

            //Ip definito scaticamente dato che il pc non cambierà mai indirizzo
            _ipAddress = IPAddress.Parse("192.168.250.5");

            // La porta 40000 è quella che utilizza il robot per stabile una connessione tcp,
            // Attenzione, Il progemma del robot, esegue il tentativo di connessione solamente al suo inizio
            _localEndPointMain = new IPEndPoint(_ipAddress, 40000);

            _socketMain  = new Socket(_ipAddress.AddressFamily, SocketType.Stream, ProtocolType.Tcp);
            _points      = new RobotPoint();
            _points.Aree = new List <Area>();

            #region Punti per test
            //_points.Aree.Add(new Area()
            //{
            //    Name = "Zona Carico",
            //    Posizioni = new List<Posizione>()
            //    {
            //       new Posizione()
            //       {
            //           Name = "Prel_1_g_1_zn_1",
            //           Punto = new Point(1.23f,2,3,4,5,6)
            //    },
            //       new Posizione()
            //       {
            //           Name = "prel_1_g_2_zn_1",
            //           Punto = new Point(1,2,3,4,5,6)
            //       },
            //       new Posizione()
            //       {
            //           Name = "prel_2_g_1_zn_1",
            //           Punto = new Point(1,2,3,4,5,6)
            //    },
            //       new Posizione()
            //       {
            //           Name = "prel_2_g_2_zn_1",
            //           Punto = new Point(1,2,3,4,5,6)
            //       }
            //    }
            //});

            //_points.Aree.Add(new Area()
            //{
            //    Name = "Zona Test 1",
            //    Posizioni = new List<Posizione>()
            //    {

            //       new Posizione()
            //       {
            //           Name = "dep_1_g_1_zn_2",
            //           Punto = new Point(1,2,3,4,5,6)
            //    },
            //       new Posizione()
            //       {
            //           Name = "dep_1_g_2_zn_2",
            //           Punto = new Point(1,2,3,4,5,6)
            //       },
            //       new Posizione()
            //       {
            //           Name = "dep_2_g_1_zn_2",
            //           Punto = new Point(1,2,3,4,5,6)
            //    },
            //       new Posizione()
            //       {
            //           Name = "dep_2_g_2_zn_2",
            //           Punto = new Point(1,2,3,4,5,6)
            //       },
            //       new Posizione()
            //       {
            //           Name = "dep_3_g_1_zn_2",
            //           Punto = new Point(1,2,3,4,5,6)
            //    },
            //       new Posizione()
            //       {
            //           Name = "dep_3_g_2_zn_2",
            //           Punto = new Point(1,2,3,4,5,6)
            //       },
            //       new Posizione()
            //       {
            //           Name = "dep_4_g_1_zn_2",
            //           Punto = new Point(1,2,3,4,5,6)
            //    },
            //       new Posizione()
            //       {
            //           Name = "dep_4_g_2_zn_2",
            //           Punto = new Point(1,2,3,4,5,6)
            //       }
            //    }
            //});


            //_points.Aree.Add(new Area()
            //{
            //    Name = "Zona Test 2",
            //    Posizioni = new List<Posizione>()
            //    {

            //       new Posizione()
            //       {
            //           Name = "dep_1_g_1_zn_3",
            //           Punto = new Point(1,2,3,4,5,6)
            //    },
            //       new Posizione()
            //       {
            //           Name = "dep_1_g_2_zn_3",
            //           Punto = new Point(1,2,3,4,5,6)
            //       },
            //       new Posizione()
            //       {
            //           Name = "dep_2_g_1_zn_3",
            //           Punto = new Point(1,2,3,4,5,6)
            //    },
            //       new Posizione()
            //       {
            //           Name = "dep_2_g_2_zn_3",
            //           Punto = new Point(1,2,3,4,5,6)
            //       },
            //       new Posizione()
            //       {
            //           Name = "dep_3_g_1_zn_3",
            //           Punto = new Point(1,2,3,4,5,6)
            //    },
            //       new Posizione()
            //       {
            //           Name = "dep_3_g_2_zn_3",
            //           Punto = new Point(1,2,3,4,5,6)
            //       },
            //       new Posizione()
            //       {
            //           Name = "dep_4_g_1_zn_3",
            //           Punto = new Point(1,2,3,4,5,6)
            //    },
            //       new Posizione()
            //       {
            //           Name = "dep_4_g_2_zn_3",
            //           Punto = new Point(1,2,3,4,5,6)
            //       }
            //    }
            //});


            //_points.Aree.Add(new Area()
            //{
            //    Name = "Zona Scarico",
            //    Posizioni = new List<Posizione>()
            //    {
            //       new Posizione()
            //       {
            //           Name = "dep_1_g_1_zn_4",
            //           Punto = new Point(1,2,3,4,5,6)
            //    },
            //       new Posizione()
            //       {
            //           Name = "dep_1_g_2_zn_4",
            //           Punto = new Point(1,2,3,4,5,6)
            //       },
            //    }
            //});

            #endregion

            //XmlSerialize();

            //Se non avviene la deseriallizzazione correttamente, l'applicazione viene interrota
            if (!DeserializePoints())
            {
                return;
            }

            //esegue il binding e fa partire un thread per l'invio dei punti al Robot
            StartListeningTheRobot();
        }