Release Notes


Version 1.6 25/11/2020

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 11/02/2020

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 03/02/2018

GUI:

  • Support for running experiments on multiple setups in parallel.

Tools:

  • Added session_plot module for visualing sessions offline.

Version 1.3.3 12/12/2018

GUI:

  • Small plotting/ UI improvements.

Framework:

  • Fixed math domain error bug with MCP class.

  • Fixed 'Invalid state name passed to goto_state: None' bug.

Tools:

  • Added documentation for synchronisation tools.

Version 1.3.2 27/07/2018

CLI/GUI: - Bug fixes and reliability improvements.

Framework: - Added Lickometer and Analog LED driver devices.

Tools: - Added Rsync alignment code


Version 1.3.2 27/07/2018

CLI/GUI: - Bug fixes and reliability improvements.

Framework: - Added Lickometer and Analog LED driver devices.

Tools: - Added Rsync alignment code


Version 1.3.1 16/05/2018

GUI: - UI improvements and bug fixes.

Framework: - Added Audio_player device driver.


Version 1.3 16/04/2018

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 29/03/2018

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 31/01/2018

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 21/12/2017

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 28/07/2017

  • 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 08/05/2017

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 06/02/2017

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 30/12/2016


  • Initial release of pyControl CLI