gazetk / DesktopConnector / DeviceServer_MyGaze / myGazeAPI.py @ 6b3a8f8f
History | View | Annotate | Download (3.163 KB)
1 | 908a231e | Thies Pfeiffer | # myGazeAPI.py
|
---|---|---|---|
2 | #
|
||
3 | # (C) Copyright 2013, Visual Interaction GmbH
|
||
4 | # All rights reserved. This work contains unpublished proprietary
|
||
5 | # information of Visual Interaction GmbH and is copy protected by law.
|
||
6 | # (see accompanying file eula.pdf)
|
||
7 | #
|
||
8 | # Author: Visual Interaction GmbH
|
||
9 | # November, 2012
|
||
10 | |||
11 | |||
12 | |||
13 | from ctypes import * |
||
14 | |||
15 | |||
16 | # ----------------------------------------------------------------------------
|
||
17 | # ---- Struct Definitions
|
||
18 | # ---- (for detailed information due to the data
|
||
19 | # ---- structuresplease refer to the myGaze SDK Manual)
|
||
20 | # ----------------------------------------------------------------------------
|
||
21 | |||
22 | class CSystem(Structure): |
||
23 | _fields_ = [("samplerate", c_int),
|
||
24 | ("iV_MajorVersion", c_int),
|
||
25 | ("iV_MinorVersion", c_int),
|
||
26 | ("iV_Buildnumber", c_int),
|
||
27 | ("API_MajorVersion", c_int),
|
||
28 | ("API_MinorVersion", c_int),
|
||
29 | ("API_Buildnumber", c_int),
|
||
30 | ("iV_ETDevice", c_int)]
|
||
31 | |||
32 | |||
33 | class CCalibrationPoint(Structure): |
||
34 | _fields_ = [("number", c_int),
|
||
35 | ("positionX", c_int),
|
||
36 | ("positionY", c_int)]
|
||
37 | |||
38 | |||
39 | class CEye(Structure): |
||
40 | _fields_ = [("gazeX", c_double),
|
||
41 | ("gazeY", c_double),
|
||
42 | ("diam", c_double),
|
||
43 | ("eyePositionX", c_double),
|
||
44 | ("eyePositionY", c_double),
|
||
45 | ("eyePositionZ", c_double)]
|
||
46 | |||
47 | |||
48 | class CSample(Structure): |
||
49 | _fields_ = [("timestamp", c_longlong),
|
||
50 | ("leftEye", CEye),
|
||
51 | ("rightEye", CEye)]
|
||
52 | |||
53 | |||
54 | class CEvent(Structure): |
||
55 | _fields_ = [("eventType", c_char),
|
||
56 | ("eye", c_char),
|
||
57 | ("startTime", c_longlong),
|
||
58 | ("endTime", c_longlong),
|
||
59 | ("duration", c_longlong),
|
||
60 | ("positionX", c_double),
|
||
61 | ("positionY", c_double)]
|
||
62 | |||
63 | |||
64 | class CAccuracy(Structure): |
||
65 | _fields_ = [("deviationLX", c_double),
|
||
66 | ("deviationLY", c_double),
|
||
67 | ("deviationRX", c_double),
|
||
68 | ("deviationRY", c_double)]
|
||
69 | |||
70 | |||
71 | class CCalibration(Structure): |
||
72 | _fields_ = [("method", c_int),
|
||
73 | ("visualization", c_int),
|
||
74 | ("displayDevice", c_int),
|
||
75 | ("speed", c_int),
|
||
76 | ("autoAccept", c_int),
|
||
77 | ("foregroundBrightness", c_int),
|
||
78 | ("backgroundBrightness", c_int),
|
||
79 | ("targetShape", c_int),
|
||
80 | ("targetSize", c_int),
|
||
81 | ("targetFilename", c_char * 256)] |
||
82 | |||
83 | |||
84 | class CMonitorAttachedGeometry(Structure): |
||
85 | _fields_ = [("setupName", c_char * 256), |
||
86 | ("stimX", c_int),
|
||
87 | ("stimY", c_int),
|
||
88 | ("redStimDistHeight", c_int),
|
||
89 | ("redStimDistDepth", c_int),
|
||
90 | ("redInclAngle", c_int)]
|
||
91 | |||
92 | |||
93 | class CImage(Structure): |
||
94 | _fields_ = [("imageHeight", c_int),
|
||
95 | ("imageWidth", c_int),
|
||
96 | ("imageSize", c_int),
|
||
97 | ("imageBuffer", c_char)]
|
||
98 | |||
99 | |||
100 | class CDate(Structure): |
||
101 | _fields_ = [("day", c_int),
|
||
102 | ("month", c_int),
|
||
103 | ("year", c_int)]
|
||
104 | |||
105 | |||
106 | # ----------------------------------------------------------------------------
|
||
107 | # ---- loading myGazeAPI.dll
|
||
108 | # ----------------------------------------------------------------------------
|
||
109 | |||
110 | myGazeAPI = windll.LoadLibrary("myGazeAPI.dll")
|
||
111 | |||
112 | |||
113 | # ----------------------------------------------------------------------------
|
||
114 | # ---- initializing structs
|
||
115 | # ----------------------------------------------------------------------------
|
||
116 | |||
117 | systemData = CSystem(0, 0, 0, 0, 0, 0, 0, 0) |
||
118 | leftEye = CEye(0, 0, 0, 0, 0, 0) |
||
119 | rightEye = CEye(0, 0, 0, 0, 0, 0) |
||
120 | sampleData = CSample(0, leftEye, rightEye)
|
||
121 | eventData = CEvent('F', 'L', 0, 0, 0, 0, 0) |
||
122 | accuracyData = CAccuracy(0,0,0,0) |
||
123 | calibrationData = CCalibration(5, 1, 0, 0, 1, 20, 239, 1, 15, b"") |
||
124 | geometry = CMonitorAttachedGeometry(b"DefaultSetup", 474, 296, 0, 35, 20); |