-
Notifications
You must be signed in to change notification settings - Fork 20
/
ChangeLog.txt
433 lines (294 loc) · 15 KB
/
ChangeLog.txt
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
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
-------------------------------------------------------------------------------
Version 2.0.2 2024-06-13
-------------------------------------------------------------------------------
GUI:
- Various bug fixes.
- Specified UTF-8 encoding of data files to allow for non ASCII characters in variable names.
Devices:
- Added load cell class.
-------------------------------------------------------------------------------
Version 2.0.1 2024-01-12
-------------------------------------------------------------------------------
- Fixed bug where variables data output could overwrite date row generated
immediately before.
-------------------------------------------------------------------------------
Version 2.0 2024-01-11
-------------------------------------------------------------------------------
GUI:
- New and improved data file format.
- Framework events can now be triggered from the GUI 'Controls' dialog.
- Notes can be written to data log from GUI 'Controls' dialog.
- New API allows pyControl tasks to interact with Python code running on computer.
- New functionality to set variable values for individual hardware setups,
which can be used across different tasks and experiments.
- Setups Tab now does operations on multiple boards in parallel rather than serially.
- Experiments can now be organised into subfolders within the experiments folder,
to create a nested experiment select menu in the GUI.
- UI improvements.
Framework:
- Added Frame_logger device to provide low overhead method of recording times
of events that do not otherwise need to be processed.
Data_import:
- Rsync_aligner can now extrapolate times before first and after last sync pulse
when converting times between reference frames.
-------------------------------------------------------------------------------
Version 1.8 2022-11-08
-------------------------------------------------------------------------------
GUI:
- GUI is now compatible with PyQt 6 and Python 3.10.
- New GUI settings dialog.
- Required device driver files are now automatically transferred to the pyboard
when a task or hardware definition is uploaded.
- Hardware definition files are now stored in a hardware_definitions folder
not the generic config folder.
- pyboards can how be hidden so they do not show up in board select GUI menus
by naming them _hidden_ in the setups tab.
- Various small improvements and bug fixes.
Framework:
- Major refactoring of framework code to make it simpler and more readable.
- Analog inputs now stream data to the computer continously while the framework
is running rather than having record() and stop() methods to start and stop
data streaming.
- Events triggered by timers are now output to the data log by default.
- Removed decimate argument from digital input as it was not used in practice.
- Added Frame_trigger device class for triggering camera frames as a specified
frequency and recording the frame times to an analog data file.
- Added uRFID device class for controlling Priority 1 Designs RFID module.
- Added print_variables function for printing variable values to the data
log as a json formatted string.
Data import:
- Added session_dataframe() function for generating a pandas dataframe from
a pyControl data file and experiment_dataframe() for generating a pandas
dataframe from an experiment data folder.
-------------------------------------------------------------------------------
Version 1.7.2 2022-06-30
-------------------------------------------------------------------------------
GUI:
- Python terminal window no longer opens when GUI is run. Any error messages
generated by the GUI are written to an 'ErrorLog.txt' file rather than being
printed in the python terminal.
- GUI window now has pyControl taskbar icon rather than generic python icon.
- Fixed bug where experiments tab variables table did not recognise variables
if named imports were used in the task file.
-------------------------------------------------------------------------------
Version 1.7.1 2022-04-20
-------------------------------------------------------------------------------
GUI:
- Bug fix and improvements in custom variables dialog editor.
-------------------------------------------------------------------------------
Version 1.7 2022-04-06
-------------------------------------------------------------------------------
GUI:
- Added functionality for users to create custom dialogs for setting task
variables.
Tools:
- Modified Rsyn_aligner code to remove the need for users to manually specify
the units pulse times are measured in.
-------------------------------------------------------------------------------
Version 1.6.2 2021-12-23
-------------------------------------------------------------------------------
Framework:
- All pyControl specific functions are now imported by the user into the task
file from the pyControl.utility module, rather than some functions being
patched onto the task file after it has been imported by the framework.
- The button example task has been modified to match the example task in the
pyControl manuscript. An additional version of the button task using named
rather than * imports has been added for comparison of the two import methods.
-------------------------------------------------------------------------------
Version 1.6.1 2021-11-22
-------------------------------------------------------------------------------
GUI:
- Run task tab now displays current state, most recent event and print line.
- GUI style unified across platforms.
- GUI font sizes now configurable in gui_settings.py.
- Fixed bug which prevented events from plotting in Pyqtgraph version > 0.11.0.
- Made communication from pyboard to computer during framework run more robust
to unexpected output from pyboard.
- Various minor bug fixes.
-------------------------------------------------------------------------------
Version 1.6 2020-11-25
-------------------------------------------------------------------------------
GUI:
- Experiments that uses multiple setups now load the task in parallel on all the
setups at once, rather than serially on one setup after annother, giving a
large speedup when many setups are used.
- The experiments tab now allows a subset of the subjects in an experiment
to be selected to run, and allows different subjects to be started and
stopped at different times.
- Task files can now be organised into subfolders within the tasks folder, to
create a nested task select menu in the GUI.
- Buttons now have icons indicating their functionallity.
- Various minor bug fixes.
-------------------------------------------------------------------------------
Version 1.5 2020-02-11
-------------------------------------------------------------------------------
GUI:
- Task files used in an experiment are now automatically saved in the
experiments data folder with a file hash appended to the task file name
to uniquely identify the file version. Whenever a task file used in the
experiment is modified the new version will be saved to the data folder when
the experiment is run. The task file hash used for each session is recorded
in the session's data file so the exact task file used to run each session
can be identified.
- A menu bar now provides quick access to online help, data/task folders, and
some GUI settings.
- Behaviour plots can now be paused.
- Keyboard shortcuts now implemented for some commonly actions, detailed in the
help menu.
- Task variables can now be specified as private by ending the variable name
with three underscores, making them invisible to the GUI.
- A meaningful error message is now shown on failure to import dependencies.
- Persistent variables implementation now allows running different subjects on
different sessions in same experiment data folder without overwriting the
persistent variables.
- Improved reliability of file transfer to pyboard.
- Ordering of subjects in summary variables table is now consistent with that
in configure experiment tab.
- GUI is now launched by running file pyControl_GUI.py in the pyControl root
directory.
- Event and state dictionaries now written to task file as JSON objects to
make them easier to parse cross platform. This does not affect reading
task files in Python as JSON objects are also Python dicts (as used previously).
- Various bugfixes and reliability improvements.
CLI
- Removed command line interface.
-------------------------------------------------------------------------------
Version 1.4 2019-02-03
-------------------------------------------------------------------------------
GUI:
- Support for running experiments on multiple setups in parallel.
Tools:
- Added session_plot module for visualing sessions offline.
-------------------------------------------------------------------------------
Version 1.3.3 2018-12-12
-------------------------------------------------------------------------------
GUI:
- Small plotting/ UI improvements.
Framework:
- Added option when timer is set for event generated when timer elapses to be
output to data log.
- Fixed math domain error bug with MCP class.
- Fixed 'Invalid state name passed to goto_state: None' bug.
Tools:
- Improved rsync alignment code and added documentation for synchronisation.
-------------------------------------------------------------------------------
Version 1.3.2 2018-07-27
-------------------------------------------------------------------------------
CLI/GUI:
- Bug fixes and reliability improvements.
Framework:
- Added Lickometer and Analog LED driver devices.
Tools:
- Added Rsync alignment code
-------------------------------------------------------------------------------
Version 1.3.2 2018-07-27
-------------------------------------------------------------------------------
CLI/GUI:
- Bug fixes and reliability improvements.
Framework:
- Added Lickometer and Analog LED driver devices.
Tools:
- Added Rsync alignment code
-------------------------------------------------------------------------------
Version 1.3.1 2018-05-16
-------------------------------------------------------------------------------
GUI:
- UI improvements and bug fixes.
Framework:
- Added Audio_player device driver.
-------------------------------------------------------------------------------
Version 1.3 2018-04-16
-------------------------------------------------------------------------------
GUI:
- New graphical interface run_task_gui.py for running tasks, supports online
visualisation of task behaviour and setting of variables during run.
CLI:
- Summary variables now written to data file at end of run_experiment.py
- Event and state names rather than IDs now displayed during run_task and
run_experiment.
Framework:
- Added Port_expander hardware device driver.
- All data now tranmtted from pyboard to computer as binary rather than printed
strings.
- Data logging moved to seperate Data_logger class.
- Setting / getting variables modifed to work while framework running.
-------------------------------------------------------------------------------
Version 1.2.1 2018-03-29
-------------------------------------------------------------------------------
CLI:
- run_task.py scanning for connected pyboards fixed on Windows 10.
Framework:
- Added support for MCP23008 IO expander.
- Fixed incorrect pin ID for Breakout_1_2 BNC_2.
-------------------------------------------------------------------------------
Version 1.2 2018-01-31
-------------------------------------------------------------------------------
CLI:
- run_task.py can automatically detect the serial port of connected pyboards.
- run_task.py can save data generated in framework run.
Framework:
- Digital_output.pulse() now allows duty cycle and number of pulses to be
specified.
- Added Analog_input class.
- Added Rotatory_encoder device driver.
- Added Stepper_motor device driver.
- Added MCP23017 device driver.
-------------------------------------------------------------------------------
Version 1.1.4 2017-12-21
-------------------------------------------------------------------------------
Framework:
- Added 'timer_remaining' function.
Bug fixes:
- Fixed various bugs that caused problems using CLI on Linux.
- Fixed bug that could cause CLI to crash during transfer of large files to
pyboard.
- Fixed bug which caused negative timestamps if pyb.millis rolled over during
session.
-------------------------------------------------------------------------------
Version 1.1.3 2017-07-28
-------------------------------------------------------------------------------
- Added data_import.py, a module for importing pyControl sessions and experiments
into Python for analysis.
CLI:
- Run task now allows board to be selected by number rather than port.
Framework:
- Added 'pause_timer' and 'unpause_timer' functions.
- Added 'choice', 'gauss_rand' and 'exp_rand' random functions.
- More informative error messages for some common task file errors.
Bug fixes:
- Fixed import problem which could prevent run_experiment from running.
-------------------------------------------------------------------------------
Version 1.1.2 2017-05-08
-------------------------------------------------------------------------------
Framework:
- Added six_poke hardware device.
- removed .wav playback for audio outputs.
- Moved rarely used device drivers to seperate 'more devices' folder for
faster framework upload.
CLI:
- Faster and more reliable file upload to boards.
- Data file names now include start time.
- Improved information output to data file before run start.
- Post run file transfer now uses seperate directories in transfer folder
for each experiment.
- Error tracebacks during run_experiment are now written to file. Warning
is dispayed at end of run if error has occured.
- Added disable_mass_storage and enable_mass_storage to board config menus.
- Simplified run_task menus for getting and setting variables.
Bug fixes:
- Fixed bug which meant that run_experiment stopped when the
last numbered box stopped rather than when all boxes had stopped.
- Print output from run_end() now saved by run experiment.
-------------------------------------------------------------------------------
Version 1.1 2017-02-06
-------------------------------------------------------------------------------
Framework:
- Added get_current_time function which returns current time in ms.
- Added support for playing .wav files to Audio_output class.
CLI:
- Added run_task.py, a script for configuring and running tasks on
individual pyboards.
-------------------------------------------------------------------------------
Version 1.0 2016-12-30
-------------------------------------------------------------------------------
- Initial release of pyControl CLI