aboutsummaryrefslogtreecommitdiff
path: root/behaviors
diff options
context:
space:
mode:
authorGravatar rcoh <rcoh@mit.edu>2011-01-28 11:03:10 -0500
committerGravatar rcoh <rcoh@mit.edu>2011-01-28 11:03:10 -0500
commita7d6577e55ebd665ad9e4f45183836f11b3c6fd4 (patch)
treedd036ac439ceb577cc699f59a755667544d57539 /behaviors
parent3319a58ecc391f9aac092ade45f9f50dc2af5aa6 (diff)
parent6341992254c837b1d814b3eaa24b2ab3e729c8e2 (diff)
Merge branch 'wind-behavior' into fridaydemo
Conflicts: behaviors/XYMove.py
Diffstat (limited to 'behaviors')
-rw-r--r--behaviors/Deccelerate.xml9
-rw-r--r--behaviors/ExpandingColorZones.py20
-rwxr-xr-xbehaviors/SmootWind.py33
3 files changed, 62 insertions, 0 deletions
diff --git a/behaviors/Deccelerate.xml b/behaviors/Deccelerate.xml
new file mode 100644
index 0000000..e64e61d
--- /dev/null
+++ b/behaviors/Deccelerate.xml
@@ -0,0 +1,9 @@
+
+<Behavior>
+ <Class>behaviors.ModifyParam</Class>
+ <Args>
+ <ParamType>Sensor</ParamType>
+ <ParamName>StepSize</ParamName>
+ <ParamOp>{val}*.98</ParamOp>
+ </Args>
+</Behavior>
diff --git a/behaviors/ExpandingColorZones.py b/behaviors/ExpandingColorZones.py
new file mode 100644
index 0000000..345851e
--- /dev/null
+++ b/behaviors/ExpandingColorZones.py
@@ -0,0 +1,20 @@
+from operationscore.Behavior import *
+from logger import main_log
+class ExpandingColorZones(Behavior):
+ def behaviorInit(self):
+ self.mapping = {'r':[(132,0),(255,0,0)], 'g':[(400,0), (0,255,0)],
+ 'b':[(668,0),
+ (0,0,255)]}
+ self.mappingkey = 'KeyChar'
+ def processResponse(self, sensorInputs, recursiveInputs):
+ ret = []
+ for data in sensorInputs:
+ data = dict(data)
+ if self.mappingkey in data:
+ try:
+ data['Location'], data['Color'] =\
+ self.mapping[data[self.mappingkey]]
+ ret.append(data)
+ except:
+ main_log.warn('Bad mapping key. Expanding Color Zones.')
+ return (ret,[])
diff --git a/behaviors/SmootWind.py b/behaviors/SmootWind.py
new file mode 100755
index 0000000..347e2fc
--- /dev/null
+++ b/behaviors/SmootWind.py
@@ -0,0 +1,33 @@
+from operationscore.Behavior import *
+import util.ComponentRegistry as compReg
+import random
+
+class SmootWind(Behavior):
+ def behaviorInit(self):
+ self.mapper = None
+ self.xFor = None
+
+ def processResponse(self, sensorInputs, recursiveInputs):
+ if self.mapper == None:
+ try:
+ self.mapper = compReg.getComponent('windgaussmap')
+ except KeyError:
+ pass
+ if self.xFor == None:
+ try:
+ self.xFor = compReg.getComponent('xfor')
+ except KeyError:
+ pass
+
+ for sensory in sensorInputs:
+ print sensory
+ # input[0] is windspeed, [1] is dir
+ windSpeed = sensory[0]
+ windDir = sensory[1]
+
+ #print self.mapper.argDict
+ self.mapper.argDict['Width'] = float(windSpeed)*2+20
+ self.xFor.argDict['ParamOp'] = float(windSpeed)*3+10*random.random();
+ #print 'Width: ' + str(self.mapper.argDict['Width'])
+ #print 'xFor: ' + str(self.xFor.argDict['ParamOp'])
+ return (sensorInputs, recursiveInputs)