public override float GetSensorValue(Values.Sensor sensor) { switch (sensor) { case Values.Sensor.TripMeterL: return(LeftEncoder.Steps); case Values.Sensor.TripMeterR: return(RightEncoder.Steps); case Values.Sensor.Sensor1: return(Plate1.Read <float>() ?? -1F); case Values.Sensor.Sensor2: return(Plate2.Read <float>() ?? -1F); case Values.Sensor.Sensor3: return(Plate3.Read <float>() ?? -1F); case Values.Sensor.Sensor4: return(Plate4.Read <float>() ?? -1F); case Values.Sensor.Sensor5: return(Plate5.Read <float>() ?? -1F); default: return(-1F); } }
public override bool ColorSensor(Values.Sensor sensor, Values.SensorColors color) { var sensor_color = GetRGBSensorValue(sensor) / 255F; switch (color) { case Values.SensorColors.Unknown: bool isUnknown = false; foreach (var test_color in AllColors) { isUnknown |= (sensor_color - MapColor(test_color)).magnitude < 0.25F; } return(isUnknown); default: var distance = (sensor_color - MapColor(color)).magnitude; return(distance < 0.25F); } }
public override Vector3 GetRGBSensorValue(Values.Sensor sensor) { switch (sensor) { case Values.Sensor.Sensor1: return(Plate1.Read <Vector3>() ?? new Vector3(-1F, -1F, -1F)); case Values.Sensor.Sensor2: return(Plate2.Read <Vector3>() ?? new Vector3(-1F, -1F, -1F)); case Values.Sensor.Sensor3: return(Plate3.Read <Vector3>() ?? new Vector3(-1F, -1F, -1F)); case Values.Sensor.Sensor4: return(Plate4.Read <Vector3>() ?? new Vector3(-1F, -1F, -1F)); case Values.Sensor.Sensor5: return(Plate5.Read <Vector3>() ?? new Vector3(-1F, -1F, -1F)); default: return(new Vector3(-1F, -1F, -1F)); } }
public abstract bool ColorSensor(Values.Sensor sensor, Values.SensorColors color);
public abstract Vector3 GetRGBSensorValue(Values.Sensor sensor);
public abstract float GetSensorValue(Values.Sensor sensor);