Example #1
0
 def pumpMsgTasklet(self, sleep_interval):
     import pythoncom
     while self._running:
         stime=Computer.getTime()
         if pythoncom.PumpWaitingMessages() == 1:
             break
         dur = sleep_interval - (Computer.getTime()-stime)
         gevent.sleep(max(0.0, dur))
Example #2
0
 def pumpMsgTasklet(self, sleep_interval):
     import pythoncom
     while self._running:
         stime = Computer.getTime()
         if pythoncom.PumpWaitingMessages() == 1:
             break
         dur = sleep_interval - (Computer.getTime() - stime)
         gevent.sleep(max(0.0, dur))
Example #3
0
 def checkForEvents(self):
     # get the time we request events from the ioHub
     stime = Computer.getTime()
     r = self.hub.getEvents()
     if r and len(r) > 0:
         # so there were events returned in the request, so include this getEvent request in the tally
         etime = Computer.getTime()
         dur = etime - stime
         return r, dur * 1000.0
     return None, None
Example #4
0
 def checkForEvents(self):
     # get the time we request events from the ioHub
     stime=Computer.getTime()
     r = self.hub.getEvents()
     if r and len(r) > 0:
         # so there were events returned in the request, so include this getEvent request in the tally
         etime=Computer.getTime()
         dur=etime-stime
         return r, dur*1000.0
     return None,None
Example #5
0
    def test_getTime(self):
        ta = Computer.currentSec()
        tb = Computer.currentTime()
        tc = Computer.getTime()
        tp = getTime()

        assert ta < tb < tc < tp
        assert tp - ta < 0.002
Example #6
0
    def run(self, *args):
        """
        The run method contains your experiment logic. It is equal to what 
        would be in your main psychopy experiment script.py file in a standard 
        psychopy experiment setup. That is all there is too it really.
        """
        run_demo = True

        kb = self.hub.devices.kb
        evt_sub = self.hub.devices.evt_sub

        # This demo does not display a PsychoPy window, instead it just prints
        # keyboard event info. received from the local keyboard device and keyboard
        # events received from the RemoteEventSubscriber device. Inform the user of this...
        #
        msg_dialog = MessageDialog(
            "This demo does not create a PsychoPy window.\nInstead local and subscribed keyboard event info is simply printed to stdout.\n\nOnce the demo has started, press 'ESCAPE' to quit.\n\nPress OK to continue or Cancel to abort the demo.",
            title="PsychoPy.ioHub PUB - SUB Event Demo",
            dialogType=MessageDialog.IMPORTANT_DIALOG,
            display_index=0)

        if msg_dialog.show() == MessageDialog.OK_RESULT:
            # wait until 'ESCAPE' is pressed, or quit after 15 seconds of no kb events.
            self.hub.clearEvents('all')
            last_event_time = Computer.getTime()
            while run_demo is True and Computer.getTime(
            ) - last_event_time < 15.0:
                local_kb_events = kb.getEvents()
                for event in local_kb_events:
                    print('* Local KB Event: {etime}\t{ekey}\t{edelay}'.format(
                        etime=event.time, ekey=event.key, edelay=event.delay))
                    last_event_time = event.time
                    if event.key == u'ESCAPE':
                        run_demo = False
                        break
                subscribed_kb_events = evt_sub.getEvents()
                for event in subscribed_kb_events:
                    print('# Subscribed KB Event: {etime}\t{ekey}\t{edelay}'.
                          format(etime=event.time,
                                 ekey=event.key,
                                 edelay=event.delay))
                self.hub.wait(0.1)
Example #7
0
    def run(self,*args):
        """
        The run method contains your experiment logic. It is equal to what 
        would be in your main psychopy experiment script.py file in a standard 
        psychopy experiment setup. That is all there is too it really.
        """
        run_demo=True
     
        kb=self.hub.devices.kb
        evt_sub=self.hub.devices.evt_sub
            
        # This demo does not display a PsychoPy window, instead it just prints
        # keyboard event info. received from the local keyboard device and keyboard
        # events received from the RemoteEventSubscriber device. Inform the user of this...
        # 
        msg_dialog=MessageDialog("This demo does not create a PsychoPy window.\nInstead local and subscribed keyboard event info is simply printed to stdout.\n\nOnce the demo has started, press 'ESCAPE' to quit.\n\nPress OK to continue or Cancel to abort the demo.",
                     title="PsychoPy.ioHub PUB - SUB Event Demo", 
                     dialogType=MessageDialog.IMPORTANT_DIALOG,display_index=0)

        if msg_dialog.show() == MessageDialog.OK_RESULT:
            # wait until 'ESCAPE' is pressed, or quit after 15 seconds of no kb events.
            self.hub.clearEvents('all')
            last_event_time=Computer.getTime()
            while run_demo is True and Computer.getTime()-last_event_time<15.0:
                local_kb_events=kb.getEvents()
                for event in local_kb_events:
                    print('* Local KB Event: {etime}\t{ekey}\t{edelay}'.format(
                        etime=event.time,ekey=event.key,edelay=event.delay))
                    last_event_time=event.time
                    if event.key == u'ESCAPE':
                        run_demo=False
                        break
                subscribed_kb_events=evt_sub.getEvents()
                for event in subscribed_kb_events:
                    print('# Subscribed KB Event: {etime}\t{ekey}\t{edelay}'.format(
                        etime=event.time, ekey=event.key,edelay=event.delay))
                self.hub.wait(0.1)
Example #8
0
    def test_getTime(self):
        ta = Computer.currentSec()
        tb = Computer.currentTime()
        tc = Computer.getTime()
        tp = getTime()

        assert ta <= tb <= tc <= tp
        assert tp - ta < 0.002

        ta = getTime()
        tb = self.io.getTime()
        tc = self.io.getTime()
        tp = getTime()

        assert ta <= tb <= tc <= tp
        assert tp - ta < 0.01
Example #9
0
    def test_getTime(self):
        ta = Computer.currentSec()
        tb = Computer.currentTime()
        tc = Computer.getTime()
        tp = getTime()

        assert ta <= tb <= tc <= tp
        assert tp - ta < 0.002

        ta = getTime()
        tb = self.io.getTime()
        tc = self.io.getTime()
        tp = getTime()

        assert ta <= tb <= tc <= tp
        assert tp - ta < 0.01
Example #10
0
 def processEventsTasklet(self,sleep_interval):
     while self._running:
         stime=Computer.getTime()
         self.processDeviceEvents()
         dur = sleep_interval - (Computer.getTime()-stime)
         gevent.sleep(max(0.0, dur))
Example #11
0
 def getTime(self):
     """
     See Computer.getTime documentation, where current process will be
     the ioHub Server process.
     """
     return Computer.getTime()
Example #12
0
 def processEventsTasklet(self, sleep_interval):
     while self._running:
         stime = Computer.getTime()
         self.processDeviceEvents()
         dur = sleep_interval - (Computer.getTime() - stime)
         gevent.sleep(max(0.0, dur))
Example #13
0
 def getTime(self):
     """
     See Computer.getTime documentation, where current process will be
     the ioHub Server process.
     """
     return Computer.getTime()