Description:
The 'Class Data Files' are produced by ScanImage to save and configure the preferences of various hardware and software components during startup.
Directory Location:
<ScanImage Application Directory>/ConfigData/
Functions:
scanimage.util.function resetClassDataFiles(dataDir)
Example Files:
- Motors_classData.mat
- ResScanner_classData.mat
- LinScan_LinScanner_classData.mat
- FastZ_classData.mat
File descriptions:
Motors_classData.mat
This file has 14 variables inside called backlashCompensation, motorToRefTransform, scanimageToMotorTF.
backlashCompensation
backlashCompensation = [0 0 0]; %numeric, vector of 3: compensates the backlash of the stage by overshooting the target position and moving to the targetPosition consistently from the same side; values determine the amount of overshoot
% These variables still need to be documented motorToRefTransform scanimageToMotorTF
ResScanner_classData.mat
This file has 14 variables inside called galvoCalibration, keepResonantScannerOn, linePhaseMap_ks, linePhaseMap_vs, linePhaseMode, resFov2VoltsMap_ks, resFov2VoltsMap_nom_max, resFov2VoltsMap_vs, resonantLimitedFovMode, scanFreqMap_ks, scanFreqMap_vs, scanFreqNominal, scannerToRefTransform, and useNonlinearResonantFov2VoltsCurve.
galvoCalibration
% The galvoCalibration structure includes either the xGalvo or yGalvo attribute or both. The contents of this structure depends on the scan
% configuration. Both of these attributes have two variables called feedVoltageInterpolant and offsetVoltScaling. These attributes are set to the 
% calibrationData attribute of the scanimage.mroi.scanners.Galvo() object.
 
 
galvoCalibration_ = obj.getClassDataVar('galvoCalibration',obj.classDataFileName);
if isstruct(galvoCalibration_) && isfield(galvoCalibration_,'xGalvo') && ~isempty(obj.xGalvo)
	obj.xGalvo.calibrationData = galvoCalibration_.xGalvo;
end
            
if isstruct(galvoCalibration_) && isfield(galvoCalibration_,'yGalvo') && ~isempty(obj.yGalvo)
	obj.yGalvo.calibrationData = galvoCalibration_.yGalvo;
end
keepResonantScannerOn
keepResonantScannerOn = false; % Indicates that resonant scanner should always be on. Avoids settling time and temperature drift
linePhaseMode
 linePhaseMode = 'Nearest Neighbor';   % Specifies method for estimating line phase if it is not measured at the current resonant amplitude
        % Note: This is all just guessing. The user must either explicitly
        % set scan phases for all zoom levels or we have to make a way for
        % the scanner to automatically set the scan phase for perfect bidi
        % alignment.
        %
        % Interpolate:      Linearly interpolate between next lower and next
        %                   higher zoom factor with a set scan phase.
        % Nearest Neighbor: Choose between scan phase of next lower and next
        %                   higher zoom factor with a set scan phase, whichever zoom factor is
        %                   closest to current.
        % Next Lower:       Choose the scan phase of the next lower zoom factor
        %                   with a set scan phase.
        % Next Higher:      Choose the scan phase of the next higher zoom factor
        %                   with a set scan phase.
linePhaseMap_ks, linePhaseMap_vs, resFov2VoltsMap_ks, resFov2VoltsMap_nom_max, resFov2VoltsMap_vs, resonantLimitedFovMode, scanFreqMap_ks, scanFreqMap_vs, scanFreqNominal
linePhaseMap;                   % containers.Map() that holds the LUT values for scan phase. Saved on acq abort to class data file.
 
scanFreqMap;                    % containers.Map() that holds the LUT values for scan frequency. Saved on acq abort to class data file.
 
resFov2VoltsMap;                % containers.Map() that holds the LUT values for scan angle to voltage conversion to correct for non linearity
 
resonantLimitedFovMode = true;  % [logical] defines if the resonant scanner range should define the maximum range of the x-scan
 
scanFreqNominal_ = obj.getClassDataVar('scanFreqNominal',obj.classDataFileName); % Sets nominal scan frequency which should match the value in the MDF 
scannerToRefTransform, and useNonlinearResonantFov2VoltsCurve, resFov2VoltsMap_nom_max
%These variables still needs to be documented useNonlinearResonantFov2VoltsCurve scannerToRefTransform resFov2VoltsMap_nom_max
LinScan_LinScanner_classData.mat
galvoCalibration
% This file has two variables inside called galvoClibration and scannerToRef. The structure galvoCalibration includes either the xGalvo or yGalvo 
% attribute or both. Both of these attributes have two variables called feedVoltageInterpolant and offsetVoltScaling. These attributes are set to 
% the calibrationData attribute of the scanimage.mroi.scanners.Galvo() object.
 
galvoCalibration_ = obj.getClassDataVar('galvoCalibration',obj.classDataFileName);
if isstruct(galvoCalibration_) && isfield(galvoCalibration_,'xGalvo') && ~isempty(obj.xGalvo)
	obj.xGalvo.calibrationData = galvoCalibration_.xGalvo;
end
            
if isstruct(galvoCalibration_) && isfield(galvoCalibration_,'yGalvo') && ~isempty(obj.yGalvo)
	obj.yGalvo.calibrationData = galvoCalibration_.yGalvo;
end
FastZ_classData.mat
This file has 2 variables inside called fastZCalibrations and zAlignments.
fastZCalibrations
fastZCalibrations; % stores the calibration data - feedbackVoltInterpolant, offsetVoltScaling
% This variable still needs to be documented zAlignments