玉兔远程控制
0.1.0-bate11
Toggle main menu visibility
载入中...
搜索中...
未找到
Plugins
Template
Base
OperateTemplateBase.cpp
1
// Author: Kang Lin <kl222@126.com>
2
3
#include <QLoggingCategory>
4
5
#include "BackendThread.h"
6
#include "BackendTemplateBase.h"
7
#include "ParameterTemplateBase.h"
8
#include "FrmViewerTemplateBase.h"
9
#include "DlgSettingsTemplateBase.h"
10
#include "OperateTemplateBase.h"
11
12
static
Q_LOGGING_CATEGORY(log,
"TemplateBase.Operate"
)
13
COperateTemplateBase
::
COperateTemplateBase
(
CPlugin
*plugin)
14
:
COperate
(plugin)
15
, m_pPara(
nullptr
)
16
, m_pViewer(
nullptr
)
17
, m_pThread(
nullptr
)
18
{
19
qDebug(log) << Q_FUNC_INFO;
20
}
21
22
COperateTemplateBase::~COperateTemplateBase()
23
{
24
qDebug(log) << Q_FUNC_INFO;
25
QString szClass = this->metaObject()->className();
26
QString szWhat;
27
szWhat +=
"Please call "
;
28
szWhat += szClass;
29
szWhat +=
"::Stop() first"
;
30
Q_ASSERT_X(!m_pThread && !m_pPara && !m_pViewer,
31
szClass.toStdString().c_str(), szWhat.toStdString().c_str());
32
}
33
34
CParameterTemplateBase
*
COperateTemplateBase::GetParameter
()
const
35
{
36
return
m_pPara;
37
}
38
39
const
qint16
COperateTemplateBase::Version
()
const
40
{
41
// TODO: Add version
42
return
0;
43
}
44
45
QWidget *
COperateTemplateBase::GetViewer
()
46
{
47
return
m_pViewer;
48
}
49
50
int
COperateTemplateBase::Start
()
51
{
52
int
nRet = 0;
53
// TODO: If backend threads are not needed, modifications are required.
54
m_pThread =
new
CBackendThread
(
this
);
55
if
(!m_pThread) {
56
qCritical(log) <<
"new CBackendThread fail"
;
57
return
-1;
58
}
59
m_pThread->start();
60
return
nRet;
61
}
62
63
int
COperateTemplateBase::Stop
()
64
{
65
int
nRet = 0;
66
// TODO: If backend threads are not needed, modifications are required.
67
if
(m_pThread)
68
{
69
m_pThread->quit();
70
// NOTE: Don't delete m_pThread, See CBackendThread
71
m_pThread =
nullptr
;
72
}
73
return
nRet;
74
}
75
76
CBackend
* COperateTemplateBase::InstanceBackend()
77
{
78
return
new
CBackendTemplateBase
(
this
);
79
}
80
81
int
COperateTemplateBase::SetPluginParameters
(
CParameterPlugin
*pPara)
82
{
83
int
nRet = 0;
84
// TODO: Modify apply plugin parameters
85
if
(m_pPara) {
86
m_pPara->SetPluginParameters(pPara);
87
}
88
return
nRet;
89
}
90
91
QDialog *
COperateTemplateBase::OnOpenDialogSettings
(QWidget *parent)
92
{
93
return
new
CDlgSettingsTemplateBase
(m_pPara, parent);
94
}
95
96
int
COperateTemplateBase::Load
(QSettings &set)
97
{
98
int
nRet = 0;
99
100
if
(m_pPara)
101
nRet = m_pPara->Load(set);
102
103
return
nRet;
104
}
105
106
int
COperateTemplateBase::Save
(QSettings &set)
107
{
108
int
nRet = 0;
109
if
(m_pPara)
110
nRet = m_pPara->Save(set);
111
return
nRet;
112
}
113
114
int
COperateTemplateBase::Initial
()
115
{
116
int
nRet = 0;
117
nRet =
COperate::Initial
();
118
m_pPara =
new
CParameterTemplateBase
();
119
m_pViewer =
new
CFrmViewerTemplateBase
();
120
121
// TODO: add initial
122
123
if
(m_pActionSettings)
124
m_Menu.addAction(m_pActionSettings);
125
return
nRet;
126
}
127
128
int
COperateTemplateBase::Clean
()
129
{
130
int
nRet = 0;
131
// TODO: add Clean
132
133
if
(m_pPara) {
134
delete
m_pPara;
135
m_pPara =
nullptr
;
136
}
137
if
(m_pViewer) {
138
delete
m_pViewer;
139
m_pViewer =
nullptr
;
140
}
141
nRet =
COperate::Clean
();
142
return
nRet;
143
}
CBackendTemplateBase
定义
BackendTemplateBase.h:8
CBackendThread::CBackendThread
CBackendThread(COperate *pOperate, QObject *pParent=nullptr)
CBackendThread
CBackend
后端接口。它由协议插件实现。 它默认启动一个定时器来开启一个非 Qt 事件循环(就是普通的循环处理)。 详见: Start()、 slotTimeOut()、 OnProcess() 。 当然,它仍然支...
定义
Backend.h:52
CDlgSettingsTemplateBase
定义
DlgSettingsTemplateBase.h:13
CFrmViewerTemplateBase
定义
FrmViewerTemplateBase.h:11
COperateTemplateBase
定义
OperateTemplateBase.h:12
COperateTemplateBase::GetParameter
virtual CParameterTemplateBase * GetParameter() const
Get parameter
定义
OperateTemplateBase.cpp:34
COperateTemplateBase::Start
virtual int Start() override
开始
定义
OperateTemplateBase.cpp:50
COperateTemplateBase::Version
virtual const qint16 Version() const override
版本
定义
OperateTemplateBase.cpp:39
COperateTemplateBase::GetViewer
virtual QWidget * GetViewer() override
得到显示视图
定义
OperateTemplateBase.cpp:45
COperateTemplateBase::Clean
virtual Q_INVOKABLE int Clean() override
Clean parameters and resource
定义
OperateTemplateBase.cpp:128
COperateTemplateBase::Save
virtual int Save(QSettings &set) override
保存参数
定义
OperateTemplateBase.cpp:106
COperateTemplateBase::Stop
virtual int Stop() override
关闭
定义
OperateTemplateBase.cpp:63
COperateTemplateBase::Initial
virtual Q_INVOKABLE int Initial() override
Initial parameters and resource
定义
OperateTemplateBase.cpp:114
COperateTemplateBase::Load
virtual int Load(QSettings &set) override
加载参数
定义
OperateTemplateBase.cpp:96
COperateTemplateBase::OnOpenDialogSettings
virtual QDialog * OnOpenDialogSettings(QWidget *parent) override
得到设置对话框
定义
OperateTemplateBase.cpp:91
COperateTemplateBase::SetPluginParameters
virtual int SetPluginParameters(CParameterPlugin *pPara) override
应用插件全局参数
定义
OperateTemplateBase.cpp:81
COperate
操作接口。
定义
Operate.h:51
COperate::Initial
virtual Q_INVOKABLE int Initial()
Initial parameters and resource
定义
Operate.cpp:190
COperate::Clean
virtual Q_INVOKABLE int Clean()
Clean parameters and resource
定义
Operate.cpp:209
CParameterPlugin
插件的全局参数。
定义
ParameterPlugin.h:36
CParameterTemplateBase
定义
ParameterTemplateBase.h:7
CPlugin
插件接口
定义
Plugin.h:15
作者:康林 (kl222@126.com)
版权所有(c) 康林工作室 保留所有权力