Esempio n. 1
0
        public void update(SensorObject capteur)
        {
            FieldInfo[] fields = capteur.GetType().GetFields(
                BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Static | BindingFlags.GetProperty |
                BindingFlags.Instance);


            foreach (FieldInfo field in fields)
            {
                if (field.Name.Equals("unite"))
                {
                    // Console.WriteLine("unite "+field.GetValue(capteur));
                    setUnite((EnumUnite)field.GetValue(capteur));
                }

                if (field.Name.Equals("type"))
                {
                    // Console.WriteLine("type "+field.GetValue(capteur));
                    setType((EnumType)field.GetValue(capteur));
                }
                if (field.Name.Equals("donnee"))
                {
                    //Console.WriteLine("donneeé " + field.GetValue(capteur));
                    setValeur((Double)field.GetValue(capteur));
                }
            }
        }
Esempio n. 2
0
        static void Main(string[] args)
        {
            /****************************** GESTIONNAIRE **********************************************/

            Gestionnaire gestionnaire = new Gestionnaire();

            /****************************** CAPTEURS **************************************************/

            //Creator de capteurs
            CreatorHumidimetre creatorHumidimetre = new CreatorHumidimetre();
            CreatorThermo      creatorThermo      = new CreatorThermo();

            //capteurs
            SensorObject thermometre = creatorThermo.CreationCapteur();
            SensorObject humidimetre = creatorHumidimetre.CreationCapteur();

            //ajout des capteurs dans le gestionnaire
            gestionnaire.AjouterCapteur(thermometre);
            gestionnaire.AjouterCapteur(humidimetre);

            //Mise à jour


            for (int i = 0; i < 3; i++)
            {
                gestionnaire.mettreAjour();
                Thread.Sleep(1000);
            }

            //Changement systeme unités
            gestionnaire.changeSystemeImperial();
        }
Esempio n. 3
0
        void TouchProc(SensorObject sensor)
        {
            RaycastHit hit;
            Transform  sensorCamera = sensor.Sensor.transform.parent.GetChild(1);

            if (Physics.Raycast(sensorCamera.position, sensorCamera.forward, out hit, 5f))
            {
                sensor.ValueType1 = (int)ButtonConditions.Pressed;
            }
            else
            {
                sensor.ValueType1 = (int)ButtonConditions.Realised;
            }
        }
Esempio n. 4
0
        void ColorProc(SensorObject sensor)
        {
            RaycastHit   hit;
            Transform    sensorCamera = sensor.Sensor.transform.GetChild(1);
            SensorColors sensorColor  = SensorColors.None;

            if (Physics.Raycast(sensorCamera.position, sensorCamera.forward, out hit, sensorCamera.GetComponent <Camera>().farClipPlane))
            {
                Color?color = hit.transform.GetComponent <MeshRenderer>().material.color;
                if (color == Color.black)
                {
                    sensorColor = SensorColors.Black;
                }
                else if (color == Color.blue)
                {
                    sensorColor = SensorColors.Blue;
                }
                else if (color == Color.green)
                {
                    sensorColor = SensorColors.Green;
                }
                else if (color == Color.white || color == Color.gray)
                {
                    sensorColor = SensorColors.White;
                }
                else if (color == Color.yellow)
                {
                    sensorColor = SensorColors.Yellow;
                }
                else if (color == Color.red)
                {
                    sensorColor = SensorColors.Red;
                }
                else
                {
                    sensorColor = SensorColors.Black;
                }
            }
            sensor.ValueType1 = sensorColor;
        }
Esempio n. 5
0
        void Start()
        {
            _id       = ++AddItemToField.Count;
            _material = new Material(Shader.Find("Specular"));
            GetComponentInChildren <MeshRenderer>().material = _material;
            _thisObject = transform.parent;

            _sensorObject = new SensorObject()
            {
                Sensor = _thisObject.gameObject
            };
            switch (_thisObject.name)
            {
            case "ColorSensor(Clone)":
                _sensorObject.Type = SensorTypes.ColorSensor;
                break;

            case "IRSensor(Clone)":
                _sensorObject.Type = SensorTypes.InfraredSensor;
                break;

            case "TouchSensor(Clone)":
                _sensorObject.Type = SensorTypes.TouchSensor;
                break;

            case "UltrasonicSensor(Clone)":
                _sensorObject.Type = SensorTypes.UltrasonicSensorCm;
                break;
            }

            _material.color = _originColor;
            //_thisObject.position = new Vector3(100, _thisObject.position.y, 0);
            _minHeight = _thisObject.position.y;
            _rotationX = _thisObject.rotation.x;
            _rotationY = _thisObject.rotation.y;
            _rotationZ = _thisObject.rotation.z;
        }
Esempio n. 6
0
        void DistanceProc(SensorObject sensor)
        {
            Transform  camera1 = sensor.Sensor.transform.GetChild(1).transform;
            Transform  camera2 = sensor.Sensor.transform.GetChild(2).transform;
            RaycastHit hit1, hit2;

            sensor.ValueType1 = _maxDistance / 11;
            sensor.ValueType2 = _maxDistance / 11 * 0.393701;

            bool h1 = Physics.Raycast(camera1.position, camera1.forward, out hit1, _maxDistance);
            bool h2 = Physics.Raycast(camera2.position, camera2.forward, out hit2, _maxDistance);

            if (h1 && h2)
            {
                hit1 = hit1.distance < hit2.distance ? hit1 : hit2;
            }
            else if (h2)
            {
                hit1 = hit2;
            }

            sensor.ValueType1 = hit1.distance / 11;
            sensor.ValueType2 = hit1.distance / 11 * 0.393701;
        }
Esempio n. 7
0
        void MotorProc(SensorObject motor)
        {
            var motorCollider = motor.Sensor.transform.GetComponent <WheelCollider>();

            motor.ValueType1 = motorCollider.rpm / 60 * Time.deltaTime;
        }
 public Visualisateur buildVisualisateur(SensorObject capteur)
 {
     visualisateur.update(capteur);
     return(visualisateur);
 }