Swiftray  1.0
base-generator.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include <QDebug>
4 #include <sstream>
5 
6 #define NO_BASIC_IMPL Q_ASSERT_X(false, "BaseGenerator", "Basic feature not implemented");
7 
8 class BaseGenerator {
9 public:
10  BaseGenerator() : x_(0), y_(0), power_(0), speed_(0) {}
11 
12  virtual void moveTo(float x, float y, float speed, float power) { NO_BASIC_IMPL }
13 
14  virtual void moveToX(float x) { moveTo(x, y_, speed_, power_); }
15 
16  virtual void setSpeed(float speed) { moveTo(x_, y_, speed_, power_); }
17 
18  virtual void setLaserPower(float power) { NO_BASIC_IMPL }
19 
20  virtual void turnOffLaser() { NO_BASIC_IMPL }
21 
22  virtual void turnOnLaser() { NO_BASIC_IMPL }
23 
25 
27 
28  virtual void home() { NO_BASIC_IMPL }
29 
30  virtual void reset() {
31  x_ = 0;
32  y_ = 0;
33  power_ = 0;
34  speed_ = 0;
35  }
36 
37  // Advanced laser cutter features
38  virtual void enableRotary() { Q_ASSERT_X(true, "BaseGenerator", "Rotary feature not implemented"); }
39 
40  virtual void disableRotary() { Q_ASSERT_X(true, "BaseGenerator", "Rotary feature not implemented"); }
41 
42  virtual void enableHighSpeedRastering() { Q_ASSERT_X(true, "BaseGenerator", "High-speed rastering not implemented"); }
43 
44  virtual void disableHighSpeedRastering() {
45  Q_ASSERT_X(true, "BaseGenerator", "High-speed rastering not implemented");
46  }
47 
48  virtual void enableDiodeLaser() { Q_ASSERT_X(true, "BaseGenerator", "Diode laser not implemented"); }
49 
50  virtual void disableDiodeLaser() { Q_ASSERT_X(true, "BaseGenerator", "Diode laser not implemented"); }
51 
52  virtual void beginHighSpeedRastering(int pixels) {
53  Q_ASSERT_X(true, "BaseGenerator", "High-speed rastering not implemented");
54  }
55 
56  virtual void pushRasteringPixels32(int32_t bit) {
57  Q_ASSERT_X(true, "BaseGenerator", "High-speed rastering not implemented");
58  }
59 
60  virtual void endHighSpeedRastering() { Q_ASSERT_X(true, "BaseGenerator", "High-speed rastering not implemented"); }
61 
62  std::string toString() const { return str_stream_.str(); };
63 
64  std::stringstream &stream() { return str_stream_; }
65 
66  float power() { return power_; }
67 
68  float x() { return x_; }
69 
70  float y() { return y_; }
71 
72  float speed() { return speed_; }
73 
74 protected:
75  std::stringstream str_stream_;
76  float x_;
77  float y_;
78  float power_;
79  float speed_;
80 };
#define NO_BASIC_IMPL
Definition: base-generator.h:6
Definition: base-generator.h:8
std::string toString() const
Definition: base-generator.h:62
virtual void beginHighSpeedRastering(int pixels)
Definition: base-generator.h:52
float y_
Definition: base-generator.h:77
virtual void disableDiodeLaser()
Definition: base-generator.h:50
std::stringstream str_stream_
Definition: base-generator.h:75
float x_
Definition: base-generator.h:76
virtual void enableHighSpeedRastering()
Definition: base-generator.h:42
virtual void turnOffLaser()
Definition: base-generator.h:20
virtual void disableHighSpeedRastering()
Definition: base-generator.h:44
BaseGenerator()
Definition: base-generator.h:10
std::stringstream & stream()
Definition: base-generator.h:64
virtual void endHighSpeedRastering()
Definition: base-generator.h:60
virtual void disableRotary()
Definition: base-generator.h:40
float x()
Definition: base-generator.h:68
virtual void turnOnLaser()
Definition: base-generator.h:22
float y()
Definition: base-generator.h:70
virtual void useAbsolutePositioning()
Definition: base-generator.h:24
virtual void setSpeed(float speed)
Definition: base-generator.h:16
virtual void useRelativePositioning()
Definition: base-generator.h:26
float power_
Definition: base-generator.h:78
virtual void home()
Definition: base-generator.h:28
virtual void enableRotary()
Definition: base-generator.h:38
virtual void enableDiodeLaser()
Definition: base-generator.h:48
virtual void moveToX(float x)
Definition: base-generator.h:14
virtual void pushRasteringPixels32(int32_t bit)
Definition: base-generator.h:56
virtual void moveTo(float x, float y, float speed, float power)
Definition: base-generator.h:12
float power()
Definition: base-generator.h:66
float speed()
Definition: base-generator.h:72
virtual void reset()
Definition: base-generator.h:30
float speed_
Definition: base-generator.h:79
virtual void setLaserPower(float power)
Definition: base-generator.h:18