本文整理汇总了Python中expyriment.misc._timer.get_time函数的典型用法代码示例。如果您正苦于以下问题:Python get_time函数的具体用法?Python get_time怎么用?Python get_time使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了get_time函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: readMouse
def readMouse(startTime, button, duration=None):
iKeyboard = Keyboard()
if duration is not None:
while int((get_time() - startTime) * 1000) <= duration:
alle = pygame.event.get()
rt = int((get_time() - startTime)*1000)
for e in alle:
if e.type == pygame.MOUSEBUTTONDOWN and e.button == button:
return rt, coordinates2position(e.pos)
if iKeyboard.process_control_keys():
break
return None, None
else:
while True:
alle = pygame.event.get()
rt = int((get_time() - startTime)*1000)
for e in alle:
if e.type == pygame.MOUSEBUTTONDOWN and e.button == button:
return rt, coordinates2position(e.pos)
if iKeyboard.process_control_keys():
break
示例2: blur
def blur(self, level):
"""Blur the stimulus.
This blurs the stimulus, by scaling it down and up by the factor of
'level'.
Parameters
----------
level : int
level of bluring
Returns
-------
time : int
the time it took to execute this method
Notes
-----
Depending on the size of the stimulus, this method may take some time
to compute!
"""
start = get_time()
self.scale((1.0 / level, 1.0 / level))
self.scale((level, level))
if self._logging:
expyriment._active_exp._event_file_log(
"Stimulus,blured,{0}, level={1}".format(self.id, level), 2)
return int((get_time() - start) * 1000)
示例3: move
def move(self, offset):
"""Moves the stimulus in 2D space.
When using OpenGL, this can take longer then 1ms!
Parameters
----------
offset : list, optional
translation along x and y axis
Returns
-------
time : int
the time it took to execute this method
"""
start = get_time()
moved = False
x = offset[0]
y = offset[1]
if x > 0 or x < 0:
self._position[0] = self._position[0] + x
moved = True
if y > 0 or y < 0:
self._position[1] = self._position[1] + y
moved = True
if moved and self._ogl_screen is not None:
self._ogl_screen.refresh_position()
return int((get_time() - start) * 1000)
示例4: rotate
def rotate(self, degree):
"""Rotate the stimulus.
This is a surface operation. After this, a surface will be present!
Rotating goes along with a quality loss. Thus, rotating an already
rotated stimulus is not a good idea.
Parameters
----------
degree : int
degree to rotate counterclockwise
Returns
-------
time : int
the time it took to execute this method
Notes
-----
Depending on the size of the stimulus, this method may take some time
to compute!
"""
start = get_time()
if not self._set_surface(self._get_surface()):
raise RuntimeError(Visual._compression_exception_message.format(
"rotate()"))
self.unload(keep_surface=True)
self._set_surface(pygame.transform.rotate(self._get_surface(),
degree))
if self._logging:
expyriment._active_exp._event_file_log(
"Stimulus,rotated,{0}, degree={1}".format(self.id, degree))
return int((get_time() - start) * 1000)
示例5: flip
def flip(self, booleans):
"""Flip the stimulus.
This is a surface operation. After this, a surface will be present!
Parameters
----------
booleans : (bool, bool)
booleans to flip or not
Returns
-------
time : int
the time it took to execute this method
Notes
-----
Depending on the size of the stimulus, this method may take some time
to compute!
"""
start = get_time()
if not self._set_surface(self._get_surface()):
raise RuntimeError(Visual._compression_exception_message.format(
"flip()"))
self.unload(keep_surface=True)
self._set_surface(pygame.transform.flip(self._get_surface(),
booleans[0], booleans[1]))
if self._logging:
expyriment._active_exp._event_file_log(
"Stimulus,flipped,{0}, booleans={1}".format(self.id, booleans), 2)
return int((get_time() - start) * 1000)
示例6: compress
def compress(self):
""""Compress the stimulus.
This will create a temporary file on the disk where the surface of the
stimululs is written to.
The surface will now be read from the disk to free memory.
Compressed stimuli cannot do surface operations!
Preloading comressed stimuli is possible and highly recommended.
Depending on the size of the stimulus, this method may take some time
to compute!
Returns
-------
time : int
the time it took to execute this method
"""
start = get_time()
if self.is_compressed is False:
if self._compression_filename is None:
fid, self._compression_filename = tempfile.mkstemp(
dir=defaults.tempdir, suffix=".tga")
os.close(fid)
pygame.image.save(self._get_surface(), self._compression_filename)
self._is_compressed = True
self._surface = None
if self._logging:
expyriment._active_exp._event_file_log(
"Stimulus,compressed,{0}".format(self.id), 2)
return int((get_time() - start) * 1000)
示例7: move
def move(self, offset):
"""Moves the stimulus in 2D space.
When using OpenGL, this can take longer then 1ms!
Parameters
----------
offset : tuple (x,y)
translation along x and y axis
Returns
-------
time : int
the time it took to execute this method
Notes
--------
see also reposition
"""
start = get_time()
moved = False
if offset[0] != 0:
self._position[0] = self._position[0] + offset[0]
moved = True
if offset[1] != 0:
self._position[1] = self._position[1] + offset[1]
moved = True
if moved and self._ogl_screen is not None:
self._ogl_screen.refresh_position()
return int((get_time() - start) * 1000)
示例8: send
def send(self, code=None, duration=None):
"""Send a marker.
This sends a marker via the specified interface.
If a duration is given, a 0 will be sent automatically after each
code.
Note for EEG/MEG systems:
If the system is receiving the markers on a parallel port, the
duration between sending a code an the subsequent 0 should be at least
1000/samplerate!
Parameters
----------
code : int, optional
a specific code
duration : int, optional
duration (in ms) for sending a 0 after a code
"""
if not code:
code = self.default_code
if not duration:
duration = self.default_duration
self._interface.send(code)
if duration:
start = get_time()
while (get_time() - start) * 1000 < duration:
pass
self._interface.send(0)
if self._logging:
expyriment._active_exp._event_file_log(
"MarkerOutput,sent,{0}".format(code))
示例9: blur
def blur(self, level):
"""Blur the shape.
This blurs the stimulus, by scaling it down and up by the factor of
'level'.
Notes
-----
Depending on the blur level and the size of your stimulus, this method
may take some time!
Parameters
----------
level : int
level of bluring
Returns
-------
time : int
the time it took to execute this method
"""
start = get_time()
self.scale((1.0 / level, 1.0 / level))
self.scale((level, level))
return int((get_time() - start) * 1000)
示例10: decompress
def decompress(self):
"""Decompress the stimulus.
This will decompress the stimulus.
The surface will now be read from memory again.
Depending on the size of the stimulus, this method may take some time
to compute!
Returns
-------
time : int
the time it took to execute this method
"""
start = get_time()
if self.is_compressed:
self._surface = pygame.image.load(
self._compression_filename).convert_alpha()
self._is_compressed = False
if self._logging:
expyriment._active_exp._event_file_log(
"Stimulus,decompressed,{0}".format(self.id), 2)
return int((get_time() - start) * 1000)
示例11: clear_surface
def clear_surface(self):
"""Clear the stimulus surface.
Surfaces are automatically created after any surface operation
(presenting, plotting, rotating, scaling, flipping etc.) and preloading.
If the stimulus was preloaded, this method unloads the stimulus.
This method is functionally equivalent with unload(keep_surface=False).
Returns
-------
time : int
the time it took to execute this method
Notes
-----
Depending on the size of the stimulus, this method may take some time
to compute!
"""
start = get_time()
if self.is_preloaded:
self.unload(keep_surface=False)
self._is_compressed = False
self._set_surface(None)
if self._logging:
expyriment._active_exp._event_file_log(
"Stimulus,surface cleared,{0}".format(self.id), 2)
return int((get_time() - start) * 1000)
示例12: request_data
def request_data(self, request, *args):
"""Request data from Turbo-Satori.
Parameters:
-----------
request : str
The request to be sent to Turbo-Satori.
Returns:
--------
data : str
The byte string of the received data.
rt : int
The time it took to get the data.
"""
start = get_time()
self._tcp.clear()
self._send(request, *args)
data = self._wait()
if data is None:
return None, None
elif data[0:len(request)] != request:
return data, None
else:
return data[len(request) + 1:], int((get_time() - start) * 1000)
示例13: save
def save(self):
"""Save the new data to data-file.
Returns
-------
time : int
the time it took to execute this method
"""
start = get_time()
if len(self._subject_info) > 0 or len(self._experiment_info) > 0 \
or self._variable_names_changed:
# Re-write header and varnames
tmpfile_name = "{0}{1}{2}".format(self.directory, os.path.sep, uuid.uuid4())
os.rename(self._fullpath, tmpfile_name)
fl = open(self._fullpath, 'w+')
tmpfl = open(tmpfile_name, 'r')
section = None
while True:
line = tmpfl.readline()
if not line:
break
if line.startswith(self.comment_char + "e"):
section = "e"
elif line.startswith(self.comment_char + "s"):
section = "s"
else:
if section == "e": # Previous line was last #e
if len(self._experiment_info) > 0:
fl.write("".join(self._experiment_info))
self._experiment_info = []
section = None
elif section == "s": # Previous line was last #s
if len(self._subject_info) > 0:
fl.write("".join(self._subject_info))
self._subject_info = []
section = None
# Re-write variable names after #s-section
fl.write(unicode2str(
self.variable_names + defaults.outputfile_eol))
self._variable_names_changed = False
line = '' # Skip old varnames
fl.write(line)
tmpfl.close()
fl.close()
os.remove(tmpfile_name)
self._subject_info = []
self._experiment_info = []
if self._buffer != []:
OutputFile.save(self)
if self._logging:
expyriment._active_exp._event_file_log("Data,saved")
return int((get_time() - start) * 1000)
示例14: preload
def preload(self, inhibit_ogl_compress=False):
"""Preload the stimulus to memory.
This will prepare the stimulus for a fast presentation.
In OpenGL mode this method creates an OpenGL texture based on the
surface of the stimulus.
When OpenGL is switched off, this method will create a surface if it
doesn't exists yet.
If stimuli are not preloaded manually, this will happen
automatically during presentation. However, stimulus presentation will
take some time then!
Always preload your stimuli when a timing acurate presentation is
needed!
Parameters
----------
inhibit_ogl_compress : bool, optional
inhibits OpenGL stimuli to be automatically compressed
(default=False)
Returns
-------
time : int
the time it took to execute this method
Notes
-----
Depending on the size of the stimulus, this method may take some time
to compute!
"""
start = get_time()
if not expyriment._active_exp.is_initialized:
message = "Can't preload stimulus. Expyriment needs to be " + \
"initilized before preloading a stimulus."
raise RuntimeError(message)
self._was_compressed_before_preload = self.is_compressed
if not self.is_preloaded:
if expyriment._active_exp.screen.open_gl:
self._ogl_screen = _LaminaPanelSurface(
self._get_surface(),
position=self.position)
if not inhibit_ogl_compress:
self.compress()
else:
self.decompress()
self._set_surface(self._get_surface())
self._is_preloaded = True
if self._logging:
expyriment._active_exp._event_file_log(
"Stimulus,preloaded,{0}".format(self.id), 2)
return int((get_time() - start) * 1000)
示例15: present
def present(self, clear=True, update=True):
"""Present the stimulus on the screen.
This clears and updates the screen automatically.
When not preloaded, depending on the size of the stimulus, this method
can take some time to compute!
Parameters
----------
clear : bool, optional
if True the screen will be cleared automatically
(default = True)
update : bool, optional
if False the screen will be not be updated automatically
(default = True)
Returns
-------
time : int
the time it took to execute this method
"""
if not expyriment._active_exp.is_initialized or\
expyriment._active_exp.screen is None:
raise RuntimeError("Cannot not find a screen!")
start = get_time()
preloading_required = not(self.is_preloaded)
if clear:
expyriment._active_exp.screen.clear()
if preloading_required:
# Check if stimulus has surface
keep_surface = self.has_surface
self.preload(inhibit_ogl_compress=True)
if expyriment._active_exp.screen.open_gl:
self._ogl_screen.display()
else:
screen = expyriment._active_exp.screen.surface
rect = pygame.Rect((0, 0), self.surface_size)
screen_size = screen.get_size()
rect.center = [self.position[0] + screen_size[0] / 2,
- self.position[1] + screen_size[1] / 2]
screen.blit(self._get_surface(), rect)
if self._logging:
expyriment._active_exp._event_file_log("Stimulus,presented,{0}"\
.format(self.id), 1)
if update:
expyriment._active_exp.screen.update()
if preloading_required:
self.unload(keep_surface=keep_surface)
return int((get_time() - start) * 1000)