Scope
Outputs.h
1 #pragma once
2 
3 namespace scope {
4 
6 class Outputs {
7 
8 protected:
10  const uint32_t area;
11 
13  std::atomic<bool> writeabort;
14 
15 public:
17  Outputs(const uint32_t& _area);
18 
19  virtual ~Outputs(void);
20 
22  virtual void Start() { }
23 
25  virtual void Stop() { }
26 
32  virtual int32_t Write(const std::vector<int16_t>& _xyzp, const uint32_t& _blocks = 1) { return 0; }
33 
35  virtual void AbortWrite();
36 
37 };
38 
39 }
40 
virtual void Start()
Start task.
Definition: Outputs.h:22
std::atomic< bool > writeabort
Signal for aborting a write operation (since write is performed in several blocks, abort can happen in between)
Definition: Outputs.h:13
Outputs(const uint32_t &_area)
get the area and set up everything
Definition: Outputs.cpp:6
virtual int32_t Write(const std::vector< int16_t > &_xyzp, const uint32_t &_blocks=1)
Writes values for one frame of X-Y-fastZ and pockels data to the device buffer.
Definition: Outputs.h:32
virtual void Stop()
Stops task.
Definition: Outputs.h:25
virtual void AbortWrite()
Aborts a running Write by setting writeabort to true (which is checked on every block-write of Write)...
Definition: Outputs.cpp:16
const uint32_t area
which area this one is for
Definition: Outputs.h:10
Wraps hardware connection for signal output to scanners, fast z control, and pockels cell...
Definition: Outputs.h:6