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)