Swiftray  1.0
serial-job.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include <QMutex>
4 #include <QThread>
5 #include <QWaitCondition>
6 #include <QSerialPort>
7 #include <QTimer>
8 #include <QByteArray>
9 #include <QVariant>
10 
11 #include <connection/base-job.h>
12 
13 constexpr int kBlockBufferMax = 20; // Somehow pc don't need to manager block buffer?
14 constexpr int kGrblTimeout = 5000;
15 
16 class SerialJob : public BaseJob {
17 Q_OBJECT
18 public:
19  SerialJob(QObject *parent, QString endpoint, QVariant gcode);
20 
21  ~SerialJob();
22 
23  void start() override;
24 
25  void pause() override;
26 
27  void resume() override;
28 
29  int progress() override;
30 
31 signals:
32 
34 
36 
38 
39 private slots:
40 
41  void timeout();
42 
43 private:
44 
45  void run() override;
46 
47  void receive();
48 
49  void startTimer();
50 
51  void stopTimer();
52 
53  void parseResponse(QString line);
54 
55 
56  QByteArray unprocssed_response_;
57  QSerialPort *serial_;
58  QString port_;
59  QStringList gcode_;
60  QTimer *timeout_timer_;
61  bool grbl_ready_;
62  int baudrate_;
63  int block_buffer_;
64  int current_line_;
65  int progressValue_;
66  unsigned long int wait_timeout_ = 1000;
67 
68  bool pause_flag_;
69  bool resume_flag_;
70  bool on_hold_;
71 };
A class template for connection senders, we opensource this part to allow inserting GPL-licensed midd...
Definition: base-job.h:11
Definition: serial-job.h:16
SerialJob(QObject *parent, QString endpoint, QVariant gcode)
Definition: serial-job.cpp:8
void startConnection()
void progressChanged()
void pause() override
Definition: serial-job.cpp:42
void resume() override
Definition: serial-job.cpp:46
int progress() override
Definition: serial-job.cpp:38
void successConnection()
~SerialJob()
Definition: serial-job.cpp:23
void start() override
Definition: serial-job.cpp:29
constexpr int kBlockBufferMax
Definition: serial-job.h:13
constexpr int kGrblTimeout
Definition: serial-job.h:14