diff options
author | rcoh <rcoh@mit.edu> | 2011-01-28 11:03:10 -0500 |
---|---|---|
committer | rcoh <rcoh@mit.edu> | 2011-01-28 11:03:10 -0500 |
commit | a7d6577e55ebd665ad9e4f45183836f11b3c6fd4 (patch) | |
tree | dd036ac439ceb577cc699f59a755667544d57539 /behaviors | |
parent | 3319a58ecc391f9aac092ade45f9f50dc2af5aa6 (diff) | |
parent | 6341992254c837b1d814b3eaa24b2ab3e729c8e2 (diff) |
Merge branch 'wind-behavior' into fridaydemo
Conflicts:
behaviors/XYMove.py
Diffstat (limited to 'behaviors')
-rw-r--r-- | behaviors/Deccelerate.xml | 9 | ||||
-rw-r--r-- | behaviors/ExpandingColorZones.py | 20 | ||||
-rwxr-xr-x | behaviors/SmootWind.py | 33 |
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)
|