EtherCAT Graphical User Interface Code 0.0.1
EtherCAT GUI that uses different communication protocols with EtherCAT Master server.
Loading...
Searching...
No Matches
ec_gui_wrapper.h
1#ifndef EC_GUI_WRAPPER_H
2#define EC_GUI_WRAPPER_H
3
4#include <QtUiTools>
5#include <QWidget>
6#include <QLineEdit>
7#include "cmn_utils.h"
8#include "utils/ec_utils.h"
9
10#include "ec_gui_slider.h"
11#include "ec_gui_pdo.h"
12#include "ec_gui_sdo.h"
13#include "ec_gui_cmd.h"
14
15
16class EcGuiWrapper : public QWidget
17{
18 Q_OBJECT
19
20public:
21
23 EcIface::Ptr client;
24 SSI device_info;
25 SRD_SDO sdo_map;
27 };
28
29 typedef std::shared_ptr<EcGuiWrapper> Ptr;
30
31 explicit EcGuiWrapper(QWidget *parent = nullptr);
32
34
35 void clear_gui_wrapper();
36 void restart_gui_wrapper(ec_wrapper_info_t ec_wrapper_info);
37 bool get_wrapper_send_sts();
38 bool get_wrapper_cmd_sts();
39 void set_expert_user();
40
41signals:
42 void clientStsChanged();
43
44private slots:
45 void DwTopLevelChanged(bool isFloating);
46 void click_dock_button();
47 void start_stop_receive();
48 void stop_receive();
49 void start_stop_record();
50 void stop_record();
51 void receive();
52 void log();
53protected:
54 bool eventFilter( QObject* o, QEvent* e );
55private:
56
57 ec_wrapper_info_t _ec_wrapper_info;
58 QDockWidget *_command_dw,*_pdo_sdo_dw,*_graphics_dw,*_measurement_setup_dw;
59 std::map<std::string,bool> _floating_sts;
60
61 EcGuiSlider::Ptr _ec_gui_slider;
62 EcGuiSlider::slider_map_t _slider_map;
63 EcGuiPdo::Ptr _ec_gui_pdo;
64 EcGuiSdo::Ptr _ec_gui_sdo;
65 EcGuiCmd::Ptr _ec_gui_cmd;
66 EcLogger::Ptr _ec_logger;
67
68 std::shared_ptr<std::thread> _ec_wrapper_thread;
69 std::mutex _mutex_send;
70 std::chrono::high_resolution_clock::time_point _loop_time,_start_loop_time;
71
72 int _time_ms;
73 bool _run_wrapper_thread=false,_send_pdo=false;
74
75 QPushButton *_send_stop_btn;
76
77 QTimer *_receive_timer,*_log_timer;
78 QAction *_receive_action,*_record_action;
79 bool _receive_started,_record_started;
80
81 void onSendStopBtnReleased();
82
83 bool check_client_setup();
84 void stop_wrapper_thread();
85 void wrapper_thread();
86 void send();
87 uint8_t _stopping_write_counter=0;
88 uint8_t _max_stop_write;
89};
90
91#endif // EC_GUI_WRAPPER_H
Definition ec_gui_wrapper.h:17
Definition ec_gui_slider.h:23
Definition ec_gui_slider.h:17
Definition ec_gui_wrapper.h:22