aboutsummaryrefslogtreecommitdiff
path: root/behaviors
diff options
context:
space:
mode:
authorGravatar Russell Cohen <rcoh@mit.edu>2011-01-12 10:02:10 -0500
committerGravatar Russell Cohen <rcoh@mit.edu>2011-01-12 10:02:10 -0500
commitc7fc6c2725231eb1427f0edf00d3219409b3d55b (patch)
tree5b0040cb8673c9a01513977e3b11f440afd30d49 /behaviors
parentaaf8bdbee7fdc1d4721f43307fc824c373c69ec4 (diff)
parent9315ded6555a7afb8f11d96e5a4c446389f157cb (diff)
Merge branch 'master' into behaviors
Conflicts: LightInstallation.py
Diffstat (limited to 'behaviors')
-rw-r--r--behaviors/AddPixelEvent.py26
-rw-r--r--behaviors/DebugBehavior.py2
-rw-r--r--behaviors/LoopAndDie.xml2
-rw-r--r--behaviors/PixelDecay.xml11
4 files changed, 38 insertions, 3 deletions
diff --git a/behaviors/AddPixelEvent.py b/behaviors/AddPixelEvent.py
new file mode 100644
index 0000000..7f134e1
--- /dev/null
+++ b/behaviors/AddPixelEvent.py
@@ -0,0 +1,26 @@
+from operationscore.Behavior import *
+import util.Strings as Strings
+from logger import main_log
+class AddPixelEvent(Behavior):
+ def behaviorInit(self):
+ [module, className] = self['Class'].split('.')
+ try:
+ exec('from ' + module+'.'+className + ' import *', globals())
+ except Exception as inst:
+ main_log.error('Error importing ' + module+'.'+className+ '. Component not\
+ initialized.')
+ main_log.error(str(inst))
+ self.eventGenerator = eval('lambda args:'+className+'(args)')
+
+ #^lambda function to do generate new event (takes args)
+
+ def processResponse(self, sensors, recurses):
+ ret = []
+ for sensory in sensors:
+ outDict = {}
+ outDict[Strings.LOCATION] = sensory[Strings.LOCATION]
+ settingsDict = dict(self.argDict)
+ settingsDict['Color'] = sensory['Color']
+ outDict['PixelEvent'] = self.eventGenerator(settingsDict)
+ ret.append(outDict)
+ return (ret, recurses)
diff --git a/behaviors/DebugBehavior.py b/behaviors/DebugBehavior.py
index eb525e7..9bf3ea8 100644
--- a/behaviors/DebugBehavior.py
+++ b/behaviors/DebugBehavior.py
@@ -4,5 +4,5 @@ import pdb
class DebugBehavior(Behavior):
def processResponse(self, sensorInputs, recursiveInputs):
if sensorInputs != []:
- main_log.debug('Sensor Inputs: '+ str(sensorInputs))
+ main_log.debug('Sensor Inputs: ' + str(sensorInputs))
return []
diff --git a/behaviors/LoopAndDie.xml b/behaviors/LoopAndDie.xml
index af26562..e2940e4 100644
--- a/behaviors/LoopAndDie.xml
+++ b/behaviors/LoopAndDie.xml
@@ -1,6 +1,6 @@
<Behavior>
<Class>behaviors.RecursiveDecay</Class>
<Args>
- <InitialResponseCount>70</InitialResponseCount>
+ <InitialResponseCount>20</InitialResponseCount>
</Args>
</Behavior>
diff --git a/behaviors/PixelDecay.xml b/behaviors/PixelDecay.xml
index f9eee0d..bfe84ca 100644
--- a/behaviors/PixelDecay.xml
+++ b/behaviors/PixelDecay.xml
@@ -1,4 +1,4 @@
-<Behavior>
+<!--<Behavior>
<Class>behaviors.DecayBehavior</Class>
<Args>
<DecayType>Exponential</DecayType>
@@ -6,4 +6,13 @@
<z-index>0</z-index>
<RenderToScreen>False</RenderToScreen>
</Args>
+</Behavior>-->
+<Behavior>
+ <Class>behaviors.AddPixelEvent</Class>
+ <Args>
+ <Class>pixelevents.DecayEvent</Class>
+ <DecayType>Exponential</DecayType>
+ <Coefficient>.01</Coefficient>
+ <z-index>0</z-index>
+ </Args>
</Behavior>