gazetk / DesktopConnector / DeviceServer_SMI_REDm / iViewXAPI.py @ b8e587a8
History | View | Annotate | Download (3.639 KB)
1 | b8e587a8 | Thies Pfeiffer | # -----------------------------------------------------------------------
|
---|---|---|---|
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 |