#    self.results['outcome'][trialIndex] = \
                    #        self.results.labels['outcome']['invalid']
                    if self.sm.statesNameToIndex['punish'] in eventsThisTrial[:,2]:
                        self.results['outcome'][trialIndex] = \
                            self.results.labels['outcome']['error']
                # -- Check if it was a valid trial --
                if self.sm.statesNameToIndex['playNoiseStimulus'] in eventsThisTrial[:,2]:
                    self.params['nValid'].add(1)
                    self.results['valid'][trialIndex] = 1

    def execute_automation(self):
        '''This executes only some modes. Other modes are use outside this method'''
        automationMode = self.params['automationMode'].get_string()
        nValid = self.params['nValid'].get_value()
        if automationMode=='increase_delay':
            if nValid>0 and not nValid%10:
                self.params['delayToTargetMean'].add(0.010)

    def closeEvent(self, event):
        '''
        Executed when closing the main window.
        This method is inherited from QtGui.QMainWindow, which explains
        its camelCase naming.
        '''
        self.soundClient.shutdown()
        self.dispatcherModel.die()
        event.accept()

if __name__ == '__main__':
    (app,paradigm) = paramgui.create_app(Paradigm)
        stimDur = self.params['targetDuration'].get_value()
        s1 = {'type':'chord', 'frequency':targetFrequency, 'duration':stimDur,
              'amplitude':targetAmp, 'ntones':12, 'factor':1.2}
        self.soundClient.set_sound(1,s1)

    def set_state_matrix(self):
        self.sm.reset_transitions()

        targetDuration = self.params['targetDuration'].get_value()

        # -- Set state matrix --
        self.sm.add_state(name='startTrial', statetimer=0,
                          transitions={'Tup':'waitForCenterPoke'})
        self.sm.add_state(name='waitForCenterPoke', statetimer=LONGTIME,
                          transitions={'Cin':'playStimulus'})
        self.sm.add_state(name='playStimulus', statetimer=targetDuration,
                          transitions={'Tup':'stopStimulus', 'Cout':'stopStimulus'},
                          outputsOn=['centerLED'],serialOut=1)
        self.sm.add_state(name='stopStimulus', statetimer=0,
                          transitions={'Tup':'waitForSidePoke'},
                          outputsOff=['centerLED'],serialOut=0)
        self.sm.add_state(name='waitForSidePoke', statetimer=LONGTIME,
                          transitions={'Lin':'readyForNextTrial', 'Rin':'readyForNextTrial'})

        self.dispatcherModel.set_state_matrix(self.sm)

if __name__ == "__main__":
    (app,paradigm) = paramgui.create_app(Paradigm)


Exemple #3
0
    def prepare_manual_trial(self):
        self.sm.add_state(name='startTrial', statetimer=0,
                          transitions={'Tup':'waitForPoke'})
        self.sm.add_state(name='waitForPoke',statetimer=1000,
                          transitions={'Cin':'soundOnC','Lin':'soundOnL','Rin':'soundOnR'})
        self.sm.add_state(name='soundOnC', statetimer=self.params['soundDuration'].get_value(),
                          transitions={'Tup':'soundOffC'}, serialOut=self.soundCenterID)
        self.sm.add_state(name='soundOffC', statetimer=self.params['offTime'].get_value(),
                          transitions={'Tup':'readyForNextTrial'})
        self.sm.add_state(name='soundOnL', statetimer=self.params['soundDuration'].get_value(),
                          transitions={'Tup':'soundOffL'}, serialOut=self.soundLeftID)
        self.sm.add_state(name='soundOffL', statetimer=self.params['offTime'].get_value(),
                          transitions={'Tup':'readyForNextTrial'})
        self.sm.add_state(name='soundOnR', statetimer=self.params['soundDuration'].get_value(),
                          transitions={'Tup':'soundOffR'}, serialOut=self.soundRightID)
        self.sm.add_state(name='soundOffR', statetimer=self.params['offTime'].get_value(),
                          transitions={'Tup':'readyForNextTrial'})

    def closeEvent(self, event):
        '''
        Executed when closing the main window.
        This method is inherited from QtGui.QMainWindow, which explains
        its camelCase naming.
        '''
        self.soundClient.shutdown()
        self.dispatcherModel.die()
        event.accept()

if __name__ == '__main__':
    (app,paradigm) = paramgui.create_app(RigTest)
                          outputsOn={'rightLED','rightWater'})
        self.sm.add_state(name='valveOffR',
                          statetimer=self.params['offTime'].get_value(),
                          transitions={'Tup':'readyForNextTrial'},
                          outputsOff={'rightLED','rightWater'})
        pass
        print self.sm ### DEBUG
        self.dispatcherModel.set_state_matrix(self.sm)

        #if self.dispatcherModel.currentTrial < 0:
        #print '---- {0} ---'.format(self.dispatcherModel.currentTrial)
        #pass
        if self.params['nDelivered'].get_value() < self.params['nDeliveries'].get_value():
            self.dispatcherModel.ready_to_start_trial()
            self.params['nDelivered'].set_value(int(self.params['nDelivered'].get_value())+1)
        else:
            self.dispatcherView.stop()
            self.params['nDelivered'].set_value(0)

    def closeEvent(self, event):
        '''
        Executed when closing the main window.
        This method is inherited from QtGui.QMainWindow, which explains
        its camelCase naming.
        '''
        self.dispatcherModel.die()
        event.accept()

if __name__ == "__main__":
    (app,paradigm) = paramgui.create_app(WaterCalibration)
                          transitions={'Tup': 'readyForNextTrial'},
                          outputsOff={'rightLED', 'rightWater'})
        pass
        print self.sm  ### DEBUG
        self.dispatcherModel.set_state_matrix(self.sm)

        #if self.dispatcherModel.currentTrial < 0:
        #print '---- {0} ---'.format(self.dispatcherModel.currentTrial)
        #pass
        if self.params['nDelivered'].get_value(
        ) < self.params['nDeliveries'].get_value():
            self.dispatcherModel.ready_to_start_trial()
            self.params['nDelivered'].set_value(
                int(self.params['nDelivered'].get_value()) + 1)
        else:
            self.dispatcherView.stop()
            self.params['nDelivered'].set_value(0)

    def closeEvent(self, event):
        '''
        Executed when closing the main window.
        This method is inherited from QtGui.QMainWindow, which explains
        its camelCase naming.
        '''
        self.dispatcherModel.die()
        event.accept()


if __name__ == "__main__":
    (app, paradigm) = paramgui.create_app(WaterCalibration)
Exemple #6
0
                              transitions={'Tup':'delayPostLeft'},
                              outputsOn=leftLaserOutput)
            self.sm.add_state(name='delayPostLeft',
                              statetimer=self.params['timeDelayPostLeft'].get_value(),
                              transitions={'Tup':'stimRight'},
                              outputsOff=leftLaserOutput)
            self.sm.add_state(name='stimRight',
                              statetimer=self.params['timeStimRight'].get_value(),
                              transitions={'Tup':'delayPostRight'},
                              outputsOn=rightLaserOutput)
            self.sm.add_state(name='delayPostRight',
                              statetimer=self.params['timeDelayPostRight'].get_value(),
                              transitions={'Tup':'readyForNextTrial'},
                              outputsOff=rightLaserOutput)

        print self.sm ### DEBUG
        self.dispatcherModel.set_state_matrix(self.sm)
        self.dispatcherModel.ready_to_start_trial()

    def closeEvent(self, event):
        '''
        Executed when closing the main window.
        This method is inherited from QtGui.QMainWindow, which explains
        its camelCase naming.
        '''
        self.dispatcherModel.die()
        event.accept()

if __name__ == "__main__":
    (app,paradigm) = paramgui.create_app(PhotoStim)