12345678910111213141516171819202122232425262728293031323334 |
- using uqac_ia_aspirobot.Agent.Interfaces.Sensors;
- using uqac_ia_aspirobot.Extensions;
- using uqac_ia_aspirobot.Interfaces;
-
- namespace uqac_ia_aspirobot.Agent.Sensors
- {
- public class AgPerformanceSensor : IAgPerformanceSensor
- {
- private readonly IAgBatterySensor _agBatterySensor;
-
- private readonly IAgPickedSensor _agPickedSensor;
-
- private readonly IAgVaccumSensor _agVaccumSensor;
- private readonly IEnvironment _environment;
-
- public float Performance { get; protected set; }
-
- public AgPerformanceSensor(IAgBatterySensor agBatterySensor, IAgPickedSensor agPickedSensor,
- IAgVaccumSensor agVaccumSensor, IEnvironment environment)
- {
- _agBatterySensor = agBatterySensor;
- _agPickedSensor = agPickedSensor;
- _agVaccumSensor = agVaccumSensor;
- _environment = environment;
- }
-
- public void Update()
- {
- var dustyCount = _environment.FindDustyRooms().Count;
- var sum = _agPickedSensor.Picked + _agVaccumSensor.Vaccumed;
- Performance = (_agBatterySensor.Spent == 0 ? 0 : (float)sum / _agBatterySensor.Spent) - dustyCount;
- }
- }
- }
|