Ejemplo n.º 1
0
 def __init__(self, **args):
     
     self.evalLocals = units.allUnits.copy()
     exec('from numpy import *', self.evalLocals)  ## import all of numpy into the eval namespace
     
     args['renamable'] = True
     args['removable'] = True
     args['name'] = args.get('name', 'Param')
     args['autoIncrementName'] = True
     args['strictNaming'] = True
     
     args['children'] = [
         {'name': 'default', 'type': 'str', 'value': '0'},
         {'name': 'sequence', 'type': 'list', 'value': 'off', 'values': ['off', 'range', 'list', 'eval']},
         {'name': 'start', 'type': 'str', 'value': '0', 'visible': False}, 
         {'name': 'stop', 'type': 'str', 'value': '0', 'visible': False}, 
         {'name': 'steps', 'type': 'int', 'value': 10, 'visible': False},
         {'name': 'log spacing', 'type': 'bool', 'value': False, 'visible': False}, 
         {'name': 'list', 'type': 'str', 'value': '', 'visible': False}, 
         {'name': 'randomize', 'type': 'bool', 'value': False, 'visible': False}, 
         {'name': 'expression', 'type': 'str', 'visible': False},
     ]
     
     GroupParameter.__init__(self, **args)
     #self.sequence.sigValueChanged.connect(self.seqChanged)
     
     self.visibleParams = {  ## list of params to display in each mode
         'off': ['default', 'sequence'],
         'range': ['default', 'sequence', 'start', 'stop', 'steps', 'log spacing', 'randomize'],
         'list': ['default', 'sequence', 'list', 'randomize'],
         'eval': ['default', 'sequence', 'expression']
     }
Ejemplo n.º 2
0
 def __init__(self):
     GroupParameter.__init__(self,
                             name='Stimuli',
                             type='group',
                             addText='Add Stimulus..',
                             addList=['Pulse', 'Pulse Train'])
     self.meta = {}
Ejemplo n.º 3
0
 def __init__(self, **kargs):
     if 'name' not in kargs:
         kargs['name'] = 'Pulse'
         kargs['autoIncrementName'] = True
     if 'type' not in kargs:
         kargs['type'] = 'pulse'
     kargs['strictNaming'] = True
     GroupParameter.__init__(
         self,
         removable=True,
         renamable=True,
         children=[
             SeqParameter(**{
                 'name': 'start',
                 'type': 'float',
                 'axis': 'x',
                 'value': 0.01,
             }),
             SeqParameter(**{
                 'name': 'length',
                 'type': 'float',
                 'axis': 'x',
                 'value': 0.01
             }),
             SeqParameter(**{
                 'name': 'amplitude',
                 'type': 'float',
                 'axis': 'y',
                 'value': 0
             }),
             SeqParameter(
                 **{
                     'name':
                     'sum',
                     'type':
                     'float',
                     'axis':
                     'xy',
                     'value':
                     0,
                     'limits': (0, None),
                     'children': [{
                         'name': 'affect',
                         'type': 'list',
                         'values': ['length', 'amplitude'],
                         'value': 'length'
                     }]
                 }),
         ],
         **kargs)
     self.param('length').sigValueChanged.connect(self.lenChanged)
     self.param('amplitude').sigValueChanged.connect(self.ampChanged)
     self.param('sum').sigValueChanged.connect(self.sumChanged)
Ejemplo n.º 4
0
 def __init__(self, **kargs):
     if 'name' not in kargs:
         kargs['name'] = 'Pulse'
         kargs['autoIncrementName'] = True
     if 'type' not in kargs:
         kargs['type'] = 'pulse'
     kargs['strictNaming'] = True
     GroupParameter.__init__(self, removable=True, renamable=True,
         children=[
             SeqParameter(**{'name': 'start', 'type': 'float', 'axis': 'x', 'value': 0.01,}),
             SeqParameter(**{'name': 'length', 'type': 'float', 'axis': 'x', 'value': 0.01}),
             SeqParameter(**{'name': 'amplitude', 'type': 'float', 'axis': 'y', 'value': 0}),
             SeqParameter(**{'name': 'sum', 'type': 'float', 'axis': 'xy', 'value': 0, 'limits': (0, None),
                 'children': [{'name': 'affect', 'type': 'list', 'values': ['length', 'amplitude'], 'value': 'length'}]
                 }),
         ], **kargs)
     self.param('length').sigValueChanged.connect(self.lenChanged)
     self.param('amplitude').sigValueChanged.connect(self.ampChanged)
     self.param('sum').sigValueChanged.connect(self.sumChanged)
Ejemplo n.º 5
0
    def treeStateChanged(self, param, changes):
        ## catch changes to 'sequence' so we can hide/show other params.
        ## Note: it would be easier to just catch self.sequence.sigValueChanged,
        ## but this approach allows us to block tree change events so they are all
        ## released as a single update.
        with self.treeChangeBlocker():
            ## queue up change
            GroupParameter.treeStateChanged(self, param, changes)

            ## if needed, add some more changes before releasing the signal
            for param, change, data in changes:
                ## if the sequence value changes, hide/show other parameters
                if param is self.param('sequence') and change == 'value':
                    vis = self.visibleParams[self['sequence']]
                    for ch in self:
                        if ch.name() in vis:
                            ch.show()
                        else:
                            ch.hide()
Ejemplo n.º 6
0
 def treeStateChanged(self, param, changes):
     ## catch changes to 'sequence' so we can hide/show other params.
     ## Note: it would be easier to just catch self.sequence.sigValueChanged,
     ## but this approach allows us to block tree change events so they are all
     ## released as a single update.
     with self.treeChangeBlocker():
         ## queue up change 
         GroupParameter.treeStateChanged(self, param, changes)
         
         ## if needed, add some more changes before releasing the signal
         for param, change, data in changes:
             ## if the sequence value changes, hide/show other parameters
             if param is self.param('sequence') and change == 'value':
                 vis = self.visibleParams[self['sequence']]
                 for ch in self:
                     if ch.name() in vis:
                         ch.show()
                     else:
                         ch.hide()
Ejemplo n.º 7
0
 def __init__(self):
     GroupParameter.__init__(self, name='Stimuli', type='group',
                        addText='Add Stimulus..', addList=['Pulse', 'Pulse Train'])
     self.meta = {}
Ejemplo n.º 8
0
 def addChild(self, ch):
     GroupParameter.addChild(self, ch)
     for ax in self.meta:
         self.setMeta(ax, self.meta[ax], ch)
Ejemplo n.º 9
0
    def __init__(self, **args):

        self.evalLocals = units.allUnits.copy()
        exec('from numpy import *',
             self.evalLocals)  ## import all of numpy into the eval namespace

        args['renamable'] = True
        args['removable'] = True
        args['name'] = args.get('name', 'Param')
        args['autoIncrementName'] = True
        args['strictNaming'] = True

        args['children'] = [
            {
                'name': 'default',
                'type': 'str',
                'value': '0'
            },
            {
                'name': 'sequence',
                'type': 'list',
                'value': 'off',
                'values': ['off', 'range', 'list', 'eval']
            },
            {
                'name': 'start',
                'type': 'str',
                'value': '0',
                'visible': False
            },
            {
                'name': 'stop',
                'type': 'str',
                'value': '0',
                'visible': False
            },
            {
                'name': 'steps',
                'type': 'int',
                'value': 10,
                'visible': False
            },
            {
                'name': 'log spacing',
                'type': 'bool',
                'value': False,
                'visible': False
            },
            {
                'name': 'list',
                'type': 'str',
                'value': '',
                'visible': False
            },
            {
                'name': 'randomize',
                'type': 'bool',
                'value': False,
                'visible': False
            },
            {
                'name': 'expression',
                'type': 'str',
                'visible': False
            },
        ]

        GroupParameter.__init__(self, **args)
        #self.sequence.sigValueChanged.connect(self.seqChanged)

        self.visibleParams = {  ## list of params to display in each mode
            'off': ['default', 'sequence'],
            'range': [
                'default', 'sequence', 'start', 'stop', 'steps', 'log spacing',
                'randomize'
            ],
            'list': ['default', 'sequence', 'list', 'randomize'],
            'eval': ['default', 'sequence', 'expression']
        }
Ejemplo n.º 10
0
 def __init__(self):
     GroupParameter.__init__(self,
                             name='SequenceParams',
                             type='group',
                             addText='Add Sequence Parameter')
     self.meta = {}
Ejemplo n.º 11
0
 def __init__(self):
     GroupParameter.__init__(self, name='SequenceParams', type='group',
                        addText='Add Sequence Parameter')
     self.meta = {}
Ejemplo n.º 12
0
 def addChild(self, ch):
     GroupParameter.addChild(self, ch)
     for ax in self.meta:
         self.setMeta(ax, self.meta[ax], ch)