summaryrefslogtreecommitdiff
path: root/python-pyxid.spec
blob: d01152fcb71e93c46d45fa0bec254b5de0f4ba6e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
%global _empty_manifest_terminate_build 0
Name:		python-pyxid
Version:	1.0
Release:	1
Summary:	Pure python library for communicating with Cedrus XID and StimTracker devices.
License:	BSD
URL:		http://www.github.com/cedrus-opensource/pyxid/
Source0:	https://mirrors.nju.edu.cn/pypi/web/packages/4e/63/a473175a5ad75b602e186ed7cc45aafacff8b4cfee73c42772310f4313bf/pyxid-1.0.tar.gz
BuildArch:	noarch


%description
Python library for interfacing with Cedrus XID and StimTracker devices

XID (eXperiment Interface Device) devices are used in software such as
SuperLab, Presentation, and ePrime for receiving input as part of
stimulus/response testing experiments.

This handles all of the low level device handling for XID devices in
python projects.  The developer using this library must poll the
attached device(s) for responses.  Here's an example of how to do so:

    import pyxid

    # get a list of all attached XID devices
    devices = pyxid.get_xid_devices()

    dev = devices[0] # get the first device to use
    if dev.is_response_device():
        dev.reset_base_timer()
        dev.reset_rt_timer()

        while True:
            dev.poll_for_response()
            if dev.response_queue_size() > 0:
                response = dev.get_next_response()
                # do something with the response


The response is a python dict with the following keys:

    pressed: True if the key was pressed, False if it was released
    key: Response pad key pressed by the subject
    port: Device port the response was from (typically 0)
    time: value of the Response Time timer when the key was hit/released


StimTracker

Support for Cedrus StimTracker devices is now included.  On StimTracker
devices, there are the following methods:

    set_pulse_duration()
    activate_line()
    clear_line()

See the docstring for activate_line() for documentation on how to use it.

These methods are not available if the device is a response pad.

StimTracker is used in software such as SuperLab, Presentation and ePrime
for sending event markers.


Timers

Each Cedrus XID device has an internal timer a Base Timer and a
Response Time Timer.  The Base Timer should be reset at the start of
an experiment.  The Response Time timer should be reset whenever a
stimulus is presented.

At the time of this library release, there is a known issue with clock
drift in XID devices.  Our hardware/firmware developer is currently
looking into the issue.  

Given the issue, use of the response timer built into the response
pads is optional.  If you wish to use the time reported from the
response pads, do the following after importing the pyxid library:

    import pyxid
    pyxid.use_response_pad_timer = True

This will return the time in the 'time' field of the dict returned by
XidDevice.get_next_response(), otherwise, the 'time' field will
contain 0.

Windows Specific Issues

Sometimes, windows fails at detecting XID devices.  Running
detect_xid_devices() a second time should result in finding the
devices.

%package -n python3-pyxid
Summary:	Pure python library for communicating with Cedrus XID and StimTracker devices.
Provides:	python-pyxid
BuildRequires:	python3-devel
BuildRequires:	python3-setuptools
BuildRequires:	python3-pip
%description -n python3-pyxid
Python library for interfacing with Cedrus XID and StimTracker devices

XID (eXperiment Interface Device) devices are used in software such as
SuperLab, Presentation, and ePrime for receiving input as part of
stimulus/response testing experiments.

This handles all of the low level device handling for XID devices in
python projects.  The developer using this library must poll the
attached device(s) for responses.  Here's an example of how to do so:

    import pyxid

    # get a list of all attached XID devices
    devices = pyxid.get_xid_devices()

    dev = devices[0] # get the first device to use
    if dev.is_response_device():
        dev.reset_base_timer()
        dev.reset_rt_timer()

        while True:
            dev.poll_for_response()
            if dev.response_queue_size() > 0:
                response = dev.get_next_response()
                # do something with the response


The response is a python dict with the following keys:

    pressed: True if the key was pressed, False if it was released
    key: Response pad key pressed by the subject
    port: Device port the response was from (typically 0)
    time: value of the Response Time timer when the key was hit/released


StimTracker

Support for Cedrus StimTracker devices is now included.  On StimTracker
devices, there are the following methods:

    set_pulse_duration()
    activate_line()
    clear_line()

See the docstring for activate_line() for documentation on how to use it.

These methods are not available if the device is a response pad.

StimTracker is used in software such as SuperLab, Presentation and ePrime
for sending event markers.


Timers

Each Cedrus XID device has an internal timer a Base Timer and a
Response Time Timer.  The Base Timer should be reset at the start of
an experiment.  The Response Time timer should be reset whenever a
stimulus is presented.

At the time of this library release, there is a known issue with clock
drift in XID devices.  Our hardware/firmware developer is currently
looking into the issue.  

Given the issue, use of the response timer built into the response
pads is optional.  If you wish to use the time reported from the
response pads, do the following after importing the pyxid library:

    import pyxid
    pyxid.use_response_pad_timer = True

This will return the time in the 'time' field of the dict returned by
XidDevice.get_next_response(), otherwise, the 'time' field will
contain 0.

Windows Specific Issues

Sometimes, windows fails at detecting XID devices.  Running
detect_xid_devices() a second time should result in finding the
devices.

%package help
Summary:	Development documents and examples for pyxid
Provides:	python3-pyxid-doc
%description help
Python library for interfacing with Cedrus XID and StimTracker devices

XID (eXperiment Interface Device) devices are used in software such as
SuperLab, Presentation, and ePrime for receiving input as part of
stimulus/response testing experiments.

This handles all of the low level device handling for XID devices in
python projects.  The developer using this library must poll the
attached device(s) for responses.  Here's an example of how to do so:

    import pyxid

    # get a list of all attached XID devices
    devices = pyxid.get_xid_devices()

    dev = devices[0] # get the first device to use
    if dev.is_response_device():
        dev.reset_base_timer()
        dev.reset_rt_timer()

        while True:
            dev.poll_for_response()
            if dev.response_queue_size() > 0:
                response = dev.get_next_response()
                # do something with the response


The response is a python dict with the following keys:

    pressed: True if the key was pressed, False if it was released
    key: Response pad key pressed by the subject
    port: Device port the response was from (typically 0)
    time: value of the Response Time timer when the key was hit/released


StimTracker

Support for Cedrus StimTracker devices is now included.  On StimTracker
devices, there are the following methods:

    set_pulse_duration()
    activate_line()
    clear_line()

See the docstring for activate_line() for documentation on how to use it.

These methods are not available if the device is a response pad.

StimTracker is used in software such as SuperLab, Presentation and ePrime
for sending event markers.


Timers

Each Cedrus XID device has an internal timer a Base Timer and a
Response Time Timer.  The Base Timer should be reset at the start of
an experiment.  The Response Time timer should be reset whenever a
stimulus is presented.

At the time of this library release, there is a known issue with clock
drift in XID devices.  Our hardware/firmware developer is currently
looking into the issue.  

Given the issue, use of the response timer built into the response
pads is optional.  If you wish to use the time reported from the
response pads, do the following after importing the pyxid library:

    import pyxid
    pyxid.use_response_pad_timer = True

This will return the time in the 'time' field of the dict returned by
XidDevice.get_next_response(), otherwise, the 'time' field will
contain 0.

Windows Specific Issues

Sometimes, windows fails at detecting XID devices.  Running
detect_xid_devices() a second time should result in finding the
devices.

%prep
%autosetup -n pyxid-1.0

%build
%py3_build

%install
%py3_install
install -d -m755 %{buildroot}/%{_pkgdocdir}
if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi
if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi
if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi
if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi
pushd %{buildroot}
if [ -d usr/lib ]; then
	find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst
fi
if [ -d usr/lib64 ]; then
	find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst
fi
if [ -d usr/bin ]; then
	find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst
fi
if [ -d usr/sbin ]; then
	find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst
fi
touch doclist.lst
if [ -d usr/share/man ]; then
	find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst
fi
popd
mv %{buildroot}/filelist.lst .
mv %{buildroot}/doclist.lst .

%files -n python3-pyxid -f filelist.lst
%dir %{python3_sitelib}/*

%files help -f doclist.lst
%{_docdir}/*

%changelog
* Thu Mar 09 2023 Python_Bot <Python_Bot@openeuler.org> - 1.0-1
- Package Spec generated