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)); } } }
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(); }
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; } }
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; }
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; }
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; }
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); }