'MatFile' : Files that should not grow or shrink once they have been allocated on the disk (such as from the already-known number of samples in the record)
'Hybrid': "Vector" style file that can be expanded along columns. This should be used for data streams such as RawData or DigIO.
'Event': "Matrix" style file that can be expanded along rows. This should be used for things like 'Spikes' or 'ScoredEvents'.
Split subsref and subsasgn methods of nigeLab.libs.DiskData into more modular design to make it clearer what logic is in those methods.
Initialization for all three types of input arguments (single, two inputs, or three inputs) should all work now (previously, it didn't seem the single-input case worked).
Now no longer creates a matfile (.diskfile_); instead, uses hdf5 handling for everything.
Still (initially) saves using matfile (save(__,'-v7.3')) so that the proper Matlab header is created.
Bug with doRawExtraction should be resolved
May need to re-run extraction for STREAMS (it was incorrectly using 8-bit values that resulted in empty streams which otherwise contained data)
Add flag to skip UI Prompt for videos in +defaults/Videos
Update +defaults/doActions so each struct field that corresponds to a doMethod has a third field: batch
This field is checked for example if it is expected that many important Blocks may need to have a particular field (such as .Videos) but that not every Block in a Tank is expected to have it. Instead of throwing an error, checkActionIsValid will return a flag as false if the .Status of .Fields listed in .batch are not completed.
Update .empty() methods of .VidStreamsType and .VideosFieldType
nigeLab.libs.VidStreamsType and nigeLab.libs.VideosFieldType should now initialize correctly.
Unfortunately, once they started initializing correctly, it caused the _Obj.mat files to expand in size by an order of magnitude. Re-worked how data pointers are handled for these classes, so they should no longer be as inefficient
nigeLab.Block
Update a bunch of the Block methods that referenced deprecated parameters fields (VideoPars and SortPars).
Remove deprecated methods:
nigeLab.Block/getFileType()
nigeLab.Block/getFieldType()
nigeLab.Block/getFieldTypeIndex()
Corresponding methods are implemented in nigeLab.nigelObj
nigelab.Block/doVidInfoExtraction should now work more-or-less as intended.
Fixed bad problem causing extracted VidStreams to make all nigelFiles grow by order of magnitude (oops).
nigeLab.Block/getStatus() this method is a mess and needs to be moved to nigelObj soon. Basically, we want it to behave the same way when we call it at all levels otherwise it gets too confusing.
For now, just put some shitty code in there to make it work for the time-being.
Fix initEvents
Fix doEventDetection and doEventHeaderExtraction
nigeLab.Tank
Add varargin to nigeLab.Tank/runFun() method, which allows it to supply input
Other Stuff
nigeLab.nigelObj/getFieldInfo() and nigeLab.libs.nigelButtonArray
Were supposed to work in combination to make mouse-over and clickable things happen for DashBoard but I think it's too messy and didn't want to waste time on it. Regardless, they exist (and that's why).
Added .empty methods to a few other Classes so their validation doesn't screw up other working classes.
Changes to
nigeLab.libs.DiskData
Key Changes
nigeLab.libs.DiskData
re-worksubsref
andsubsasgn
methods ofnigeLab.libs.DiskData
into more modular design to make it clearer what logic is in those methods.matfile
(.diskfile_); instead, uses hdf5 handling for everything.matfile
(save(__,'-v7.3')
) so that the properMatlab
header is created.doRawExtraction
should be resolvedFSM
DAC values:amplifier channel
window start sample
window stop sample
voltage threshold
window type
Stim
is parsed, in general.Other Changes
nigeLab.defaults
+defaults/Videos
+defaults/doActions
so each struct field that corresponds to adoMethod
has a third field:batch
checkActionIsValid
will return a flag as false if the .Status of .Fields listed in .batch are not completed.nigeLab.libs
.VidStreamsType
and.VideosFieldType
nigeLab.libs.VidStreamsType
andnigeLab.libs.VideosFieldType
should now initialize correctly.nigeLab.Block
VideoPars
andSortPars
).nigeLab.Block/getFileType()
nigeLab.Block/getFieldType()
nigeLab.Block/getFieldTypeIndex()
nigeLab.nigelObj
nigelab.Block/doVidInfoExtraction
should now work more-or-less as intended.VidStreams
to make allnigelFiles
grow by order of magnitude (oops).nigeLab.Block/getStatus()
this method is a mess and needs to be moved tonigelObj
soon. Basically, we want it to behave the same way when we call it at all levels otherwise it gets too confusing.nigeLab.Tank
varargin
tonigeLab.Tank/runFun()
method, which allows it to supply inputOther Stuff
nigeLab.nigelObj/getFieldInfo()
andnigeLab.libs.nigelButtonArray
.empty
methods to a few other Classes so their validation doesn't screw up other working classes.