Skip to content

Commit

Permalink
v0
Browse files Browse the repository at this point in the history
  • Loading branch information
msoheib committed Jun 10, 2023
0 parents commit 1e47332
Show file tree
Hide file tree
Showing 105 changed files with 10,326 additions and 0 deletions.
386 changes: 386 additions & 0 deletions ChangeLog.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,386 @@
-------------------------------------------------------------------------------
Version 1.8.1 2023-02-21
-------------------------------------------------------------------------------

Framework:

- Fixed bug where audio output and rotary encoder could not be used together.

-------------------------------------------------------------------------------
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
Loading

0 comments on commit 1e47332

Please sign in to comment.