public SimpleDistanceDrivingStrategy(IEngine engine, IDistanceSensor distanceSensor)
 {
     Engine = engine;
     DistanceSensor = distanceSensor;
     InitializePropertyDefaults();
     RefreshTimer = new Timer(100);
     RefreshTimer.Elapsed += TakeDrivingDecisions;
 }
        public RadialDistanceSensor(RadialDistanceMap targetMap, BrickServo servoBrick, byte servoId, IDistanceSensor distanceBricklet)
        {
            Measurements = targetMap;
            ServoId = servoId;
            ServoBrick = servoBrick;
            DistanceSensor = distanceBricklet;

            SetupMeasurement();
            SetupServo();
        }
        private void InitializeDevices()
        {
            Connection = new IPConnection();
            Connection.Connect("localhost", 4223);

            ServoBrick = new BrickServo("ap6zRki6edN", Connection);
            SetupServoBrick();
            DistanceBricklet = new BrickletDistanceIR("8XU", Connection);
            var distanceCollection = new ClosestDistanceSensorCollection();
            distanceCollection.AddSensor(new ImmediateDistanceIRSensor(DistanceBricklet));
            Distances = distanceCollection;

            var drivingStrategy = new SimpleDistanceDrivingStrategy(Engine, Distances);
            drivingStrategy.MinimumDrivingDistance = 30.Centimeters();
            drivingStrategy.ReversalDistance = 11.Centimeters();
            drivingStrategy.RefreshInterval = 10;
            this.DrivingStrategy = drivingStrategy;
        }
 public void AddSensor(IDistanceSensor sensor)
 {
     Sensors.Add(sensor);
 }