blob: 24d71f10ef1e5995a48958e47046317f6c23e196 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
from operationscore.Behavior import *
class Circle(Behavior):
def processResponse(self, sensors, recurs):
ret = []
for data in sensors:
#import pdb; pdb.set_trace()
if 'CenterLoc' in data:
xLoc = data['CenterLoc'][0]
yLoc = data['CenterLoc'][1]
else:
data['CenterLoc'] = tuple(data['Location'])
xLoc = data['Location'][0]
yLoc = data['Location'][1]
if not self['Id']+'Radius' in data:
data[self['Id']+'Radius'] = self['Radius']
rad = data[self['Id']+'Radius']
cond = '>=' if self['Outside'] else '<='
circleStr = 'math.sqrt(({x}-'+str(xLoc)+')**2+(({y}-'+str(yLoc)+')**2))'+cond+str(rad)
if self['Combine']:
data['Location'] += ',' + circleStr
else:
data['Location'] = circleStr
ret.append(data)
return (ret, [])
def setLastOutput(self, output):
coutput = Behavior.deepCopyPacket(output)
for data in coutput:
data['Location'] = data['CenterLoc']
return coutput
|