Scope
Framescan.h
1 #pragma once
2 
3 #include "ScopeDefines.h"
4 #include "ScopeDatatypes.h"
5 #include "helpers/ScopeNumber.h"
6 #include "helpers/ScopeString.h"
7 #include "helpers/helpers.h"
8 #include "Base.h"
9 #include "Plane.h"
10 #include "IO.h"
11 #include "devices/InputsDAQmx.h"
12 #include "devices/OutputsDAQmx.h"
13 
14 namespace scope {
15 
16 namespace parameters {
17 
18 using boost::property_tree::wptree;
19 
23  : public Base {
24 
25 protected:
27  typedef boost::signals2::signal<void ()> signalchange_t;
28 
29 public:
31  virtual uint32_t TotalPixels() const { return 0; }
32 
34  virtual uint32_t TotalPixelsOneFrame() const { return 0; }
35 };
36 
40  : public ScannerVector {
41 };
42 
46  : public ScannerVector {
47 
48 public:
50  class Preset {
51  public:
54 
57 
60 
63 
66 
69 
72 
75 
78 
79  Preset();
80 
82  virtual void Load(const wptree& pt);
83 
85  virtual void Save(wptree& pt) const;
86  };
87 
89  std::vector<std::shared_ptr<Preset>> presets;
90 
92 
94  static std::unique_ptr<ScannerVectorFrameBasic> Create() { return std::unique_ptr<ScannerVectorFrameBasic>(new ScannerVectorFrameBasic()); }
95 
97  static std::unique_ptr<ScannerVectorFrameBasic> Create(const ScannerVectorFrameBasic& _o) { return std::unique_ptr<ScannerVectorFrameBasic>(new ScannerVectorFrameBasic(_o)); }
98 
100  static std::unique_ptr<ScannerVectorFrameBasic> Factory(const ScannerVectorType& _type, const ScannerVectorFrameBasic* const _o = nullptr);
101 
106  virtual std::vector<boost::signals2::connection> ConnectCopyTrigger(signalchange_t::slot_type _slot);
107 
111  virtual void ConnectRateUpdate(signalchange_t::slot_type _slot);
112 
116  virtual void ConnectResolutionUpdate(signalchange_t::slot_type _slot);
117 
121  virtual void ConnectMicronPerPixelUpdate(signalchange_t::slot_type _slot);
122 
126  virtual void ConnectResolutionChange(signalchange_t::slot_type _slot);
127 
132  virtual void ConnectOnlineUpdate(signalchange_t::slot_type _slot);
133 
136 
139 
142 
145 
148 
152 
155 
158 
161 
164 
167 
170 
172  virtual uint32_t XImagePixels() const { return xres(); }
173 
175  virtual uint32_t YImageLines() const { return yres(); }
176 
178  virtual uint32_t XTotalPixels() const { return xres(); }
179 
181  virtual uint32_t YTotalLines() const { return yres(); }
182 
183  uint32_t TotalPixels() const override { return TotalPixelsOneFrame(); }
184 
185  uint32_t TotalPixelsOneFrame() const override { return xres() * yres(); }
186 
187  void Load(const wptree& pt) override;
188  void Save(wptree& pt) const override;
189  void SetReadOnlyWhileScanning(const RunState& _runstate) override;
190 
193  virtual std::unique_ptr<ScannerVectorFrameBasic::Preset> MakePreset() const;
194 
196  virtual void SaveToPreset(const std::wstring& _name, const Daq& _daq) {}
197 
199  virtual void LoadFromPreset(const std::wstring& _name, Daq& _daq) {}
200 
202  virtual void DeletePreset(const std::wstring& _name);
203 
205  virtual void CoerceOffset();
206 };
207 
211  : public ScannerVectorFrameBasic {
212 
213 public:
215  class Preset
217  public:
220 
223 
226 
229 
230  Preset();
231 
232  void Load(const wptree& pt) override;
233  void Save(wptree& pt) const override;
234  };
235 
237 
239  static std::unique_ptr<ScannerVectorFrameBasic> Create() { return std::unique_ptr<ScannerVectorFrameBasic>(new ScannerVectorFrameSaw()); }
240 
242  static std::unique_ptr<ScannerVectorFrameBasic> Create(const ScannerVectorFrameSaw& _o) { return std::unique_ptr<ScannerVectorFrameBasic>(new ScannerVectorFrameSaw(_o)); }
243 
244  std::vector<boost::signals2::connection> ConnectCopyTrigger(signalchange_t::slot_type _slot) override;
245 
246  void ConnectRateUpdate(signalchange_t::slot_type _slot) override;
247 
248  void ConnectMicronPerPixelUpdate(signalchange_t::slot_type _slot) override;
249 
250  void ConnectOnlineUpdate(signalchange_t::slot_type _slot) override;
251 
254 
257 
260 
263 
265  uint32_t XCutoffPixels() const { return round2ui32(xcutoff()*static_cast<double>(XImagePixels())); }
266 
268  uint32_t XScanPixels() const { return XImagePixels() + XCutoffPixels(); }
269 
271  uint32_t XRetracePixels() const { return round2ui32(xretrace()*static_cast<double>(XImagePixels())); }
272 
274  uint32_t XTotalPixels() const override { return XCutoffPixels()+XImagePixels()+XRetracePixels(); }
275 
277  uint32_t YCutoffLines() const { return round2ui32(ycutoff()*static_cast<double>(YImageLines())); }
278 
280  uint32_t YScanLines() const { return YImageLines() + YCutoffLines(); }
281 
283  uint32_t YRetraceLines() const { return round2ui32(yretrace()*static_cast<double>(YImageLines())); }
284 
286  uint32_t YTotalLines() const override { return YCutoffLines()+YImageLines()+YRetraceLines(); }
287 
289  uint32_t TotalPixels() const override { return TotalPixelsOneFrame(); }
290 
292  uint32_t TotalPixelsOneFrame() const override { return XTotalPixels()*YTotalLines(); }
293 
294  void Load(const wptree& pt) override;
295  void Save(wptree& pt) const override;
296  void SetReadOnlyWhileScanning(const RunState& _runstate) override;
297 
298  std::unique_ptr<ScannerVectorFrameBasic::Preset> MakePreset() const override;
299 
300  void SaveToPreset(const std::wstring& _name, const Daq& _daq) override;
301  void LoadFromPreset(const std::wstring& _name, Daq& _daq) override;
302 };
303 
307  : public ScannerVectorFrameBasic {
308 
309 public:
311  class Preset
313  public:
316 
319 
322 
323  Preset();
324 
325  void Load(const wptree& pt) override;
326  void Save(wptree& pt) const override;
327  };
328 
330 
332  static std::unique_ptr<ScannerVectorFrameBasic> Create() { return std::unique_ptr<ScannerVectorFrameBasic>(new ScannerVectorFrameBiDi()); }
333 
335  static std::unique_ptr<ScannerVectorFrameBasic> Create(const ScannerVectorFrameBiDi& _o) { return std::unique_ptr<ScannerVectorFrameBasic>(new ScannerVectorFrameBiDi(_o)); }
336 
337  std::vector<boost::signals2::connection> ConnectCopyTrigger(signalchange_t::slot_type _slot) override;
338 
339  void ConnectRateUpdate(signalchange_t::slot_type _slot) override;
340 
341  void ConnectMicronPerPixelUpdate(signalchange_t::slot_type _slot) override;
342 
343  void ConnectOnlineUpdate(signalchange_t::slot_type _slot) override;
344 
347 
350 
353 
355  uint32_t XTurnPixels() const { return round2ui32(static_cast<double>(XImagePixels()) * xturnfraction()); }
356 
358  uint32_t XTotalPixels() const override { return XImagePixels() + XTurnPixels(); }
359 
361  uint32_t YCutoffLines() const { return round2ui32(ycutoff()*static_cast<double>(YImageLines())); }
362 
364  uint32_t YScanLines() const { return YImageLines() + YCutoffLines(); }
365 
367  uint32_t YRetraceLines() const { return round2ui32(yretrace()*static_cast<double>(YImageLines())); }
368 
370  uint32_t YTotalLines() const override { return YCutoffLines()+YImageLines()+YRetraceLines(); }
371 
372 
374  uint32_t TotalPixels() const override { return XTotalPixels()*YTotalLines(); }
375 
377  uint32_t TotalPixelsOneFrame() const override { return XTotalPixels()*YTotalLines(); }
378 
379  void Load(const wptree& pt) override;
380  void Save(wptree& pt) const override;
381  void SetReadOnlyWhileScanning(const RunState& _runstate) override;
382 
383  std::unique_ptr<ScannerVectorFrameBasic::Preset> MakePreset() const override;
384 
385  void SaveToPreset(const std::wstring& _name, const Daq& _daq) override;
386  void LoadFromPreset(const std::wstring& _name, Daq& _daq) override;
387 };
388 
392  : public ScannerVectorFrameBasic {
393 
394 public:
396  class Preset
398  public:
400  std::vector<PlaneProperties> planes;
401 
402  Preset();
403 
404  void Load(const wptree& pt) override;
405  void Save(wptree& pt) const override;
406  };
407 
409 
411  static std::unique_ptr<ScannerVectorFrameBasic> Create() { return std::unique_ptr<ScannerVectorFrameBasic>(new ScannerVectorFramePlaneHopper()); }
412 
414  static std::unique_ptr<ScannerVectorFrameBasic> Create(const ScannerVectorFramePlaneHopper& _o) { return std::unique_ptr<ScannerVectorFrameBasic>(new ScannerVectorFramePlaneHopper(_o)); }
415 
416  std::vector<boost::signals2::connection> ConnectCopyTrigger(signalchange_t::slot_type _slot) override;
417 
418  void ConnectRateUpdate(signalchange_t::slot_type _slot) override;
419 
420  void ConnectMicronPerPixelUpdate(signalchange_t::slot_type _slot) override;
421 
422  void ConnectOnlineUpdate(signalchange_t::slot_type _slot) override;
423 
425  std::vector<PlaneProperties> planes;
426 
427  void Load(const wptree& pt) override;
428  void Save(wptree& pt) const override;
429  void SetReadOnlyWhileScanning(const RunState& _runstate) override;
430 
431  std::unique_ptr<ScannerVectorFrameBasic::Preset> MakePreset() const override;
432 
433  void SaveToPreset(const std::wstring& _name, const Daq& _daq) override;
434  void LoadFromPreset(const std::wstring& _name, Daq& _daq) override;
435 };
436 
440  : public ScannerVectorFrameBasic {
441 
442 public:
444  class Preset
446  public:
449 
452 
455 
458 
461 
462  Preset();
463 
464  void Load(const wptree& pt) override;
465  void Save(wptree& pt) const override;
466  };
467 
469 
471  static std::unique_ptr<ScannerVectorFrameBasic> Create() { return std::unique_ptr<ScannerVectorFrameBasic>(new ScannerVectorFrameResonance()); }
472 
474  static std::unique_ptr<ScannerVectorFrameBasic> Create(const ScannerVectorFrameResonance& _o) { return std::unique_ptr<ScannerVectorFrameBasic>(new ScannerVectorFrameResonance(_o)); }
475 
476  std::vector<boost::signals2::connection> ConnectCopyTrigger(signalchange_t::slot_type _slot) override;
477 
478  void ConnectRateUpdate(signalchange_t::slot_type _slot) override;
479 
480  void ConnectMicronPerPixelUpdate(signalchange_t::slot_type _slot) override;
481 
482  void ConnectOnlineUpdate(signalchange_t::slot_type _slot) override;
483 
486 
489 
492 
495 
498 
500  uint32_t XTurnPixels() const { return round2ui32(static_cast<double>(XImagePixels()) * xturnfraction()); }
501 
503  uint32_t XTurnPixelsLeft() const { return static_cast<uint32_t>(floor(static_cast<double>(XTurnPixels()) / 2)); }
504 
506  uint32_t XTurnPixelsRight() const { return static_cast<uint32_t>(ceil(static_cast<double>(XTurnPixels()) / 2)); }
507 
509  uint32_t XTotalPixels() const override { return XImagePixels() + XTurnPixels(); }
510 
512  uint32_t YCutoffLines() const { return 2 * round2ui32(ycutoff()*static_cast<double>(YImageLines())/2); }
513 
515  uint32_t YScanLines() const { return YImageLines() + YCutoffLines(); }
516 
518  uint32_t YRetraceLines() const { return 2 * round2ui32(yretrace()*static_cast<double>(YImageLines())/2); }
519 
521  uint32_t YTotalLines() const override { return YCutoffLines()+YImageLines()+YRetraceLines(); }
522 
524  uint32_t TotalPixels() const override { return XTotalPixels()*YTotalLines(); }
525 
527  uint32_t TotalPixelsOneFrame() const override { return XTotalPixels()*YTotalLines(); }
528 
529  void Load(const wptree& pt) override;
530  void Save(wptree& pt) const override;
531  void SetReadOnlyWhileScanning(const RunState& _runstate) override;
532 
533  std::unique_ptr<ScannerVectorFrameBasic::Preset> MakePreset() const override;
534 
535  void SaveToPreset(const std::wstring& _name, const Daq& _daq) override;
536  void LoadFromPreset(const std::wstring& _name, Daq& _daq) override;
537 
539  virtual void CoerceYResolution();
540 
542  virtual void UpdateXTurnFraction();
543 };
544 
545 }
546 
547 }
ScopeNumber< double > pixeltime
pixel dwell time in microseconds, this is also the analog out sampling interval
Definition: Framescan.h:56
virtual void ConnectRateUpdate(signalchange_t::slot_type _slot)
Connect a slot that is called if something in the ScannerVector changes that renders a recalculation ...
Definition: Framescan.cpp:201
void ConnectOnlineUpdate(signalchange_t::slot_type _slot) override
Connect a slot that is called if something in the ScannerVector (which is displayed on the GUI) chang...
Definition: Framescan.cpp:264
virtual uint32_t YTotalLines() const
Definition: Framescan.h:181
virtual uint32_t XTotalPixels() const
Definition: Framescan.h:178
void Save(wptree &pt) const override
save parameters into a boost:property_tree
Definition: Framescan.cpp:538
std::unique_ptr< ScannerVectorFrameBasic::Preset > MakePreset() const override
Since preset loading is done in base class (here), we need to generate a derived preset, this can be done by calling this function and overriding it in derived classes.
Definition: Framescan.cpp:441
ScopeNumber< double > xcutoff
Cutoff fraction at beginning of line, total pixels per line = xres * (1 + xcutoff + xretrace) ...
Definition: Framescan.h:219
virtual void ConnectResolutionUpdate(signalchange_t::slot_type _slot)
Connect a slot that is called if something in the ScannerVector changes that renders a recalculation ...
Definition: Framescan.cpp:206
static std::unique_ptr< ScannerVectorFrameBasic > Create(const ScannerVectorFrameBiDi &_o)
Create copy function for factory.
Definition: Framescan.h:335
uint32_t TotalPixels() const override
Definition: Framescan.h:289
void SetReadOnlyWhileScanning(const RunState &_runstate) override
set values that must not be changed to read-only during scanning.
Definition: Framescan.cpp:311
virtual std::vector< boost::signals2::connection > ConnectCopyTrigger(signalchange_t::slot_type _slot)
Connect a slot that is called if some member parameter changes, this can be used to copy certain chan...
Definition: Framescan.cpp:190
ScopeNumber< uint32_t > averages
number of images to average
Definition: Framescan.h:62
boost::signals2::signal< void()> signalchange_t
typedef for change signal slot functions
Definition: Framescan.h:27
ScopeNumber< uint32_t > yres
y resolution of the image (lines)
Definition: Framescan.h:68
void SetReadOnlyWhileScanning(const RunState &_runstate) override
set values that must not be changed to read-only during scanning.
Definition: Framescan.cpp:680
ScopeString name
name of the preset
Definition: Framescan.h:53
static std::unique_ptr< ScannerVectorFrameBasic > Factory(const ScannerVectorType &_type, const ScannerVectorFrameBasic *const _o=nullptr)
Factory method to generate parameter sets for different scan types and put them into a ScannerVectorF...
Definition: Framescan.cpp:177
virtual void CoerceYResolution()
Changes the y resolution to the allowed values for the resonance scanner.
Definition: Framescan.cpp:732
ScopeNumber< double > pockels
pockels cell value
Definition: Framescan.h:163
ScopeNumber< uint32_t > waitafterenqueuestorage
Time (in milliseconds) to wait after the PipelineController has enqueued the image to the storage que...
Definition: Framescan.h:457
ScopeNumber< double > yrotation
Rotation angle around the Y axis in degrees.
Definition: Framescan.h:169
uint32_t TotalPixelsOneFrame() const override
Definition: Framescan.h:292
virtual void DeletePreset(const std::wstring &_name)
Deletes a preset.
Definition: Framescan.cpp:163
void Load(const wptree &pt) override
Load from boost property tree.
Definition: Framescan.cpp:279
ScopeNumber< double > scannerdelay
compensate, by waiting, that scanners lag behind the command voltage
Definition: Framescan.h:59
Parameters for a ScannerVectorFrameBiDi.
Definition: Framescan.h:306
void ConnectOnlineUpdate(signalchange_t::slot_type _slot) override
Connect a slot that is called if something in the ScannerVector (which is displayed on the GUI) chang...
Definition: Framescan.cpp:628
static std::unique_ptr< ScannerVectorFrameBasic > Create()
Create function for factory.
Definition: Framescan.h:411
void ConnectRateUpdate(signalchange_t::slot_type _slot) override
Connect a slot that is called if something in the ScannerVector changes that renders a recalculation ...
Definition: Framescan.cpp:493
ScopeNumber< double > yaspectratio
aspect ratio in y direction
Definition: Framescan.h:74
void LoadFromPreset(const std::wstring &_name, Daq &_daq) override
Load parameters from a preset.
Definition: Framescan.cpp:463
std::vector< boost::signals2::connection > ConnectCopyTrigger(signalchange_t::slot_type _slot) override
Connect a slot that is called if some member parameter changes, this can be used to copy certain chan...
Definition: Framescan.cpp:239
void Save(wptree &pt) const override
Save to boost property tree.
Definition: Framescan.cpp:412
virtual uint32_t XImagePixels() const
Definition: Framescan.h:172
ScopeNumber< double > ycutoff
Cutoff fraction at beginning of frame, total lines per frame = yres * (1 + ycutoff + yretrace) ...
Definition: Framescan.h:222
Parameters for a ScannerVectorFrameResonance.
Definition: Framescan.h:439
uint32_t YTotalLines() const override
Definition: Framescan.h:370
ScopeNumber< double > yretrace
Cutoff fraction for retrace at end of frame.
Definition: Framescan.h:262
void Save(wptree &pt) const override
save parameters into a boost:property_tree
Definition: Framescan.cpp:93
virtual void ConnectResolutionChange(signalchange_t::slot_type _slot)
Connect a slot that is called if xres or yres in the ScannerVector are changed This usually is ScopeC...
Definition: Framescan.cpp:217
virtual void Save(wptree &pt) const
Save to boost property tree.
Definition: Framescan.cpp:36
ScopeNumber< double > xturnfraction
fraction spent for turning the x galvo around
Definition: Framescan.h:346
ScopeNumber< uint32_t > xres
x resolution of the image (linewidth)
Definition: Framescan.h:65
All parameters for scanner data generation and pixel acquisition If you add/remove parameters or deri...
Definition: IO.h:747
ScopeNumber< double > xturnfraction
fraction spent for turning the x resonance scanner around
Definition: Framescan.h:485
uint32_t TotalPixelsOneFrame() const override
Definition: Framescan.h:377
All parameter classes derive from this.
Definition: Base.h:21
ScopeNumber< double > xaspectratio
aspect ratio in x direction
Definition: Framescan.h:141
std::vector< boost::signals2::connection > ConnectCopyTrigger(signalchange_t::slot_type _slot) override
Connect a slot that is called if some member parameter changes, this can be used to copy certain chan...
Definition: Framescan.cpp:370
ScopeNumber< double > xretrace
Cutoff fraction for retrace at end of line.
Definition: Framescan.h:259
virtual void UpdateXTurnFraction()
Updates the x turn fraction for the resonance scanner.
Definition: Framescan.cpp:737
static std::unique_ptr< ScannerVectorFrameBasic > Create(const ScannerVectorFrameBasic &_o)
Create copy function for factory.
Definition: Framescan.h:97
ScopeNumber< double > xrotation
Rotation angle around the X axis in degrees.
Definition: Framescan.h:166
Parameters for a ScannerVectorLine.
Definition: Framescan.h:39
ScopeNumber< uint32_t > xres
x resolution of the image (linewidth)
Definition: Framescan.h:135
ScopeNumber< double > yaspectratio
aspect ratio in y direction
Definition: Framescan.h:144
ScopeNumber< double > ycutoff
Cutoff fraction at beginning of frame, total lines per frame = yres * (1 + ycutoff + yretrace) ...
Definition: Framescan.h:256
Base class for all Scope datatypes here, provides a uniform interface (and saves typing...).
Parameters for a ScannerVectorFramePlaneHopper.
Definition: Framescan.h:391
virtual void SaveToPreset(const std::wstring &_name, const Daq &_daq)
Save parameters into a preset.
Definition: Framescan.h:196
void Load(const wptree &pt) override
load parameters from a boost::property_tree
Definition: Framescan.cpp:531
std::vector< PlaneProperties > planes
vector with properties for all planes.
Definition: Framescan.h:400
static std::unique_ptr< ScannerVectorFrameBasic > Create()
Create function for factory.
Definition: Framescan.h:332
ScopeNumber< double > ycutoff
Cutoff fraction at beginning of frame, total lines per frame = yres * (1 + ycutoff + yretrace) ...
Definition: Framescan.h:349
void ConnectOnlineUpdate(signalchange_t::slot_type _slot) override
Connect a slot that is called if something in the ScannerVector (which is displayed on the GUI) chang...
Definition: Framescan.cpp:509
ScopeNumber< double > yretrace
Cutoff fraction for retrace at end of frame.
Definition: Framescan.h:228
virtual std::unique_ptr< ScannerVectorFrameBasic::Preset > MakePreset() const
Since preset loading is done in base class (here), we need to generate a derived preset, this can be done by calling this function and overriding it in derived classes.
Definition: Framescan.cpp:159
std::vector< std::shared_ptr< Preset > > presets
A vector with presets.
Definition: Framescan.h:89
ScopeNumber< double > xturnfraction
fraction spent for turning the x galvo around
Definition: Framescan.h:315
void ConnectOnlineUpdate(signalchange_t::slot_type _slot) override
Connect a slot that is called if something in the ScannerVector (which is displayed on the GUI) chang...
Definition: Framescan.cpp:392
void ConnectMicronPerPixelUpdate(signalchange_t::slot_type _slot) override
Connect a slot that is called if something in the ScannerVector changes that renders a recalculation ...
Definition: Framescan.cpp:256
static std::unique_ptr< ScannerVectorFrameBasic > Create(const ScannerVectorFrameResonance &_o)
Create copy function for factory.
Definition: Framescan.h:474
uint32_t TotalPixels() const override
Definition: Framescan.h:374
static std::unique_ptr< ScannerVectorFrameBasic > Create(const ScannerVectorFrameSaw &_o)
Create copy function for factory.
Definition: Framescan.h:242
std::vector< PlaneProperties > planes
vector with properties for all planes
Definition: Framescan.h:425
void Save(wptree &pt) const override
Save to boost property tree.
Definition: Framescan.cpp:522
virtual void ConnectOnlineUpdate(signalchange_t::slot_type _slot)
Connect a slot that is called if something in the ScannerVector (which is displayed on the GUI) chang...
Definition: Framescan.cpp:222
ScopeNumber< bool > squarepixels
pixels are square (thus FOV rectangular) when true, when false pixels are rectangular (thus FOV squar...
Definition: Framescan.h:147
ScopeNumber< uint32_t > waitafterenqueuedisplay
Time (in milliseconds) to wait after the PipelineController has enqueued the image to the display que...
Definition: Framescan.h:460
uint32_t XTotalPixels() const override
Definition: Framescan.h:509
static std::unique_ptr< ScannerVectorFrameBasic > Create()
Create function for factory.
Definition: Framescan.h:471
void ConnectMicronPerPixelUpdate(signalchange_t::slot_type _slot) override
Connect a slot that is called if something in the ScannerVector changes that renders a recalculation ...
Definition: Framescan.cpp:385
uint32_t XTotalPixels() const override
Definition: Framescan.h:358
ScopeNumber< double > ycutoff
Cutoff fraction at beginning of frame, total lines per frame = yres * (1 + ycutoff + yretrace) ...
Definition: Framescan.h:488
void ConnectMicronPerPixelUpdate(signalchange_t::slot_type _slot) override
Connect a slot that is called if something in the ScannerVector changes that renders a recalculation ...
Definition: Framescan.cpp:619
virtual uint32_t TotalPixelsOneFrame() const
Definition: Framescan.h:34
std::unique_ptr< ScannerVectorFrameBasic::Preset > MakePreset() const override
Since preset loading is done in base class (here), we need to generate a derived preset, this can be done by calling this function and overriding it in derived classes.
Definition: Framescan.cpp:553
virtual void LoadFromPreset(const std::wstring &_name, Daq &_daq)
Load parameters from a preset.
Definition: Framescan.h:199
void ConnectRateUpdate(signalchange_t::slot_type _slot) override
Connect a slot that is called if something in the ScannerVector changes that renders a recalculation ...
Definition: Framescan.cpp:248
void Load(const wptree &pt) override
Load from boost property tree.
Definition: Framescan.cpp:405
void Load(const wptree &pt) override
load parameters from a boost::property_tree
Definition: Framescan.cpp:295
In here all declarations for all kinds of datatypes Scope needs.
ScopeNumber< double > xturnfraction
fraction spent for turning the x resonance scanner around
Definition: Framescan.h:448
ScopeNumber< double > xoffset
x offset
Definition: Framescan.h:154
virtual uint32_t TotalPixels() const
Definition: Framescan.h:31
std::unique_ptr< ScannerVectorFrameBasic::Preset > MakePreset() const override
Since preset loading is done in base class (here), we need to generate a derived preset, this can be done by calling this function and overriding it in derived classes.
Definition: Framescan.cpp:690
void ConnectRateUpdate(signalchange_t::slot_type _slot) override
Connect a slot that is called if something in the ScannerVector changes that renders a recalculation ...
Definition: Framescan.cpp:610
void SaveToPreset(const std::wstring &_name, const Daq &_daq) override
Save parameters into a preset.
Definition: Framescan.cpp:694
std::unique_ptr< ScannerVectorFrameBasic::Preset > MakePreset() const override
Since preset loading is done in base class (here), we need to generate a derived preset, this can be done by calling this function and overriding it in derived classes.
Definition: Framescan.cpp:321
void Load(const wptree &pt) override
load parameters from a boost::property_tree
Definition: Framescan.cpp:662
void ConnectRateUpdate(signalchange_t::slot_type _slot) override
Connect a slot that is called if something in the ScannerVector changes that renders a recalculation ...
Definition: Framescan.cpp:378
uint32_t YTotalLines() const override
Definition: Framescan.h:286
static std::unique_ptr< ScannerVectorFrameBasic > Create()
Create function for factory.
Definition: Framescan.h:94
virtual void Load(const wptree &pt)
Load from boost property tree.
Definition: Framescan.cpp:24
Parameters for a ScannerVectorFrameSaw.
Definition: Framescan.h:210
void Save(wptree &pt) const override
save parameters into a boost:property_tree
Definition: Framescan.cpp:426
void SaveToPreset(const std::wstring &_name, const Daq &_daq) override
Save parameters into a preset.
Definition: Framescan.cpp:325
void SaveToPreset(const std::wstring &_name, const Daq &_daq) override
Save parameters into a preset.
Definition: Framescan.cpp:445
void LoadFromPreset(const std::wstring &_name, Daq &_daq) override
Load parameters from a preset.
Definition: Framescan.cpp:344
void Load(const wptree &pt) override
load parameters from a boost::property_tree
Definition: Framescan.cpp:419
ScopeNumber< double > yoffset
y offset
Definition: Framescan.h:157
uint32_t TotalPixelsOneFrame() const override
Definition: Framescan.h:185
std::vector< boost::signals2::connection > ConnectCopyTrigger(signalchange_t::slot_type _slot) override
Connect a slot that is called if some member parameter changes, this can be used to copy certain chan...
Definition: Framescan.cpp:600
A templated class for a thread-safe std::wstring, with signals that are called on value changes...
Definition: ScopeString.h:8
void SetReadOnlyWhileScanning(const RunState &_runstate) override
set values that must not be changed to read-only during scanning.
Definition: Framescan.cpp:118
Parameters for a ScannerVectorFrameBasic.
Definition: Framescan.h:45
ScopeNumber< double > ycutoff
Cutoff fraction at beginning of frame, total lines per frame = yres * (1 + ycutoff + yretrace) ...
Definition: Framescan.h:318
void Save(wptree &pt) const override
Save to boost property tree.
Definition: Framescan.cpp:653
ScopeNumber< double > zoom
current zoom factor (from 1 to 20).
Definition: Framescan.h:151
static std::unique_ptr< ScannerVectorFrameBasic > Create()
Create function for factory.
Definition: Framescan.h:239
void SetReadOnlyWhileScanning(const RunState &_runstate) override
set values that must not be changed to read-only during scanning.
Definition: Framescan.cpp:549
ScopeNumber< double > fastz
current fast z position
Definition: Framescan.h:160
uint32_t TotalPixels() const override
Definition: Framescan.h:183
ScopeNumber< double > yretrace
Cutoff fraction for retrace at end of frame.
Definition: Framescan.h:352
virtual void CoerceOffset()
Changes the limits of xoffset and yoffset to account for the maximum allowed offset depending on zoom...
Definition: Framescan.cpp:170
ScopeNumber< uint32_t > waitafterenqueuedisplay
Time (in milliseconds) to wait after the PipelineController has enqueued the image to the display que...
Definition: Framescan.h:497
ScopeNumber< double > ycutoff
Cutoff fraction at beginning of frame, total lines per frame = yres * (1 + ycutoff + yretrace) ...
Definition: Framescan.h:451
void SetReadOnlyWhileScanning(const RunState &_runstate) override
set values that must not be changed to read-only during scanning.
Definition: Framescan.cpp:433
std::vector< boost::signals2::connection > ConnectCopyTrigger(signalchange_t::slot_type _slot) override
Connect a slot that is called if some member parameter changes, this can be used to copy certain chan...
Definition: Framescan.cpp:483
ScopeNumber< uint32_t > waitafterenqueuestorage
Time (in milliseconds) to wait after the PipelineController has enqueued the image to the storage que...
Definition: Framescan.h:494
ScopeNumber< uint32_t > yres
y resolution of the image (lines)
Definition: Framescan.h:138
void Load(const wptree &pt) override
Load from boost property tree.
Definition: Framescan.cpp:644
void Save(wptree &pt) const override
Save to boost property tree.
Definition: Framescan.cpp:287
Various helper functions and classes for Scope.
ScopeNumber< double > yretrace
Cutoff fraction for retrace at end of frame.
Definition: Framescan.h:491
void Save(wptree &pt) const override
save parameters into a boost:property_tree
Definition: Framescan.cpp:671
void ConnectMicronPerPixelUpdate(signalchange_t::slot_type _slot) override
Connect a slot that is called if something in the ScannerVector changes that renders a recalculation ...
Definition: Framescan.cpp:501
uint32_t XTotalPixels() const override
Definition: Framescan.h:274
ScopeNumber< double > yretrace
Cutoff fraction for retrace at end of frame.
Definition: Framescan.h:321
ScopeNumber< bool > squarepixels
pixels are square (thus FOV rectangular) when true, when false pixels are rectangular (thus FOV squar...
Definition: Framescan.h:77
uint32_t TotalPixelsOneFrame() const override
Definition: Framescan.h:527
ScopeNumber< double > xcutoff
Cutoff fraction at beginning of line, total pixels per line = xres * (1 + xcutoff + xretrace) ...
Definition: Framescan.h:253
void LoadFromPreset(const std::wstring &_name, Daq &_daq) override
Load parameters from a preset.
Definition: Framescan.cpp:714
void Save(wptree &pt) const override
save parameters into a boost:property_tree
Definition: Framescan.cpp:303
void Load(const wptree &pt) override
Load from boost property tree.
Definition: Framescan.cpp:517
void SaveToPreset(const std::wstring &_name, const Daq &_daq) override
Save parameters into a preset.
Definition: Framescan.cpp:557
void Load(const wptree &pt) override
load parameters from a boost::property_tree
Definition: Framescan.cpp:66
static std::unique_ptr< ScannerVectorFrameBasic > Create(const ScannerVectorFramePlaneHopper &_o)
Create copy function for factory.
Definition: Framescan.h:414
void LoadFromPreset(const std::wstring &_name, Daq &_daq) override
Load parameters from a preset.
Definition: Framescan.cpp:574
ScopeNumber< double > yretrace
Cutoff fraction for retrace at end of frame.
Definition: Framescan.h:454
Parameters for the ScannerVector.
Definition: Framescan.h:22
virtual void ConnectMicronPerPixelUpdate(signalchange_t::slot_type _slot)
Connect a slot that is called if something in the ScannerVector changes that renders a recalculation ...
Definition: Framescan.cpp:211
ScopeNumber< double > xaspectratio
aspect ratio in x direction
Definition: Framescan.h:71
ScopeNumber< double > xretrace
Cutoff fraction for retrace at end of line.
Definition: Framescan.h:225
virtual uint32_t YImageLines() const
Definition: Framescan.h:175