本文整理汇总了Python中psychopy.iohub.EventConstants.addClassMappings方法的典型用法代码示例。如果您正苦于以下问题:Python EventConstants.addClassMappings方法的具体用法?Python EventConstants.addClassMappings怎么用?Python EventConstants.addClassMappings使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类psychopy.iohub.EventConstants
的用法示例。
在下文中一共展示了EventConstants.addClassMappings方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: createNewMonitoredDevice
# 需要导入模块: from psychopy.iohub import EventConstants [as 别名]
# 或者: from psychopy.iohub.EventConstants import addClassMappings [as 别名]
def createNewMonitoredDevice(self,device_class_name,deviceConfig):
#print2err("#### createNewMonitoredDevice: ",device_class_name)
self._all_device_config_errors=dict()
try:
device_instance=None
device_config=None
device_event_ids=None
event_classes=None
device_instance_and_config=self.addDeviceToMonitor(device_class_name,deviceConfig)
if device_instance_and_config:
device_instance,device_config,device_event_ids,event_classes=device_instance_and_config
DeviceConstants.addClassMapping(device_instance.__class__)
EventConstants.addClassMappings(device_instance.__class__,device_event_ids,event_classes)
else:
print2err('## Device was not started by the ioHub Server: ',device_class_name)
raise ioHubError("Device config validation failed")
except:
print2err("Error during device creation ....")
printExceptionDetailsToStdErr()
raise ioHubError("Error during device creation ....")
# Update DataStore Structure if required.
if psychopy.iohub._DATA_STORE_AVAILABLE:
try:
if self.emrt_file is not None:
self.emrt_file.updateDataStoreStructure(device_instance,event_classes)
except:
print2err("Error while updating datastore for device addition:",device_instance,device_event_ids)
printExceptionDetailsToStdErr()
self.log("Adding ioServer and DataStore event listeners......")
# add event listeners for saving events
if psychopy.iohub._DATA_STORE_AVAILABLE and self.emrt_file is not None:
if device_config['save_events']:
device_instance._addEventListener(self.emrt_file,device_event_ids)
self.log("DataStore listener for device added: device: %s eventIDs: %s"%(device_instance.__class__.__name__,device_event_ids))
#print2err("DataStore listener for device added: device: %s eventIDs: %s"%(device_instance.__class__.__name__,device_event_ids))
else:
#print2err("DataStore saving disabled for device: %s"%(device_instance.__class__.__name__,))
self.log("DataStore saving disabled for device: %s"%(device_instance.__class__.__name__,))
else:
#print2err("DataStore Not Evabled. No events will be saved.")
self.log("DataStore Not Enabled. No events will be saved.")
# Add Device Monitor for Keyboard or Mouse device type
deviceDict=ioServer.deviceDict
iohub=self
if device_class_name in ('Mouse','Keyboard'):
if Computer.system == 'win32':
if self._hookDevice is None:
iohub.log("Creating pyHook Monitors....")
#print2err("Creating pyHook Monitor....")
class pyHookDevice(object):
def __init__(self):
import pyHook
self._hookManager=pyHook.HookManager()
self._mouseHooked=False
self._keyboardHooked=False
if device_class_name == 'Mouse':
#print2err("Hooking Mouse.....")
self._hookManager.MouseAll = deviceDict['Mouse']._nativeEventCallback
self._hookManager.HookMouse()
self._mouseHooked=True
elif device_class_name == 'Keyboard':
#print2err("Hooking Keyboard.....")
self._hookManager.KeyAll = deviceDict['Keyboard']._nativeEventCallback
self._hookManager.HookKeyboard()
self._keyboardHooked=True
#iohub.log("WindowsHook PumpEvents Periodic Timer Created.")
def _poll(self):
import pythoncom
# PumpWaitingMessages returns 1 if a WM_QUIT message was received, else 0
if pythoncom.PumpWaitingMessages() == 1:
raise KeyboardInterrupt()
#print2err("Creating pyHook Monitor......")
self._hookDevice=pyHookDevice()
hookMonitor=DeviceMonitor(self._hookDevice,0.00375)
self.deviceMonitors.append(hookMonitor)
#print2err("Created pyHook Monitor.")
else:
#print2err("UPDATING pyHook Monitor....")
if device_class_name == 'Mouse' and self._hookDevice._mouseHooked is False:
#print2err("Hooking Mouse.....")
self._hookDevice._hookManager.MouseAll = deviceDict['Mouse']._nativeEventCallback
self._hookDevice._hookManager.HookMouse()
self._hookDevice._mouseHooked=True
#.........这里部分代码省略.........