Difference between revisions of "Latest on the software"
From Bcontrol
Line 7: | Line 7: | ||
To sign your edit, put in four tildes, like this: <nowiki>~~~~</nowiki> | To sign your edit, put in four tildes, like this: <nowiki>~~~~</nowiki> | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
== Solo == | == Solo == |
Latest revision as of 16:08, 19 September 2013
Please sign changes to this page, so people know who to contact if they have a question.
To sign your edit, put in four tildes, like this: ~~~~
Solo[edit]
- Created set_userprop.m, get_userprop.m, and has_userprop_field.m for SoloParamHandles. Allows storing user-defined properties with a SoloParamHandle. Note that, like other properties, user props are not saved if the SoloParamHandle is saved. See here.
- CarlosBrody 21:14, 17 March 2009 (EDT)
- SoloParamHandle/end.m
- Defined 'end' for SoloParamHandles. SO if value(foo) = [3 2 4], foo(end)=4;
- Before this fix, foo(end) would return 3, because end would check the length of foo, which is a 1x1 SoloParamHandle and then you would end up with foo(1).
- Jerlich 02:59, 7 August 2007 (EDT)
- load_ / save_ solo(ui)paramvalues
- Added support for fetching the location of the protocol settings and data via the Settings object.
- Jerlich 02:59, 7 August 2007 (EDT)
- load_solouiparams
- Added an 'Interactive' option, much like the one in save_solouiparams, which will load the most recent settings for a rat without any user interaction.
- Jerlich 04:37, 29 June 2007 (EDT)
- SoloFunctionAddAllVars
- This is a wrapper for SoloFunctionAddVars, which gives another function permissions on all SoloParams owned by the calling function.
- Jerlich 14:33, 25 June 2007 (EDT)
- sp_who.m
- Find who owns and has access to SoloParamHandles.
- Given a SoloParamHandle, sp_who prints to command line who owns it and who has access to it.
- Can also be given search parameters: e.g., sp_who('name', 'gee') will report on all SoloParamHandles whose name contains the string 'gee'. For allowable search paramteres, do "help get_sphandle".
- CarlosBrody 11:15, 1 June 2007 (EDT)
Dispatcher[edit]
- Protocols Directory setting Allows specifying which directory(ies) to look for Protocols in.
- CarlosBrody 23:42, 25 April 2009 (EDT)
- Improved Dispatcher Update Timer replaces Dispatcher's core update loop when the setting [GENERAL;use_timers;2] is set as such. This is advised.
- Sebastien 20:51, 1 September 2008 (EDT)
- parsed_events.waves has been added to the parsed_events variable available to your Dispatcher protocols. This variable notes the times of the _In and _Out events that begin and end the sustain period of a scheduled wave.
- Sebastien 20:51, 1 September 2008 (EDT)
- disassembling in Dispatcher. Added a 'disassemble' action to Dispatcher. See here.
- CarlosBrody 19:10, 1 September 2007 (EDT)
- Synchronizing behavior and electrophysiological recording Added code so that Dispatcher can be asked to set the RTLSM to automatically send out a start-of-trial timestamp and a trial number code on a DIO line at the beginning of each trial.
- CarlosBrody 01:22, 20 August 2007 (EDT)
- Installation and Startup Documentation
- Sebastien 10:16, 31 July 2007 (EDT)
- Newstartup cleaned up and adjusted for backward compatibility
- Sebastien 10:16, 31 July 2007 (EDT)
- Script Hooks
- Use the AUX_SCRIPTS group of settings in Settings/Settings_Custom.conf to specify any scripts you have written and want to run when Run (or End) is pressed in Dispatcher or RunRats - for example, for free video recording.
- Sebastien 09:27, 31 July 2007 (EDT)
- The Calibration_WaterDelivery protocol should be selected from the Dispatcher protocol menu to calibrate water delivery and store calibration information locally.
- Sebastien 09:27, 31 July 2007 (EDT)
- Settings
- Interface for global BControl settings.
- Startup Guide#First-Run_Configuration for tips on modifying settings.
- BControl Settings Interface for tips on employing the global settings system in (protocol, plugin, etc.) code.
- Sebastien 09:27, 31 July 2007 (EDT)
- PokesplotDemo protocol
- A very simple dispatcher protocol, basically just demonstrates the pokesplot plugin. Protocols/@PokesplotDemo/
- CarlosBrody 13:59, 1 June 2007 (EDT)
RunRats[edit]
- Manual Test Skipping. The setting [RUNRATS;skip_manual_test;1] will result in the RunRats manual test being skipped. (Useful for laptops, etc.)
- Sebastien 20:51, 1 September 2008 (EDT)
Plugins[edit]
- sqlsummary plugin
- Added a plugin that makes sending data to a MySQL database really easy.
- Jerlich December 2007
- softpokestay plugin
- Added a plugin that makes a GUI to define a soft poke stay (requiring the animal to keep its nose in a poke while allowing exits of less than some grace period), and allows incorporating that soft poke stay into the state machine code with a single call that adds all the relevant states.
- CarlosBrody 00:23, 10 December 2007 (EST)
- punishui plugin
- Added a plugin that makes a GUI to define a punishment (sounds, timeouts, etc), and allows incorporating that punishment into the state machine code with a single call that adds all the relevant states.
- CarlosBrody 20:39, 11 November 2007 (EST)
- comments plugin
- Added a simple plugin that makes a text box into which day-by-day comments are easily entered and stored.
- CarlosBrody 01:07, 10 November 2007 (EST)
- soundui plugin
- Added 'set' and 'get' methods, so that modifying parameters of @soundui sounds can be easily done from the command line or from a running program, not just the GUI.
- CarlosBrody 23:06, 2 September 2007 (EDT)
- water plugin
- Added "streaks" code-- getting increasingly more water for longer streaks of consecutive correct trials.
- Jerlich 31 August 2007 (EDT)
- distribui plugin
- New plugin to add GUI elements for a random variable, from a chosen distribution type.
- CarlosBrody 00:01, 29 August 2007 (EDT)
- Pokesplot plugin
- All good: Displaying on physical rigs, displaying data from physical rigs, and save/load functionality all work fine.
- CarlosBrody 00:43, 12 August 2007 (EDT)
- soundmanager plugin
- Added flag to use the RT SoundServer's capability to loop sounds indefinitely, until explicitly stopped. See this plugin's documentation. Indefinite repeat is not supported in the software state machine emulator
- CarlosBrody 17:43, 11 August 2007 (EDT)
- saveload plugin
- Added autosave functionality, to make it easy to automatically save every few trials and thus prevent data from getting lost if something crashes. See 'autosave_data' in the saveload documentation.
- CarlosBrody 17:34, 11 August 2007 (EDT)
- soundui plugin
- New plugin to more easily add sounds to protocols.
- Jerlich 14:17, 17 July 2007 (EDT)
- saveload plugin
- Modified the plugin to support the new directory structure for settings and data, which includes the experimenter name.
- Jerlich 14:32, 25 June 2007 (EDT)
- water plugin
- Documented this plugin, both on wiki and in Matlab help file.
- CarlosBrody 20:51, 23 June 2007 (EDT)
- soundmanager plugin
- Documented this plugin, both on wiki and in Matlab help file.
- CarlosBrody 19:26, 23 June 2007 (EDT)
- SessionModel plugin
- Software should be fully documented. For help, see the "SessionModel" wiki page.
- Shraddha Pai 19:24, 18 June 2007 (EDT)
- antibias plugin
- Added complete documentation to the antibias plugin. For help, "help @antibias/AntibiasSection." This plugin does not take any information in through SoloParamHandles, it is all parameters in on the function calls made to it, and returns out.
- CarlosBrody 14:14, 2 June 2007 (EDT)
SessionModel[edit]
- ExperPort/Utility/update_session_control_from_file.m
- A Utility that takes a path and filename of an .m style Session Control file and applies it to a cell-array of rats passed in. This automatically gets the latest settings file and then commits the edited file. As such, it depends on CVS info in the Settings.
- Jerlich 11:55, 19 January 2010 (EST)
You can now indicate that a Helper Var is to have its value initialized when jumping to a stage, even if it shares a name with a Helper Var from a previous stage.
- CarlosBrody 01:43, 13 May 2009 (EDT)
Tired of wanting to change SessionDefinition code but not Helper Var values? Now Helper Vars declared in a file being loaded that also share names with Helper Vars that existed just before loading the file hold on to their values.
- CarlosBrody 01:43, 13 May 2009 (EDT)
- Comments in SessionModel . Using comment lines in the text strings of SessionModel now works. To use them, set the new button at the bottom of the SessionModel window, just below the "Stage-specific Component" label to "new-style parsing". This means that separate lines in the Stage Algorithm, Completion String, and End-Of-Day logic are now recognized as separate lines. Line whose first non-whitespace character is "%" are treated as comments and ignored. To complete a statement across separate lines, use ellipses "...". (For documentation, see "Parsing Modes" at bottom of the section you get to by following the "Comments in SessionModel" link.)
- CarlosBrody 23:28, 15 March 2009 (EDT)
- Helper Vars now work-- a very handy way to add SoloParamHandles (saved with Data and Settings) to a protocol without having to rewrite the protocol.
- CarlosBrody 00:48, 1 December 2008 (EST)
RTLSM Linux-side code and @RTLSM (Matlab object) methods[edit]
- A patched fsm.c file is available from the Brody lab that results in _Out events occurring even when scheduled waves are untriggered before the end of their sustain period. Without this patch, if scheduled waves are untriggered by state transition (to a state whose outputs include e.g. {'SchedWaveTrig','-schedwavename'}) before the end of their sustain periods, no _Out event would be visible in the output from GetEvents. This is not critical. This adjustment is mirrored in the emulator code (SoftSMMarkII), where it is standard and requires no patch.
- Sebastien 20:51, 1 September 2008 (EDT)
- Getting the RTLinux-side source code
- Calin's repository appears to be awol. To get the source code of 15-Aug-07, click here
- CarlosBrody 16:52, 15 August 2007 (EDT)
Currently (25 Jan 2007) Calin is maintaining the Linux-side code and runs the repository for it. To obtain the latest code, follow the instructions here.
- GetTimeEventsAndState.m
- This function is not for the user-level, but is intended internally for Dispatcher (and, if desired, the old RPBox.m) to run their update calls faster.
- @RTLSM/GetTimeEventsAndState.m returns, from a single call to the Linux RTLSM kernel, the following four things: (1) current Time, according to the RTLSM; (2) current State the RTLSM is in; (3) current RTLSM Event counter; (4) matrix of latest Events. This combo call replaces the four separate calls that used to be made, one for each of those things. Since each call to the RTLSM kernel takes about 40 ms, useing the old 4 calls took 160 ms; the combo reduces that by 120 ms. The returns are in RTLSM numeric format, not in the disassembled format that Dispatcher reports to users.
- CarlosBrody 13:11, 15 June 2007 (EDT)
- ForceState.m
- When ForceState.m tries to force the FSM to a state that doesn't exist, the FSM returns an error. (This makes sense). This error was handled by RTLSM as an error and it would crash dispatcher. I changed the function to throw a warning instead of an error. So the user will still see the error returned by the FSM server, but the code will continue to run on the matlab end. [Is this desirable or should this be changed in dispatcher?]
- Jerlich 14:47, 15 June 2007 (EDT)
RTLSM Matlab-side: StateMachineAssembler and disassembler[edit]
- Added a way to have a state which leads to jumps to other states with defined probabilities. This allows stochastic choices to be made from within a single state machine diagram. See here.
- CarlosBrody 13:48, 2 March 2010 (EST)
SQL[edit]
- bdata is a wrapper function for accessing a mysql database that contains bcontrol data.
- Jerlich December 2007
Emulators[edit]
- Scheduled waves will generate _Out events when untriggered during the sustain period now. This mirrors the same change to the realtime server code, fsm.c.
- Sebastien 20:51, 1 September 2008 (EDT)
Miscellaneous[edit]
- cut_video_snippet.scpt, a simple Applescript that cuts out an indicated time period from a movie and writes that period to a file as its own movie, is in the Rigscripts directory.
- CarlosBrody 21:33, 11 May 2009 (EDT)
- Zut is now up for the Brody Lab, including a php rat scheduler, php sessions table access, and a rat registry.
- Sebastien 20:51, 1 September 2008 (EDT)
- contact_experimenter, a function in Utility/Zut, will send you an email by checking an address table. This is only available to the Brody Lab. :P
- Sebastien 20:51, 1 September 2008 (EDT)
- General settings subsystem
- BControl Settings Interface#SettingsObject
- A simple class for reading and storing settings files.
- Sebastien 09:27, 31 July 2007 (EDT)
- lunghaotai, 5 December 2007 (EDT)