3 #include "ScopeDefines.h" 
    5 #include "helpers/ScopeNumber.h" 
    6 #include "helpers/ScopeString.h" 
   11 #include "Runstates.h" 
   12 #include "Framescan.h" 
   20 namespace parameters {
 
   22 using boost::property_tree::wptree;
 
   56     void Load(
const wptree& pt) 
override;
 
   57     void Save(wptree& pt) 
const override;
 
  121     Area(
const uint32_t& _area = 0, 
const bool& _isslave = 
false, 
Area * 
const _masterarea = 
nullptr);
 
  153     void Load(
const wptree& pt) 
override;
 
  154     void Save(wptree& pt) 
const override;
 
  231     std::array<std::unique_ptr<Area>, SCOPE_NAREAS> 
areas;
 
  291     void Load(
const std::wstring& filename);
 
  294     void Save(
const std::wstring& filename) 
const;
 
Scope & operator=(const Scope &_scope)
Supply assignment operator because of unique_ptr
 (does deep copy of Areas) 
 
Parameters for a whole area (includes a daq and a fpu) 
 
Parameters for timeseries acquisition. 
 
void Save(wptree &pt) const override
save parameters into a boost:property_tree 
 
void Save(wptree &pt) const override
save parameters into a boost:property_tree 
 
ScopeNumber< double > ontime
on time of one stimulation pulse 
 
ScopeString commontrigger
The trigger channel which is the internal common master trigger for all devices. 
 
ScopeNumber< double > offtime
off time after stimulation pulse 
 
ScopeNumber< double > masterfovsizey
The same for the y direction. 
 
void CopyFromMasterArea()
Copies parts of the ScannerVectorParameters from the master area's. 
 
Area * masterarea
const pointer to the master area parameters (provided in the constructor through parametes::Scope) ...
 
virtual void DeletePreset(const std::wstring &_name)
Delete preset in currentframe. 
 
The master parameters class. 
 
ScopeString date
current date 
 
std::map< ScannerVectorTypeHelper::Mode, std::unique_ptr< ScannerVectorFrameBasic > > scannervectorframesmap
This map contains all ScannerVectors that are supported by the kind of scanner. 
 
virtual void UpdateFramesFromTotaltime()
Updates number of frames from choosen duration and framerate. 
 
virtual void LoadFromPreset(const std::wstring &_name)
Load from preset in currentframe. 
 
Parameters for a ScannerVectorFrameBiDi. 
 
Stack stack
the StackParameters 
 
virtual uint32_t TotalPixelsAllChannels() const 
total number of pixels summed over all channels 
 
WindowCollection frames
The parameters for windows on the screen. 
 
virtual void InitializeConnections()
Helper for constructors and assignment to connect internal ScopeValues (as the connections in ScopeVa...
 
ScopeString comment
a comment, e.g. 
 
virtual ~Area()
Virtual destructor, just in case we derive a something from Area somtime. 
 
std::array< std::unique_ptr< Area >, SCOPE_NAREAS > areas
holds AreaParameters for all areas. 
 
virtual void UpdateTotaltimeFromFrames()
Updates durations of timeseries from choosen frames and framerate. 
 
Parameters for a ScannerVectorFrameResonance. 
 
virtual double FrameTime() const 
Time per frame in seconds. 
 
All parameters for scanner data generation and pixel acquisition If you add/remove parameters or deri...
 
All parameter classes derive from this. 
 
ScopeString channel
digital output channel 
 
void SetMasterArea(Area *const _masterarea)
(Re)set the pointer to the master area e.g. 
 
ScopeNumber< bool > enable
stimulation enabled/disabled 
 
SCOPE_XYZCONTROL_T stage
the parameters for the xyz stage (set type in ScopeDefines.h) 
 
virtual void CalculateResolution()
Calculates the x resolution from the x aspect ratio and the y resolution from the y aspect ratio...
 
virtual double LineTime() const 
Time per line in seconds. 
 
ScopeNumber< double > onset
onset of stimulation 
 
ScopeNumber< double > framerate
Frame repetition rate in Hertz. 
 
void Load(const std::wstring &filename)
Load all from file. 
 
ScopeNumber< double > duration
total duration of stimulation 
 
Base class for all Scope datatypes here, provides a uniform interface (and saves typing...). 
 
Parameters for a ScannerVectorFramePlaneHopper. 
 
ScopeNumber< double > frametime
Time per frame in seconds. 
 
Timeseries timeseries
the TimeseriesParameters 
 
Behavior behavior
the BehaviorParameters 
 
Storage storage
the StorageParameters 
 
virtual void UpdateFastZCalibration()
Updates fast z boundaries on changed fast Z (ETL) calibration file. 
 
ScopeNumber< uint32_t > histrange
Histogram range for the areas. 
 
ScopeValue< DaqMode > requested_mode
requested acquisition mode (see DaqModeHelper) 
 
ScopeNumber< double > basemicronperpixelx
Base scale in x direction for 256x256 pixels at zoom 1 and the (maxoutput-minoutput) range set in Daq...
 
virtual void SaveToPreset(const std::wstring &_name)
Save to preset in currentframe. 
 
ScopeString scopecommit
Current version (git commit hash) of Scope. 
 
Parameters for digital stimulation output. 
 
In here all declarations for all kinds of datatypes Scope needs. 
 
Daq daq
the DaqParameters for this area 
 
void SetReadOnlyWhileScanning(const RunState &_runstate) override
set values that must not be changed to read-only during scanning. 
 
void Save(const std::wstring &filename) const 
Save all to file. 
 
void SetReadOnlyWhileScanning(const RunState &_runstate) override
set values that must not be changed to read-only during scanning. 
 
ScannerVectorFrameResonance & FrameResonance() const 
pointer to the ScannerVectorFrameResonance if implemented or throwing an exception! ...
 
Parameters for a ScannerVectorFrameSaw. 
 
ScopeNumber< double > basemicronperpixely
Base scale in y direction for 256x256 pixels at zoom 1 and the (maxoutput-minoutput) range set in Daq...
 
virtual void CalculateMicronPerPixel()
Current scale calculated from micronperpixelx with the resolution set in currentframe. 
 
ScannerVectorFramePlaneHopper & FrameHopper() const 
pointer to the ScannerVectorFramePlaneHopper if implemented or throwing an exception! ...
 
ScopeNumber< double > masterfovsizex
Size of the maximally reachable field of view. 
 
virtual void ChangeScanMode()
Force update of rates etc. 
 
A templated class for a thread-safe value, with signals to GUI or other stuff that are called on valu...
 
ScopeNumber< double > linerate
Line repetition rate in Hertz. 
 
Area & operator=(const Area &v)
Assignment (deep copy because of the pointers in the map) 
 
ScannerVectorFrameSaw & FrameSaw() const 
pointer to the ScannerVectorFrameSaw if implemented or throwing an exception! 
 
ScopeString time
current time 
 
ScopeValue< RunState > run_state
current RunState 
 
A templated class for a thread-safe std::wstring, with signals that are called on value changes...
 
void SetReadOnlyWhileScanning(const RunState &_runstate) override
set values that must not be changed to read-only during scanning. 
 
Parameters for a ScannerVectorFrameBasic. 
 
ScannerVectorFrameBasic & Currentframe() const 
pointer to the current parameters::frame. 
 
ScopeNumber< uint32_t > area
the number of this area 
 
void Load(const wptree &pt) override
load parameters from a boost::property_tree 
 
Parameters for all frames/windows on screen. 
 
ScopeString timingsource
timing source. 
 
ScannerVectorFrameBiDi & FrameBiDi() const 
pointer to the ScannerVectorFrameBiDi if implemented or throwing an exception! 
 
Various helper functions and classes for Scope. 
 
SCOPE_FPUZCONTROL_T fpuzstage
the fast z stage parameters for this FPU (set type in ScopeDefines.h) 
 
ScopeNumber< bool > startinputsfirst
true: start inputs first, then outputs with output of area 0 as last, so it (e.g. ...
 
virtual double XOffsetInMicron() const 
Gives the current framescan X offset in micrometers. 
 
Parameters for behavior triggered acquisition. 
 
virtual void UpdateRates()
Updates framerate, frametime, and linerate. 
 
ScopeValue< ScannerType > scannertype
Type of scanner in the microscope. 
 
Parameters for stack acquisition. 
 
ScopeValue< ScannerVectorType > scanmode
the choosen scanner vector type 
 
Stimulation stimulation
the StimulationParameters 
 
void Load(const wptree &pt) override
load parameters from a boost::property_tree 
 
virtual double YOffsetInMicron() const 
Gives the current framescan Y offset in micrometers. 
 
ScopeNumber< bool > isslave
true if this area is a slave area (for an n-beam system) 
 
SCOPE_FPUXYCONTROL_T fpuxystage
the xy stage parameters for this FPU (set type in ScopeDefines.h) 
 
Area(const uint32_t &_area=0, const bool &_isslave=false, Area *const _masterarea=nullptr)