# 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)
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)
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)