gazetk / DesktopConnector / DeviceServer_SMI_REDm / iViewXAPI.py @ 2eb54f9d
History | View | Annotate | Download (3.639 KB)
1 |
# -----------------------------------------------------------------------
|
---|---|
2 |
#
|
3 |
# (c) Copyright 1997-2013, SensoMotoric Instruments GmbH
|
4 |
#
|
5 |
# Permission is hereby granted, free of charge, to any person or
|
6 |
# organization obtaining a copy of the software and accompanying
|
7 |
# documentation covered by this license (the "Software") to use,
|
8 |
# reproduce, display, distribute, execute, and transmit the Software,
|
9 |
# and to prepare derivative works of the Software, and to permit
|
10 |
# third-parties to whom the Software is furnished to do so, all subject
|
11 |
# to the following:
|
12 |
#
|
13 |
# The copyright notices in the Software and this entire statement,
|
14 |
# including the above license grant, this restriction and the following
|
15 |
# disclaimer, must be included in all copies of the Software, in whole
|
16 |
# or in part, and all derivative works of the Software, unless such
|
17 |
# copies or derivative works are solely in the form of
|
18 |
# machine-executable object code generated by a source language
|
19 |
# processor.
|
20 |
#
|
21 |
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
22 |
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
23 |
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE AND
|
24 |
# NON-INFRINGEMENT. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR ANYONE
|
25 |
# DISTRIBUTING THE SOFTWARE BE LIABLE FOR ANY DAMAGES OR OTHER
|
26 |
# LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT
|
27 |
# OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
28 |
# THE SOFTWARE.
|
29 |
#
|
30 |
# -----------------------------------------------------------------------
|
31 |
# iViewXAPI.py
|
32 |
#
|
33 |
# Demonstrates features of iView API
|
34 |
# Defines structures
|
35 |
# Loads in iViewXAPI.dll
|
36 |
# This script shows how to set up an experiment with Python 2.7.1 (with ctypes Library)
|
37 |
|
38 |
|
39 |
from ctypes import * |
40 |
|
41 |
|
42 |
#===========================
|
43 |
# Struct Definition
|
44 |
#===========================
|
45 |
|
46 |
class CSystem(Structure): |
47 |
_fields_ = [("samplerate", c_int),
|
48 |
("iV_MajorVersion", c_int),
|
49 |
("iV_MinorVersion", c_int),
|
50 |
("iV_Buildnumber", c_int),
|
51 |
("API_MajorVersion", c_int),
|
52 |
("API_MinorVersion", c_int),
|
53 |
("API_Buildnumber", c_int),
|
54 |
("iV_ETDevice", c_int)]
|
55 |
|
56 |
class CCalibration(Structure): |
57 |
_fields_ = [("method", c_int),
|
58 |
("visualization", c_int),
|
59 |
("displayDevice", c_int),
|
60 |
("speed", c_int),
|
61 |
("autoAccept", c_int),
|
62 |
("foregroundBrightness", c_int),
|
63 |
("backgroundBrightness", c_int),
|
64 |
("targetShape", c_int),
|
65 |
("targetSize", c_int),
|
66 |
("targetFilename", c_char * 256)] |
67 |
|
68 |
class CEye(Structure): |
69 |
_fields_ = [("gazeX", c_double),
|
70 |
("gazeY", c_double),
|
71 |
("diam", c_double),
|
72 |
("eyePositionX", c_double),
|
73 |
("eyePositionY", c_double),
|
74 |
("eyePositionZ", c_double)]
|
75 |
|
76 |
class CSample(Structure): |
77 |
_fields_ = [("timestamp", c_longlong),
|
78 |
("leftEye", CEye),
|
79 |
("rightEye", CEye),
|
80 |
("planeNumber", c_int)]
|
81 |
|
82 |
class CEvent(Structure): |
83 |
_fields_ = [("eventType", c_char),
|
84 |
("eye", c_char),
|
85 |
("startTime", c_longlong),
|
86 |
("endTime", c_longlong),
|
87 |
("duration", c_longlong),
|
88 |
("positionX", c_double),
|
89 |
("positionY", c_double)]
|
90 |
|
91 |
class CAccuracy(Structure): |
92 |
_fields_ = [("deviationLX",c_double),
|
93 |
("deviationLY",c_double),
|
94 |
("deviationRX",c_double),
|
95 |
("deviationRY",c_double)]
|
96 |
|
97 |
|
98 |
#===========================
|
99 |
# Loading iViewX.dll
|
100 |
#===========================
|
101 |
|
102 |
iViewXAPI = windll.LoadLibrary("iViewXAPI.dll")
|
103 |
|
104 |
|
105 |
#===========================
|
106 |
# Initializing Structs
|
107 |
#===========================
|
108 |
|
109 |
systemData = CSystem(0, 0, 0, 0, 0, 0, 0, 0) |
110 |
calibrationData = CCalibration(5, 1, 0, 0, 1, 20, 239, 1, 15, b"") |
111 |
leftEye = CEye(0,0,0) |
112 |
rightEye = CEye(0,0,0) |
113 |
sampleData = CSample(0,leftEye,rightEye,0) |
114 |
eventData = CEvent('F', 'L', 0, 0, 0, 0, 0) |
115 |
accuracyData = CAccuracy(0,0,0,0) |
116 |
|
117 |
|