Abstract sensor classes are used for sharing interfaces with the real world
Smart pointers are used rather than builtins
The abstract classes remove the need for the VibrationScalers, which are now deprecated and will be removed in the near future. Sensors decide what alert level they pass on to their Rangefinder, and thus far the Rangefinder accepts that and passes it on to the VibratorMotors. Because this means that every sensor - whether ultrasonic or not - shares a common interface that is exposed to a Rangefinder, they are now combined. Additionally, because the Sensors now decide their alert level, I've made a class for ground obstacle detection. This class shares the same driver as the original ultrasonic rangefinder used in the UltraPilot Mark 1. This makes it possible, in the future, to have a sensor devoted to ground-based obstacle detection.
The most major things that have been changed are:
The abstract classes remove the need for the
VibrationScalers
, which are now deprecated and will be removed in the near future.Sensors
decide what alert level they pass on to theirRangefinder
, and thus far theRangefinder
accepts that and passes it on to theVibratorMotors
. Because this means that every sensor - whether ultrasonic or not - shares a common interface that is exposed to aRangefinder
, they are now combined. Additionally, because theSensors
now decide their alert level, I've made a class for ground obstacle detection. This class shares the same driver as the original ultrasonic rangefinder used in the UltraPilot Mark 1. This makes it possible, in the future, to have a sensor devoted to ground-based obstacle detection.