~sjdv1982/hivesystem/trunk

« back to all changes in this revision

Viewing changes to sparta/assessors/any_.py

  • Committer: Sjoerd de Vries
  • Date: 2014-06-09 10:19:38 UTC
  • mfrom: (182.1.43 hive-view)
  • Revision ID: sjdv1982@gmail.com-20140609101938-7ji5g0buo09r0se6
merged with hive-view branch

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
import libcontext, bee
 
2
from bee.segments import *
 
3
 
 
4
class any_(bee.worker):
 
5
    """
 
6
    The any assessor returns True if any of its inputs are True
 
7
    """
 
8
    
 
9
    outp = output("pull", "bool")
 
10
    inp1 = antenna("pull", "bool")
 
11
    inp2 = antenna("pull", "bool")
 
12
    inp3 = antenna("pull", "bool")
 
13
    inp4 = antenna("pull", "bool")
 
14
    
 
15
    b_inp1 = buffer("pull", "bool")
 
16
    b_inp2 = buffer("pull", "bool")
 
17
    b_inp3 = buffer("pull", "bool")
 
18
    b_inp4 = buffer("pull", "bool")
 
19
    connect(inp1, b_inp1)
 
20
    connect(inp2, b_inp2)
 
21
    connect(inp3, b_inp3)
 
22
    connect(inp4, b_inp4)
 
23
    
 
24
    v_outp = variable("bool")
 
25
    connect(v_outp, outp)
 
26
    
 
27
    # Evaluation function
 
28
    @modifier
 
29
    def evaluate(self):
 
30
        outp = False
 
31
        if self.b_inp1 or self.b_inp2 or self.b_inp3 or self.b_inp4: outp = True
 
32
        self.v_outp = outp
 
33
    
 
34
    # Whenever the output is requested: update the inputs and evaluate
 
35
    pretrigger(v_outp, b_inp1)
 
36
    pretrigger(v_outp, b_inp2)
 
37
    pretrigger(v_outp, b_inp3)
 
38
    pretrigger(v_outp, b_inp4)
 
39
    pretrigger(v_outp, evaluate)
 
40
        
 
41
    # Name the inputs and outputs
 
42
    guiparams = {
 
43
      "outp" : {"name" : "Output"},
 
44
      "inp1" : {"name" : "Input 1", "foldable" : False},
 
45
      "inp2" : {"name" : "Input 2"},
 
46
      "inp3" : {"name" : "Input 3", "fold": True},
 
47
      "inp4" : {"name" : "Input 4", "fold": True},
 
48
    }
 
49
    
 
 
b'\\ No newline at end of file'