aboutsummaryrefslogtreecommitdiff
path: root/behaviors
diff options
context:
space:
mode:
Diffstat (limited to 'behaviors')
-rw-r--r--behaviors/Accelerate.xml2
-rw-r--r--behaviors/Deccelerate.xml9
-rw-r--r--behaviors/DimColor.xml2
-rw-r--r--behaviors/Expand.py3
-rw-r--r--behaviors/ExpandingColorZones.py20
-rw-r--r--behaviors/MITDoors.py7
-rw-r--r--behaviors/ResponseMover.py8
-rwxr-xr-xbehaviors/SmootWind.py65
-rw-r--r--behaviors/XYMove.py1
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, [])