summaryrefslogtreecommitdiffhomepage
path: root/host/simu/model
diff options
context:
space:
mode:
authorNicolas Schodet2013-03-26 21:01:32 +0100
committerNicolas Schodet2013-03-26 21:03:14 +0100
commitfd2970444d83ac38e0d6af53a6b4dada4226250e (patch)
tree8834aa993e99a4880b93c0e63adb43ebf5f9d849 /host/simu/model
parent14ce108a8d7138def681854b3d4bddb53e32be8d (diff)
host/simu/model: add output level factor for US distance sensor
Diffstat (limited to 'host/simu/model')
-rw-r--r--host/simu/model/distance_sensor_sensopart.py15
1 files changed, 8 insertions, 7 deletions
diff --git a/host/simu/model/distance_sensor_sensopart.py b/host/simu/model/distance_sensor_sensopart.py
index bb8e17c7..528c15d0 100644
--- a/host/simu/model/distance_sensor_sensopart.py
+++ b/host/simu/model/distance_sensor_sensopart.py
@@ -41,12 +41,12 @@ class DistanceSensorSensopart (Observable):
# Calibrated values.
MIN = 100
MAX = 700
- # Output levels for MIN/MAX.
- OMIN = 250 * 0.004
- OMAX = 250 * 0.020
+ # Output levels for MIN/MAX calibrated for 1 V.
+ OMIN = 50 * 0.004
+ OMAX = 50 * 0.020
def __init__ (self, link, scheduler, table, pos, angle, into = None,
- level = 0, exclude = None):
+ level = 0, exclude = None, factor = 1):
Observable.__init__ (self)
self.rays = [ ]
range = self.RANGE * self.QUALITY
@@ -56,6 +56,7 @@ class DistanceSensorSensopart (Observable):
for i in (-1, 1):
self.rays.append (DistanceSensorSensopartRay (table, pos,
angle + s[0] * i, range * s[1], into, level, exclude))
+ self.factor = factor
self.link = link
self.scheduler = scheduler
self.value = None
@@ -71,11 +72,11 @@ class DistanceSensorSensopart (Observable):
d = r.distance
# Convert to voltage.
if d is None or d > self.MAX:
- self.value = self.OMAX
+ self.value = self.factor * self.OMAX
elif d < self.MIN:
- self.value = self.OMIN
+ self.value = self.factor * self.OMIN
else:
- self.value = (self.OMIN
+ self.value = self.factor * (self.OMIN
+ (d - self.MIN) / (self.MAX - self.MIN)
* (self.OMAX - self.OMIN))
# Update observers.