Updates - Chronological list

A chronological list of things which have been modified, or added, to SLControl to improve the utility of the program. These items should not be considered as bug_fixes (corrections to things which don't work) but rather the gradual evolution of the project. In most cases these modifications have been implemented when I've been using SLControl for real experiments and something has occurred to me.

30 April, 2005
Internal Use

A number of esoteric adaptations - they all work but I haven't update the release package yet. Contact Ken if you'd like a working copy of the executable.
  • Motor control and sampling rates up to 50 kHz (commands downloaded as binary for faster throughput).
  • Additional step length changes at various time-points in ktr record.
9th July
Release 4.0.1

  • New Experiment Dialog (Triggers). Allows the user to fire up to 16 different TTL triggers in a variety of different modes. Useful for flash photolysis experiments for controlling opening of shutters, activation of flash-lamps etc.
  • Automatic Update Check via SLControl server
24th December
Release 3.3.2

  • Added a dialog box (File_header) which displays up to the first 1000 lines of a text file. The command is in the Analysis menu of the main SLControl dialog.
  • Data_record::read_data_from_file now scans the file looking for a 'Data' tag. If no such tag is found SLControl aborts opening the file and warns the user that the file is probably not a valid data file.
  • SL_SREC now has an extra 'All' experimental mode where the user can control the relative first stretch velocity, the relative first stretch size and the inter-triangle interval independently. Parameters should be specified in an appropriate batch file in the order:
    (1) interval (ms), (2) relative first tri-size and (3) relative first tri velocity.
  • Added "Two lines" option to the Fit Control dialog box. This may be useful in evaluating the 'take-off' point in slack test measurements of maximal shortening velocity.
14th November
Release 3.3.1

  • Fixed occasional problem in SL_SREC ramp+increment experiments - further details available here
  • Changed data file extension to (*.slc - SLControl data file) to prevent possible user confusion with system text files. InstallShield now associates *.slc files with SLControl in the host registry. If SLControl is started by double-clicking on a slc file, it automatically opens the data file in the Single Analysis mode.
    Technical note - SLControl::InitInstance scans the command line and sets two global variables (NO_OF_COMMAND_LINE_DATA_FILES and COMMAND_LINE_DATA_FILE_STRING) appropriately. SLControlDlg::OnInitDialog checks these values when the main dialog window opens and responds appropriately.
  • Slight cosmetic improvements to coordinate display in Plot class.
  • Batch_analysis::OnAnalyse() - this function now disables the appropriate system commands to prevent the user from prematurely closing the Analysis_display windows. The user now also has the option of aborting a batch analysis calculation at any time in the file sequence.
  • Superposition_Control - the reverse trace order function has been replaced by a shuffle function which allows the user to scale the displays to any given file.
  • Superposition - the file-names of each plotted record are now displayed in the appropriate colour.
23rd October
Release 3.2.3

  • Added 'Mean value' option to the Fit Control dialog box.
30th August May
Release 3.2.2

  • Added 'Reverse Trace Order' to Superposition Control to allow traces to be scaled to either the first or the last selected record.
23rd May
Release 3.2.1

  • Altered SL_SREC to allow ramp and hold trials for single stretches
  • Initial release of Chirp dialog. Buffered data handling allows a maximum of 500,000 points per channel. Other experiments are maintained at 65,000 points per channel to prevent data buffering. Data record memory allocation improved.
  • Analysis_display and Superposition dialogs adapt to the available screen size.
  • Superposition_control now allows calibrated or uncalibrated traces to be displayed.
7th May
Release 3.1.3

  • Inter-trial delay in the Tension_control dialog fixed - further details available here
  • Preliminary test version of Chirp dialog.
2nd May
Release 3.1.2

  • First tested version of Cyclical class. Length offset and Square wave options also added.
29th April
Release 3.1.1

  • This version has two important bug-fixes - further details available here
  • Added test verion of Cyclical class which allows the user to subject the muscle to extended periods of sinusoidal or triangular length changes imposed under fiber or sarcomere length control. Associated changes to Data_record class so that it can read the appropriate experiment parameters.
19th March
Release 3.0.3

  • Adapted Data_record::read_data_from_file() to allow SLControl to read data files converted from the original Fiber.exe system by the SLConvert package.
  • Fixed wrong window display problem with the Superposition class.
  • Added File->Close option to the Superposition menu.
  • Corrected dialog captions for the Batch_analysis file selector boxes.
11th March
Release 3.0.2

  • Added integral gain to Tension_control dialog. This seems to be important for large tension drops conducted under low proportional gain. Integral_gain parameter added to the Data_record class.
  • Changed plot default colour to dark green. Should be easier to see in Windows XP dialog boxes.
  • Added line_segment structure to the Plot class allowing mean values to be drawn to screen. At this time, it is not plotted to a metafile but this option can be added at a later date if required.
  • Improved Batch_analysis:force-velocity calculations. Relative tension is now calculated from averages of isometric tension, hold tension and min ktr tension. The relevent segments from the force trace are identified by coloured line segments drawn to screen.
7th March
Release 3.0.1

  • All known memory leaks corrected - virtually all of those found occurred during opening and closing of modeless dialog boxes.
  • Plot class updated so that no more 2000 data points are drawn (or plotted to a metafile) when a long data trace is displayed. A warning is displayed in the plot if data points have been skipped from the display.
  • Batch_analysis redesigned. A new Batch_analysis class has been added which allows the user to select from different types of files (Force-velocity, Length control etc.). A list of the applicable analysis options is displayed for the user to chose from. The code for each analysis function is contained within the Batch_analysis class. Common file-handling routines etc. are used to prevent unnecessary duplication of code.
  • Improvements to Data_record class, particularly concerned with reading data records from file. Some associated changes to write_data_to_file functions of SL_SREC and Tension_control_dialog classes.
  • Changed installation package to InstallShield - hopefully this will be more familiar to new users, although they must now download a zipped archive rather than a single file.
30th January
  • Increased MAX_DATA_POINTS to 65000.
    This involved adding MAXSIZE statements to the PIPE declarations in the DAPL command files (SL_SREC and Tension_control_dialog classes) and changing the array initialization statements in Data_record. The data[][] array is now defined by a pointer in Data_record.h, initialized with a new statement in the constructor and deleted in the destructor. I need to check this carefully for potential memory leaks.
25th January
  • Calibration - change to the calibration step function - FL is now stepped long and then returned to null position.
21st January
Release 2.3

  • Superposition_control - average files command added to the window with associated display options. Associated modifications to the Superposition class.
10th January

  • Added 'ktr_initiation_time_ms' to the record output for the Tension_control and SL_SREC classes. Analysis_display now sets second cursor to the mid-point of the ktr-step if this information is available. Note that the cursor placement will be incorrect for pre-existing data files.
3rd January
Release 2.2

  • Fit_control - added robust linear fit option (using minimal absolute deviation) rather than a least-squares algorithm, and improvements to controls for 'rogue-point' filtering.
  • SL_SREC & Tension_control_dialog - minor cosmetic improvements
2nd January

  • Added Fit_parameters::remove_rogue_points() which tries to eliminate sharp spikes from data records before curve-fitting. These can be problematic for the routines, particularly in the SL record
30th December
Release 2.1

  • SL_SREC - added batch_velocity mode.
  • SL_SREC and Tension_control - added various experiment parameters (proportional gain, servo modes etc) to data file output.
29th December
  • Tension_control - batch-velocity mode added which allows the user to impose a stretch of fixed maximum tension with a variable velocity.
  • A Batch_analysis class, Batch_analysis_tension_fsml has also been added to allow automatic calculation of the 'first stretch maximum length' (both FL and SL) for the above type of experiment. This class should serve as a template for future batch analysis classes.
20th December
  • Relative gain added to Force-velocity mode of Tension_control
    Force_velocity batch file now lists both relative_force and relative_gain for the feedback loop.
17th December
  • Tension_control class added.
    Force-velocity and tension-control pulls are now possible. Slight modifications to SL_SREC and Data_record classes to improve code consistency.
15th November
  • FL_OR_SL_CHANNEL_MODE added to apparatus_calibration_parameters file.
    Defines how many channels are displayed in multiplot views.
7th November
  • Superposition and Superposition_control classes added.
    Allows user to superpose multiple data records and copy the resulting metafile to the clipboard.
6th November
  • Initial attempt at allowing user to Superpose selected data files.
1st November
  • Added Calibration Date to the Calibration parameters file plus associated changes to CSLControlDlg::OnHelpCalibrationparameters() and read_apparatus_calibration_parameters().
23rd October
  • Cursor changes to hourglass during curve-fitting and during SL_SREC experiment trials. Code uses BeginWaitCursor() and EndWaitCursor() functions at the beginning and end of each task.
  • Changes default installation path to
    c:\Program Files\UW_Madison\SLControl_Installation
19th October
  • Added option to allow ramp stretches to increment rather than resetting to zero between each movement. The top-right of the SL_SREC dialog window was also rearranged during this update to create space for the new control.
18th October
  • Further improvements to display and printing of record parameters in Analysis_display dialog window - long filenames are no longer overwritten by the right-hand column.
  • Added a new system beep to SL_SREC::OnRunExperiment() to distinguish between the end of a single trial and the end of a series of trials.
  • Changed Scan_channels plot y-axis scaling to AUTOSCALE_OFF to make it easier to judge whether force has plateaued during an experiment.
  • Added command to SLControlDlg Menu which automatically opens the installed documentation in the PC's WWW browser.
  • Added option to perform ramp stretches rather than triangles to SL_SREC dialog.
  • Include SL_SREC experiment parameters in the header of each data file.
16th October
  • SL_SREC can now run trials with different sized first triangles.
10th October
  • Improvements to display and printing of record parameters in Analysis_display dialog window - spacing, double digit integers for times and dates etc.
9th October
  • Improved plot data labels.
  • Scan_channels clears plot area between updates for tidier display.
  • Add option to analysis_display window to reset force values relative to active cursor.
4th October
  • Allow analysis_display to show calibrated waveforms.
3rd October
  • Cunning scaling for plot y-axis markers.
  • Added record dump option to Analysis_display.
  • Real-time, low frequency channel scan.
17th September
  • Copies Analysis_display window to clip-board metafile.
12th September
  • Square wave generation for system checks and calibration.
12th September
  • Update analysis_display window to show calibration information
29th August
  • Extract calibration data from data file
28th August
  • Linear regression code and Single & double exponential curve-fitting routines
15th August
  • DAPL source file routines adapt to the installation directory.

Last updated on 30 April, 2005 by Ken.