diff options
Diffstat (limited to 'behaviors')
-rw-r--r-- | behaviors/Accelerate.xml | 2 | ||||
-rw-r--r-- | behaviors/Deccelerate.xml | 9 | ||||
-rw-r--r-- | behaviors/DimColor.xml | 2 | ||||
-rw-r--r-- | behaviors/Expand.py | 3 | ||||
-rw-r--r-- | behaviors/ExpandingColorZones.py | 20 | ||||
-rw-r--r-- | behaviors/MITDoors.py | 7 | ||||
-rw-r--r-- | behaviors/ResponseMover.py | 8 | ||||
-rwxr-xr-x | behaviors/SmootWind.py | 65 | ||||
-rw-r--r-- | behaviors/XYMove.py | 1 |
9 files changed, 74 insertions, 43 deletions
diff --git a/behaviors/Accelerate.xml b/behaviors/Accelerate.xml index f9de077..c78195b 100644 --- a/behaviors/Accelerate.xml +++ b/behaviors/Accelerate.xml @@ -3,6 +3,6 @@ <Args> <ParamType>Sensor</ParamType> <ParamName>StepSize</ParamName> - <ParamOp>{val}*1.1</ParamOp> + <ParamOp>{val}*1.01</ParamOp> </Args> </Behavior> 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/DimColor.xml b/behaviors/DimColor.xml index 58b0673..ef98fee 100644 --- a/behaviors/DimColor.xml +++ b/behaviors/DimColor.xml @@ -3,6 +3,6 @@ <Args> <ParamType>Sensor</ParamType> <ParamName>Color</ParamName> - <ParamOp>[chan*.95 for chan in {val}]</ParamOp> + <ParamOp>[chan*.98 for chan in {val}]</ParamOp> </Args> </Behavior> diff --git a/behaviors/Expand.py b/behaviors/Expand.py index 323e71f..f017c16 100644 --- a/behaviors/Expand.py +++ b/behaviors/Expand.py @@ -15,7 +15,8 @@ class Expand(Behavior): data = dict(data) data['Left'] -= data['ExpandRate'] data['Right'] += data['ExpandRate'] - data['Location'] = "{x}>" + str(data['Left']) + ", {x}<" + str(data['Right']) + data['Location'] = "{x}>" + str(data['Left']) + ", {x}<" +\ + str(data['Right'])+", {y}<50" ret.append(data) return (ret, []) 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/MITDoors.py b/behaviors/MITDoors.py index d602a55..03bef6d 100644 --- a/behaviors/MITDoors.py +++ b/behaviors/MITDoors.py @@ -1,4 +1,6 @@ from operationscore.Behavior import * +import math +import util.ComponentRegistry as compReg class MITDoors(Behavior): """MITDoors is a case-specific behavior to map keypresses to specific locations. Written for Kuan 1/26/11 by RCOH""" @@ -6,6 +8,11 @@ class MITDoors(Behavior): def behaviorInit(self): self.keymapping = {'q':[2,19], 'w':[22,36], 'e':[37,49], 'r':[52,69], 't':[76,91], 'y':[94,105], 'u':[106,117], 'i':[123,154], 'o':[158,161], 'p':[164,167], '[':[172,184]} + screenWidth = compReg.getComponent('Screen').getSize()[2] #(minx, miny,maxx, maxy) + maxKey = max([max(self.keymapping[v]) for v in self.keymapping]) + mult = screenWidth / float(maxKey) + for k in self.keymapping: + self.keymapping[k] = [int(val*mult) for val in self.keymapping[k]] def processResponse(self, sensorInputs, recursiveInputs): ret = [] for data in sensorInputs: diff --git a/behaviors/ResponseMover.py b/behaviors/ResponseMover.py index 59e353a..3d559df 100644 --- a/behaviors/ResponseMover.py +++ b/behaviors/ResponseMover.py @@ -7,11 +7,5 @@ class ResponseMover(Behavior): modulates the location.""" def processResponse(self, sensorInputs, recursiveInputs): - newResponses = sensorInputs - ret = [] - for recurInput in recursiveInputs: - outDict = dict(recurInput) - ret.append(outDict) - ret += newResponses - return (ret, ret) + return (recursiveInputs, recursiveInputs+sensorInputs) diff --git a/behaviors/SmootWind.py b/behaviors/SmootWind.py index bf05ab2..347e2fc 100755 --- a/behaviors/SmootWind.py +++ b/behaviors/SmootWind.py @@ -1,32 +1,33 @@ -from operationscore.Behavior import * -import util.ComponentRegistry as compReg - -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) ** 3 - self.xFor.argDict['ParamOp'] = float(windSpeed) ** 2 - #print 'Width: ' + str(self.mapper.argDict['Width']) - #print 'xFor: ' + str(self.xFor.argDict['ParamOp']) - return (sensorInputs, recursiveInputs) +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)
diff --git a/behaviors/XYMove.py b/behaviors/XYMove.py index 44a93bb..11cee96 100644 --- a/behaviors/XYMove.py +++ b/behaviors/XYMove.py @@ -13,7 +13,6 @@ class XYMove(Behavior): for loc in sensor: oploc = dict(loc) self.insertStepIfMissing(oploc) - #print oploc['YStep'] oploc['Location'] = Geo.addLocations((oploc['XStep'], oploc['YStep']), oploc['Location']) ret.append(oploc) return (ret, []) |