本文整理汇总了Python中expyriment.misc._timer.get_time函数的典型用法代码示例。如果您正苦于以下问题:Python get_time函数的具体用法?Python get_time怎么用?Python get_time使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了get_time函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的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
开发者ID:arnaudbore,项目名称:declarativeTask,代码行数:25,代码来源:ld_utils.py
示例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)
开发者ID:fnielsen,项目名称:expyriment,代码行数:30,代码来源:_visual.py
示例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)
开发者ID:Dannnno,项目名称:expyriment,代码行数:30,代码来源:_visual.py
示例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)
开发者ID:Dannnno,项目名称:expyriment,代码行数:35,代码来源:_visual.py
示例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)
开发者ID:fnielsen,项目名称:expyriment,代码行数:33,代码来源:_visual.py
示例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)
开发者ID:fnielsen,项目名称:expyriment,代码行数:32,代码来源:_visual.py
示例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)
开发者ID:fnielsen,项目名称:expyriment,代码行数:32,代码来源:_visual.py
示例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))
开发者ID:fnielsen,项目名称:expyriment,代码行数:34,代码来源:_markeroutput.py
示例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)
开发者ID:fnielsen,项目名称:expyriment,代码行数:26,代码来源:_shape.py
示例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)
开发者ID:fnielsen,项目名称:expyriment,代码行数:25,代码来源:_visual.py
示例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)
开发者ID:fnielsen,项目名称:expyriment,代码行数:29,代码来源:_visual.py
示例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)
开发者ID:MichaelUM,项目名称:expyriment-stash,代码行数:27,代码来源:_turbosatorinetworkinterface.py
示例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)
开发者ID:fnielsen,项目名称:expyriment,代码行数:58,代码来源:_files.py
示例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)
开发者ID:fnielsen,项目名称:expyriment,代码行数:55,代码来源:_visual.py
示例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)
开发者ID:fnielsen,项目名称:expyriment,代码行数:55,代码来源:_visual.py
示例16: scale
def scale(self, factors):
"""Scale the stimulus.
This is a surface operation. After this, a surface will be present!
Negative scaling values will flip the stimulus.
Scaling goes along with a quality loss. Thus, scaling an already
scaled stimulus is not a good idea.
Parameters
----------
factors : (int, int) or (float, float)
tuple representing the x and y factors to scale or a single number.
In the case of a single number x and y scaling will be the
identical (i.e., proportional scaling)
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(
"scale()"))
self.unload(keep_surface=True)
flip = [False, False]
if type(factors) in [types.IntType, types.FloatType]:
factors = [factors, factors]
else:
factors = list(factors)
if factors[0] < 0:
flip[0] = True
factors[0] = abs(factors[0])
if factors[1] < 0:
flip[1] = True
factors[1] = abs(factors[1])
self._set_surface(pygame.transform.smoothscale(
self._get_surface(),
(int(round(self.surface_size[0] * factors[0])),
int(round(self.surface_size[1] * factors[1])))))
if True in flip:
self.flip(flip)
if self._logging:
expyriment._active_exp._event_file_log(
"Stimulus,scaled,{0}, factors={1}".format(self.id, factors), 2)
return int((get_time() - start) * 1000)
开发者ID:fnielsen,项目名称:expyriment,代码行数:53,代码来源:_visual.py
示例17: unload
def unload(self, keep_surface=False):
"""Unload the stimulus from memory.
This will unload preloaded stimuli.
In OpenGL mode, this method will remove the reference to the OpenGL
texture and the surface (when 'keep_surface' is False).
When OpenGL is switched off, the reference to the surface will be
removed (when 'keep_surface' is False).
Parameters
----------
keep_surface : bool, optional
keep the surface after unload (default=False)
Returns
-------
time : int
the time it took to execute this method
See Also
--------
clear_surface.
Notes
-----
Depending on the size of the stimulus, this method may take some time
to compute!
"""
start = get_time()
if expyriment._active_exp.screen.open_gl:
self._ogl_screen = None
if self.is_preloaded and not self._was_compressed_before_preload \
and keep_surface:
self.decompress()
else: # Pygame surface
if self.is_preloaded and self._was_compressed_before_preload \
and keep_surface:
self.compress()
if self.is_preloaded and self._logging:
expyriment._active_exp._event_file_log("Stimulus,unloaded,{0}"\
.format(self.id), 2)
if not keep_surface:
self._is_compressed = False
self._surface = None
if self._logging:
expyriment._active_exp._event_file_log("Stimulus,surface cleared,{0}"\
.format(self.id), 2)
self._is_preloaded = False
return int((get_time() - start) * 1000)
开发者ID:fnielsen,项目名称:expyriment,代码行数:52,代码来源:_visual.py
示例18: wait_press
def wait_press(self, buttons=None, duration=None):
"""Wait for gamepad button press.
Returns the found button and the reaction time.
Parameters
----------
buttons : int or list, optional
specific buttons to wait for
duration : int, optional
maximal time to wait in ms
Returns
-------
button : int
button _id of the pressed button
rt : int
reaction time in ms
"""
start = get_time()
rt = None
_button = None
self.clear()
if buttons is None:
buttons = range(self.get_numbuttons())
if type(buttons) is not list:
buttons = [buttons]
done = False
while not done:
expyriment._active_exp._execute_wait_callback()
for button in buttons:
if self.get_button(button):
_button = button
rt = int((get_time() - start) * 1000)
done = True
break
if _button is not None or Keyboard.process_control_keys():
done = True
break
if duration:
if int((get_time() - start) * 1000) >= duration:
done = True
break
time.sleep(0.0005)
if self._logging:
expyriment._active_exp._event_file_log(
"Gamepad,received,{0},wait_press".format(_button))
return _button, rt
开发者ID:Dannnno,项目名称:expyriment,代码行数:52,代码来源:_gamepad.py
示例19: scramble
def scramble(self, grain_size):
"""Scramble the stimulus.
Attention: If the surface size is not a multiple of the grain size,
you may loose some pixels on the edge.
Parameters
----------
grain_size : int or (int, int)
size of a grain (use tuple of integers for different width & height)
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 type(grain_size) is int:
grain_size = [grain_size, grain_size]
# Make Rect list
if not self._set_surface(self._get_surface()):
raise RuntimeError(Visual._compression_exception_message.format(
"scramble()"))
s = self.surface_size
source = []
for r in range(s[1] / int(grain_size[1])):
for c in range(s[0] / int(grain_size[0])):
xy = (c * int(grain_size[0]), r * int(grain_size[1]))
source.append(pygame.Rect(xy, grain_size))
# Make copy and shuffle
dest = copy.deepcopy(source)
random.shuffle(dest)
# Create a new surface
tmp_surface = pygame.surface.Surface(
s, pygame.SRCALPHA).convert_alpha()
for n, s in enumerate(source):
tmp_surface.blit(self._get_surface(), dest[n], s)
self._set_surface(tmp_surface)
if self._logging:
expyriment._active_exp._event_file_log(
"Stimulus,scrambled,{0}, grain_size={1}".format(
self.id, grain_size), 2)
return int((get_time() - start) * 1000)
开发者ID:fnielsen,项目名称:expyriment,代码行数:51,代码来源:_visual.py
示例20: create_mask
def create_mask(self):
"""Creates a new visual mask.
Notes
-----
CAUTION: Depending on the size of the stimulus, this method may take
some time to execute.
Returns
-------
time : int
the time it took to execute this method in ms
"""
start = get_time()
was_preloaded = self.is_preloaded
if was_preloaded:
self.unload()
s = (self._size[0] + 4 * self.smoothing,
self._size[1] + 4 * self.smoothing) #somewhat larger mask
im = Image.new("RGB", s)
draw = ImageDraw.Draw(im)
draw.rectangle([(0, 0), s], outline=self.background_colour,
fill=self.background_colour)
n_dots_x = int(s[0] / self.dot_size[0]) + 1
n_dots_y = int(s[1] / self.dot_size[1]) + 1
dots = list(range(n_dots_x * n_dots_y))
shuffle(dots)
for d in dots[:int(len(dots) * self.dot_percentage / 100)]:
y = (d // n_dots_x) * self.dot_size[1]
x = (d % n_dots_x) * self.dot_size[0]
draw.rectangle([(x, y),
(x + self.dot_size[0], y + self.dot_size[1])],
outline=self.dot_colour, fill=self.dot_colour)
for x in range(self.smoothing):
im = im.filter(ImageFilter.BLUR).filter(ImageFilter.SMOOTH_MORE)
#crop image and save
c = (im.size[0] // 2, im.size[1] // 2)
box = (c[0] - self._size[0] // 2, c[1] - self._size[1] // 2,
c[0] + self._size[0] // 2, c[1] + self._size[1] // 2)
im = im.crop(box)
im.save(self._filename, format="png")
if was_preloaded:
self.preload()
return int((get_time() - start) * 1000)
开发者ID:MichaelUM,项目名称:expyriment-stash,代码行数:51,代码来源:_visualmask.py
注:本文中的expyriment.misc._timer.get_time函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论