diff --git a/src/tpMain/Result2Ui.h b/src/tpMain/Result2Ui.h
new file mode 100644
index 0000000..ac9ddde
--- /dev/null
+++ b/src/tpMain/Result2Ui.h
@@ -0,0 +1,31 @@
+#ifndef _H_RESULT2UI_H_
+#define _H_RESULT2UI_H_
+
+#include "qpixmap.h"
+#include "qimage.h"
+class Result2Ui
+{
+public:
+ Result2Ui() {
+ m_strModel = "";
+ m_dScore = 0;
+ m_dDiameter = 0;
+ m_dThickness = 0;
+ m_dRunTime = 0;
+ m_dMinDis = 1000;
+ m_channel = 0;
+ };
+
+ double m_dDiameter;
+ double m_dThickness;
+ double m_dRunTime;
+ QPixmap m_pixResult;
+ QPixmap m_pixSrc;
+ QString m_strModel;
+ double m_dScore;
+ double m_dMinDis;
+ int m_channel;
+};
+
+#endif
+
diff --git a/src/userCtrl/quserinfo_en.ts b/src/userCtrl/quserinfo_en.ts
new file mode 100644
index 0000000..dca74ac
--- /dev/null
+++ b/src/userCtrl/quserinfo_en.ts
@@ -0,0 +1,333 @@
+
+
+
+
+ QLoginDlg
+
+
+ 用户登录
+ User LoginIn
+ User LoginIn
+
+
+
+ 登录
+ LoginIn
+ LoginIn
+
+
+
+ 取消
+ Cancel
+ Cancel
+
+
+
+ 用户名:
+ UserName:
+ UserName:
+
+
+
+ 密 码:
+ Password:
+ Password:
+
+
+
+ QLoginModify
+
+
+ QLoginModify
+ QLoginModify
+ QLoginModify
+
+
+
+ 旧密码
+ Old Passwd
+ Old Passwd
+
+
+
+ 新密码
+ New Passwd
+ New Passwd
+
+
+
+ 密码确认
+ Passwd Sure
+ Passwd Sure
+
+
+
+ UserName:
+ UserName:
+ UserName:
+
+
+
+ 取消
+ Cancel
+ Cancel
+
+
+
+ 修改
+ Modify
+ Modify
+
+
+
+ QObject
+
+
+ <html><head / ><body><p><span style = color:#ff0000;>用户名不能为空!!!< / span>< / p>< / body>< / html>
+ <html><head / ><body><p><span style = color:#ff0000;>username don't empty!!!< / span>< / p>< / body>< / html>
+ <html><head / ><body><p><span style = color:#ff0000;>username don't empty!!!< / span>< / p>< / body>< / html>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 错误警告
+ Warning
+ Warning
+
+
+
+ <html><head / ><body><p><span style = color:#ff0000;>密码不能为空!!!< / span>< / p>< / body>< / html>
+ <html><head / ><body><p><span style = color:#ff0000;>password don't empty!!!< / span>< / p>< / body>< / html>
+ <html><head / ><body><p><span style = color:#ff0000;>password don't empty!!!< / span>< / p>< / body>< / html>
+
+
+
+ <html><head / ><body><p><span style = color:#00ff00;>登录成功< / span>< / p>< / body>< / html>
+ <html><head / ><body><p><span style = color:#00ff00;>Success< / span>< / p>< / body>< / html>
+ <html><head / ><body><p><span style = color:#00ff00;>Success< / span>< / p>< / body>< / html>
+
+
+
+ <html><head / ><body><p><span style = color:#ff0000;>密码错误!!!< / span>< / p>< / body>< / html>
+ <html><head / ><body><p><span style = color:#ff0000;>Password Error!!!< / span>< / p>< / body>< / html>
+ <html><head / ><body><p><span style = color:#ff0000;>Password Error!!!< / span>< / p>< / body>< / html>
+
+
+
+
+ 用户名
+ UserName
+ UserName
+
+
+
+ 等级
+ Level
+ Level
+
+
+
+ 未登录
+ LoginOut
+ LoginOut
+
+
+
+
+
+ 你还没登录,请登录或请联系管理员!
+ Please connect Manager!
+ Please connect Manager!
+
+
+
+ 你当前没有权限添加用户,请登录!
+ Don't have power to add user!
+ Don't have power to add user!
+
+
+
+ 添加新用户
+ add user
+ add user
+
+
+
+ %1 添加完成!!!
+ %1 add finish!!!
+ %1 add finish!!!
+
+
+
+ 请选中你要删除的用户!
+ please select User!
+ please select User!
+
+
+
+ 你当前没有权限删除root用户,请联系超超级管理员!
+ Please connect Manager!
+ Please connect Manager!
+
+
+
+ 你当前没有权限删除自己的账户,请联系管理员!
+ Please connect Manager!
+ Please connect Manager!
+
+
+
+ 确定删除用户: %1 ?
+ Delete User: %1 ?
+ Delete User: %1 ?
+
+
+
+ %1 已删除!
+ %1 deleted!
+ %1 deleted!
+
+
+
+ 你没有选中需要修改的用户,请联系管理员!
+ Please connect Manager!
+ Please connect Manager!
+
+
+
+ 修改用户信息
+ Modify UserInfo
+ Modify UserInfo
+
+
+
+ %1 修改完成!!!
+ %1 Modify finish!!!
+ %1 Modify finish!!!
+
+
+
+ 职位
+ Post
+ Post
+
+
+
+ 权限等级
+ Level
+ Level
+
+
+
+ QUserAddNew
+
+
+ QUserAddNew
+ QUserAddNew
+ QUserAddNew
+
+
+
+ 确认
+ OK
+ OK
+
+
+
+ 取消
+ Cancel
+ Cancel
+
+
+
+ 设置默认密码
+ Set Default
+ Set Default
+
+
+
+ 默认密码123456
+ default pwd123456
+ default pwd123456
+
+
+
+ 密码输入:
+ passwd:
+ Passwd:
+
+
+
+ 密码确认:
+ passwd:
+ Passwd:
+
+
+
+ 用户名:
+ UserName:
+ UserName:
+
+
+
+ 权限等级:
+ Level:
+ Level:
+
+
+
+ QUserManagerDlg
+
+
+ 用户管理
+ User Manage
+ User Manage
+
+
+
+ 当前登录用户:
+ Current User:
+ Current User:
+
+
+
+ UserName
+ UserName
+ UserName
+
+
+
+ 修改
+ Modify
+ Modify
+
+
+
+ 删除用户
+ Delete
+ Delete
+
+
+
+ 添加用户
+ Add
+ Add
+
+
+
+ TextLabel
+ TextLabel
+ TextLabel
+
+
+
diff --git a/tpvs17/tpMain/QCamSettingDlg.cpp b/tpvs17/tpMain/QCamSettingDlg.cpp
index fde31be..f901c2a 100644
--- a/tpvs17/tpMain/QCamSettingDlg.cpp
+++ b/tpvs17/tpMain/QCamSettingDlg.cpp
@@ -1,4 +1,4 @@
-#include "QCamSettingDlg.h"
+#include "QCamSettingDlg.h"
QCamSettingDlg::QCamSettingDlg(QWidget *parent)
: QWidget(parent)
diff --git a/tpvs17/tpMain/QChannelMgrDlg.cpp b/tpvs17/tpMain/QChannelMgrDlg.cpp
index bd129c6..59a6fd7 100644
--- a/tpvs17/tpMain/QChannelMgrDlg.cpp
+++ b/tpvs17/tpMain/QChannelMgrDlg.cpp
@@ -1,6 +1,6 @@
-#include "QChannelMgrDlg.h"
+#include "QChannelMgrDlg.h"
#pragma execution_character_set("utf-8")
-/*ͨ*/
+/*通道管理*/
QChannelMgrDlg::QChannelMgrDlg(QWidget *parent)
: QWidget(parent)
{
diff --git a/tpvs17/tpMain/QDebugDlg.cpp b/tpvs17/tpMain/QDebugDlg.cpp
index 79fc98d..a35c23a 100644
--- a/tpvs17/tpMain/QDebugDlg.cpp
+++ b/tpvs17/tpMain/QDebugDlg.cpp
@@ -1,8 +1,8 @@
-#include "QDebugDlg.h"
+#include "QDebugDlg.h"
#include "IWheelModel.h"
#include "QFile"
#include "QTextStream"
-/*Դ*/
+/*调试窗口*/
QDebugDlg::QDebugDlg(QWidget *parent)
: QWidget(parent)
{
@@ -94,12 +94,12 @@ Q_SLOT void QDebugDlg::onButtonClicked()
emit sgTriggerCam();
}
else if ("Dlp_StartDetect_button" == strObj) {
- if (ui.Dlp_StartDetect_button->text() == tr("ʼģ")) {
- ui.Dlp_StartDetect_button->setText(tr("ֹͣ"));
+ if (ui.Dlp_StartDetect_button->text() == tr("开始模拟检测")) {
+ ui.Dlp_StartDetect_button->setText(tr("停止"));
m_simuliter.start(2000);
}
else {
- ui.Dlp_StartDetect_button->setText(tr("ʼģ"));
+ ui.Dlp_StartDetect_button->setText(tr("开始模拟检测"));
m_simuliter.stop();
}
}
diff --git a/tpvs17/tpMain/QModelMgrDlg.cpp b/tpvs17/tpMain/QModelMgrDlg.cpp
index bcc1967..0b7de94 100644
--- a/tpvs17/tpMain/QModelMgrDlg.cpp
+++ b/tpvs17/tpMain/QModelMgrDlg.cpp
@@ -1,4 +1,4 @@
-#include "QModelMgrDlg.h"
+#include "QModelMgrDlg.h"
#include "ProgressView.h"
#include
#include
@@ -12,7 +12,7 @@
#include "QSettings.h"
#include "ICompareModel.h"
-#define WS_PICSIZE 129 //!>ŴС
+#define WS_PICSIZE 129 //!>缩放大小
#define WS_PICSIZELIST_ITEM 100
#define MODEL_UI_ICON_NONE ":/image/none.jpg"
#define MODEL_UI_ICON_LEAPER ":/image/leaper"
@@ -29,7 +29,7 @@ enum EM_TYPE_PROCESSMODEL
#pragma execution_character_set("utf-8")
using namespace std;
-/*ģ*/
+/*模板管理*/
QTime m_ticktimer;
QModelMgrDlg::QModelMgrDlg(IWheelCtrl *ptr, QWidget *parent)
: QWidget(parent),m_pCtrl(ptr)
@@ -128,12 +128,12 @@ Q_SLOT void QModelMgrDlg::onAddPic2Model()
{
QString strModel = m_pShowImgList->property("model").toString();
if (strModel.isEmpty()) {
- onMessageBox(QMessageBox::Information, tr("ʾ"), tr("ѡһҪͼͺţ"), 0);
+ onMessageBox(QMessageBox::Information, tr("提示"), tr("请选择一个您要追加图像的型号!"), 0);
return;
}
if (!m_pModelMgr->getAllModelName().contains(strModel))
{
- onMessageBox(QMessageBox::Information, tr("ʾ"), tr("ѡһҪͼͺţ"), 0);
+ onMessageBox(QMessageBox::Information, tr("提示"), tr("请选择一个您要追加图像的型号!"), 0);
return;
}
QStringList lstFiles = FileOper::selectFiles(QString("%1 Add Picture").arg(strModel), "Picture(*.bmp *.jpg *.png)", m_strAddPicPath);// m_pCtrl->appRoot() + "//Data//");
@@ -144,8 +144,8 @@ Q_SLOT void QModelMgrDlg::onAddPic2Model()
int size = lstFiles.size();
int nSuc = 0;
int oldImgsCnt = m_pModelMgr->getModel(strModel)->getTempImage()->getImgCount();
- ProgressView progress(tr("ͼ"),
- tr("ͼ,Ժ....."), size, MODEL_UI_ICON_LEAPER);
+ ProgressView progress(tr("加载图像"),
+ tr("图像加载中,请稍后....."), size, MODEL_UI_ICON_LEAPER);
for (int nIndex = 0; nIndex < size; ++nIndex) {
QString filepath = lstFiles.value(nIndex);
if (appImage2Widget(filepath, strModel)) {
@@ -154,7 +154,7 @@ Q_SLOT void QModelMgrDlg::onAddPic2Model()
qApp->processEvents();
}
else {
- emit(sgShowMsg(tr("ʧܣӴⱳͼƬΪģ壡")));
+ emit(sgShowMsg(tr("添加失败,不能添加带检测背景的图片作为模板!!!")));
break;
}
}
@@ -169,7 +169,7 @@ Q_SLOT void QModelMgrDlg::onAddPic2Model()
ui.ModelMgr_model_Repet_spinBox->setValue(IRepet);
}
}
- progress.setLabel(tr(""));
+ progress.setLabel(tr("加载完成"));
qApp->processEvents();
progress.finish();
}
@@ -178,12 +178,12 @@ Q_SLOT void QModelMgrDlg::onModifyModel()
{
QString strModel = m_pShowImgList->property("model").toString();
if (strModel.isEmpty()) {
- onMessageBox(QMessageBox::Information, tr("ʾ"), tr("ѡһҪĵͺţ"), 0);
+ onMessageBox(QMessageBox::Information, tr("提示"), tr("请选择一个您要修改的型号!"), 0);
return;
}
if (!m_pModelMgr->getAllModelName().contains(strModel))
{
- onMessageBox(QMessageBox::Information, tr("ʾ"), tr("ѡһҪĵͺţ"), 0);
+ onMessageBox(QMessageBox::Information, tr("提示"), tr("请选择一个您要修改的型号!"), 0);
return;
}
IWheelModel*pModel = m_pModelMgr->getModel(strModel);
@@ -207,46 +207,46 @@ Q_SLOT void QModelMgrDlg::onModifyModel()
pModel->getImageComModel()->save2file(strS/*string((const char *)templatepath.toLocal8Bit())*/);
m_pModelMgr->modModel(strModel);
m_pModelMgr->saveModel(strModel);
- QString str = m_pCtrl->getUserName() + ":" + QString("%1:%2 %3").arg(tr("ģ")).arg(strModel).arg(tr("IJ"));
+ QString str = m_pCtrl->getUserName() + ":" + QString("%1:%2 %3").arg(tr("修改了模板")).arg(strModel).arg(tr("的参数"));
m_pCtrl->addLog(str, emTypeUseState);
//m_modLib = true;
- emit sgShowMsg(tr("ijɹ"));
+ emit sgShowMsg(tr("修改成功!"));
}
Q_SLOT void QModelMgrDlg::onDelModel()
{
QString strModel = m_pShowImgList->property("model").toString();
if (strModel.isEmpty()) {
- onMessageBox(QMessageBox::Information, tr("ʾ"), tr("ѡһҪɾͺ"), 0);
+ onMessageBox(QMessageBox::Information, tr("提示"), tr("请选择一个您要删除的型号"), 0);
return;
}
if (!m_pModelMgr->getAllModelName().contains(strModel))
{
- onMessageBox(QMessageBox::Information, tr("ʾ"), tr("ѡһҪɾͺ"), 0);
+ onMessageBox(QMessageBox::Information, tr("提示"), tr("请选择一个您要删除的型号"), 0);
return;
}
- QString str = m_pCtrl->getUserName() + ":" + tr("ɾģ尴ť");
+ QString str = m_pCtrl->getUserName() + ":" + tr("按下了删除模板按钮");
m_pCtrl->addLog(str, emTypeUseState);
- if (onMessageBox(QMessageBox::Information, tr("ʾ"), QString("%1 %2 %3").arg(tr("Ƿɾͺ")).arg(strModel).arg(tr("Ʒģ")), 1) == false)
+ if (onMessageBox(QMessageBox::Information, tr("提示"), QString("%1 %2 %3").arg(tr("是否删除型号")).arg(strModel).arg(tr("产品模板")), 1) == false)
return;
m_pModelLists->removeModel(strModel);
m_pModelMgr->delModel(strModel);
m_pModelLists->update2AllModels("NG");
emit(m_pCtrl->sgModelChanged());
emit(sgGenalData(QVariant("removeModel"), QVariant(strModel)));
- str = m_pCtrl->getUserName() + ":" + QString("%1:%2").arg(tr("ɾģ")).arg(strModel);
+ str = m_pCtrl->getUserName() + ":" + QString("%1:%2").arg(tr("删除了模板")).arg(strModel);
m_pCtrl->addLog(str, emTypeUseState);
QStringList strFilter = m_pCtrl->getAllModelMapPtr()->keys();
strFilter.removeAll("NG");
m_pModelLists->setModelList(strFilter);
- QString m_str = QString("%1 %2 %3").arg(tr("")).arg(strFilter.size()).arg(tr("ͺ"));
+ QString m_str = QString("%1 %2 %3").arg(tr("共")).arg(strFilter.size()).arg(tr("个型号"));
ui.ModelMgr_label_Model_number->setText(m_str);
onClearShow();
}
Q_SLOT void QModelMgrDlg::onAddModel()
{
- QString str = m_pCtrl->getUserName() + ":" + tr("ģ尴ť");
+ QString str = m_pCtrl->getUserName() + ":" + tr("按下了添加模板按钮");
m_pCtrl->addLog(str, emTypeUseState);
QAddModel m_AddModel(this);
@@ -256,7 +256,7 @@ Q_SLOT void QModelMgrDlg::onAddModel()
m_AddModel.setAttribute(Qt::WA_ShowModal, true);
m_AddModel.SetClearData();
m_AddModel.setWindowIcon(QIcon(MODEL_UI_ICON_LEAPER));
- m_AddModel.setWindowTitle(tr("ƷϢ"));
+ m_AddModel.setWindowTitle(tr("产品信息设置"));
m_AddModel.setFocus();
if (m_AddModel.exec() == QDialog::Accepted) {
QMap m_map = m_AddModel.getData();
@@ -275,7 +275,7 @@ Q_SLOT void QModelMgrDlg::onAddModel()
m_pModelMgr->saveModel(pModel->getModelID());
m_pModelLists->update2AllModels("NG");
emit m_pCtrl->sgModelChanged();
- QString str = m_pCtrl->getUserName() + ":" + QString("%1:%2").arg(tr("һµģ")).arg(pModel->getModelID());
+ QString str = m_pCtrl->getUserName() + ":" + QString("%1:%2").arg(tr("添加了一个新的模型")).arg(pModel->getModelID());
m_pCtrl->addLog(str, emTypeUseState);
onShowModelInfo(pModel->getModelID());
onShowModelPic(pModel->getModelID());
@@ -283,7 +283,7 @@ Q_SLOT void QModelMgrDlg::onAddModel()
QStringList strFilter = m_pCtrl->getAllModelMapPtr()->keys();
strFilter.removeAll("NG");
m_pModelLists->setModelList(strFilter);
- QString m_str = QString("%1 %2 %3").arg(tr("")).arg(strFilter.size()).arg(tr("ͺ"));
+ QString m_str = QString("%1 %2 %3").arg(tr("共")).arg(strFilter.size()).arg(tr("个型号"));
ui.ModelMgr_label_Model_number->setText(m_str);
}
}
@@ -294,7 +294,7 @@ Q_SLOT void QModelMgrDlg::onTrainModel()
if (!m_trainOneTsk->isRunning()) {
QString strModel = m_pShowImgList->property("model").toString();
if (strModel.isEmpty()) {
- onMessageBox(QMessageBox::Information, tr("ʾ"), tr("ѡһҪѵͺţ"), 0);
+ onMessageBox(QMessageBox::Information, tr("提示"), tr("请选择一个您要训练的型号!"), 0);
return;
}
m_strTrainModel = strModel;
@@ -305,7 +305,7 @@ Q_SLOT void QModelMgrDlg::onTrainModel()
else {
m_trainOneTsk->stop();
m_trainOneTsk->quit();
- emit sgShowMsg(tr("ѵģ߳δ˳Ե"));
+ emit sgShowMsg(tr("训练模板线程未退出,请稍等"));
}
}
}
@@ -314,7 +314,7 @@ Q_SLOT void QModelMgrDlg::onTrainAllModels()
{
if (m_trainAllTsk) {
if (!m_trainAllTsk->isRunning()) {
- if (onMessageBox(QMessageBox::Warning, tr("ʾ"), tr("ͺģѵڼϵͳļֱܽģѵɣȫѵģ彫Ҫܳʱ䣬ڼ佫ܽǷִУ"), 1) == false)
+ if (onMessageBox(QMessageBox::Warning, tr("提示"), tr("将对所有型号模板进行重新训练,期间系统的检测功能将不能正常运行直到模板训练完成,全部重新训练模板将需要很长时间,期间将不能进行其他工作,是否继续执行?"), 1) == false)
return;
m_ticktimer.start();
m_trainAllTsk->InitStopFlag();
@@ -323,7 +323,7 @@ Q_SLOT void QModelMgrDlg::onTrainAllModels()
else {
m_trainAllTsk->stop();
m_trainAllTsk->quit();
- emit sgShowMsg(tr("ѵģ߳δ˳Ե"));
+ emit sgShowMsg(tr("训练模板线程未退出,请稍等"));
}
}
}
@@ -339,15 +339,15 @@ Q_SLOT void QModelMgrDlg::onItemDoubleClicked(QListWidgetItem * item)
// return;
QString strModel = m_pShowImgList->property("model").toString();
QString itemText = item->text();
- QString strWarning = tr("ȷɾͼ?");
- if (onMessageBox(QMessageBox::Warning, tr("ģͼƬɾ"), strWarning, 1) == false)
+ QString strWarning = tr("确定删除该图像?");
+ if (onMessageBox(QMessageBox::Warning, tr("模板图片删除"), strWarning, 1) == false)
return;
TempImage *pImg = m_pModelMgr->getTmpImage(strModel);
if (pImg) {
pImg->remove(itemText);
}
delete item;
- QString m_str = QString("%1 %2 %3").arg(tr("")).arg(m_pShowImgList->count()).arg(tr("ͼ"));
+ QString m_str = QString("%1 %2 %3").arg(tr("共")).arg(m_pShowImgList->count()).arg(tr("个图像"));
ui.label_imgNum->setText(m_str);
}
// else if ("ModelMgr_listWidget_tab2" == objName)
@@ -386,7 +386,7 @@ Q_SLOT void QModelMgrDlg::onPrograssShow(QString title, QString strValue, int si
}
break;
case emPross_enable:
- onMessageBox(QMessageBox::Information, tr("ʾ"), strValue, 0);
+ onMessageBox(QMessageBox::Information, tr("提示"), strValue, 0);
break;
case emPross_Disable:
break;
@@ -400,13 +400,13 @@ Q_SLOT void QModelMgrDlg::setValue(int value)
Q_SLOT void QModelMgrDlg::onDelAllModels()
{
- if (onMessageBox(QMessageBox::Warning, tr(""), tr("ɾģģ壬Ƿ"), 1) == false)
+ if (onMessageBox(QMessageBox::Warning, tr("警告"), tr("即将删除模板库里的所有模板,是否继续?"), 1) == false)
return;
- if (onMessageBox(QMessageBox::Warning, tr("ʾ"), tr("ٴȷϣǷȫɾ"), 1) == false)
+ if (onMessageBox(QMessageBox::Warning, tr("提示"), tr("再次确认,是否全部删除?"), 1) == false)
return;
QStringList ModeStrList = m_pModelMgr->getAllModelName();
if (ModeStrList.size() <= 0) {
- onMessageBox(QMessageBox::Warning, tr("ʾ"), tr("ûģ!!!"), 0);
+ onMessageBox(QMessageBox::Warning, tr("提示"), tr("没有模板!!!"), 0);
return;
}
for (int nIndex = 0; nIndex < ModeStrList.size(); nIndex++) {
@@ -420,7 +420,7 @@ Q_SLOT void QModelMgrDlg::onDelAllModels()
}
}
onClearShow();
- onMessageBox(QMessageBox::Warning, tr("ʾ"), tr("ȫɾ!!!"), 0);
+ onMessageBox(QMessageBox::Warning, tr("提示"), tr("全部删除完成!!!"), 0);
}
Q_SLOT void QModelMgrDlg::onChangeModelName()
@@ -428,7 +428,7 @@ Q_SLOT void QModelMgrDlg::onChangeModelName()
QString strModel = m_pShowImgList->property("model").toString();
if (strModel.isEmpty())
{
- onMessageBox(QMessageBox::Information, tr("ʾ"), tr("ѡһҪĵͺţ"), 0);
+ onMessageBox(QMessageBox::Information, tr("提示"), tr("请选择一个您要修改的型号!"), 0);
return;
}
QModNamedlg dlg(this);
@@ -482,14 +482,14 @@ Q_SLOT void QModelMgrDlg::onTextChanged(const QString& str)
models.removeAll("NG");
if (str.isEmpty() || str == "*") {
m_pModelLists->setModelList(models);
- QString m_str = QString("%1 %2 %3").arg(tr("")).arg(models.size()).arg(tr("ͺ"));
+ QString m_str = QString("%1 %2 %3").arg(tr("共")).arg(models.size()).arg(tr("个型号"));
ui.ModelMgr_label_Model_number->setText(m_str);
//m_FindModel = models;
}
else {
QStringList strFilter = models.filter(str);
m_pModelLists->setModelList(strFilter);
- QString m_str = QString("%1 %2 ͺ").arg(tr("")).arg(strFilter.size()).arg(tr("ͺ"));
+ QString m_str = QString("%1 %2 个型号").arg(tr("共")).arg(strFilter.size()).arg(tr("个型号"));
ui.ModelMgr_label_Model_number->setText(m_str);
}
}
@@ -528,22 +528,22 @@ Q_SLOT void QModelMgrDlg::onShowModelInfo(QString str)
updateWidget(str);
int IImgNum = m_pShowImgList->count();
- QString strShow = QString("%1 %2 %3").arg(tr("")).arg(IImgNum).arg(tr("ͼ"));
+ QString strShow = QString("%1 %2 %3").arg(tr("共")).arg(IImgNum).arg(tr("个图像"));
if (IImgNum > 0 && IImgNum < nGlobalMinImgs)
- strShow += QString(",%1 %2 %3.").arg(tr("ͼ")).arg(nGlobalMinImgs).arg(tr(",뼰ʱѵ"));
+ strShow += QString(",%1 %2 %3.").arg(tr("图像数量少于")).arg(nGlobalMinImgs).arg(tr("个,请及时补充训练样本"));
ui.label_imgNum->setText(strShow);
/* if (m_WarningMsg)
{
int nTypeModel = m_pModelMgr->getModel(str)->getImageModel();
if (nTypeModel == 0)
- m_WarningMsg->setText(tr("ģѵɹʹ"));
+ m_WarningMsg->setText(tr("该模板训练成功,可以正常使用"));
else if (nTypeModel == 1)
- m_WarningMsg->setText(tr("ģûѵûͼ"));
+ m_WarningMsg->setText(tr("该模板没有训练,并且没有图像"));
else if (nTypeModel == 2)
- m_WarningMsg->setText(tr("ģѵʧܣģͼƬǷ͵ͼģǷظ"));
+ m_WarningMsg->setText(tr("该模板训练失败,请检查模板图片中是否有其他类型的图像或该模板是否被重复添加"));
else
- m_WarningMsg->setText(QString(""));
+ m_WarningMsg->setText(QString("。。。。。。"));
}*/
}
@@ -602,17 +602,17 @@ void QModelMgrDlg::TrainAllTskFunc()
{
QStringList lstAll = m_pModelMgr->getAllModelName();
QMap> mpAllImage = m_pModelMgr->getAllModelImage();
- emit sgPrograssShow(tr("ģ½"), tr("ڳʼģ Ҫѵ%1ģ,Ժ.....").arg(lstAll.size()), lstAll.size(), emPross_Init);
+ emit sgPrograssShow(tr("模板更新进度"), tr("正在初始化所有模板 共需要训练%1个模板,请稍后.....").arg(lstAll.size()), lstAll.size(), emPross_Init);
int nIndex = 0;
for (; nIndex < lstAll.size() && (!m_trainAllTsk->getStopFlag()); nIndex++) {
- emit sgPrograssShow(tr("ģ½"), "", nIndex, emPross_SetValue);
+ emit sgPrograssShow(tr("模板更新进度"), "", nIndex, emPross_SetValue);
QString m_modelName = lstAll.at(nIndex);
TempImage *pImg = m_pModelMgr->getTmpImage(m_modelName);
if (!pImg) {
continue;
}
- QString str = tr("ѵ%1ģ %2/%3,Ժ.....").arg(m_modelName).arg(nIndex + 1).arg(m_pModelMgr->getAllModelName().size());
- emit sgPrograssShow(tr("ģ½"), str, lstAll.size(), emPross_SetLable);
+ QString str = tr("正在训练%1的模板 已完成%2/%3,请稍后.....").arg(m_modelName).arg(nIndex + 1).arg(m_pModelMgr->getAllModelName().size());
+ emit sgPrograssShow(tr("模板更新进度"), str, lstAll.size(), emPross_SetLable);
IWheelModel *pModel = m_pModelMgr->getModel(m_modelName);
std::vector mMat = pImg->getImgVector();
ICompareModel *m_compareModel = pModel->getImageComModel();
@@ -667,8 +667,8 @@ void QModelMgrDlg::TrainAllTskFunc()
pModel->setPicPath(n_Pic_path);
m_pModelMgr->modModel(m_modelName);
}
- str = tr("%1ģȡ %2/%3,Ժ.....").arg(m_modelName).arg(nIndex + 1).arg(m_pModelMgr->getAllModelName().size());
- emit sgPrograssShow(tr("ģ½"), str, lstAll.size(), emPross_SetLable);
+ str = tr("%1的模板获取特征 已完成%2/%3,请稍后.....").arg(m_modelName).arg(nIndex + 1).arg(m_pModelMgr->getAllModelName().size());
+ emit sgPrograssShow(tr("模板更新进度"), str, lstAll.size(), emPross_SetLable);
m_compareModel->setIsEnableCache(true);
if (m_trainAllTsk->getStopFlag())
@@ -704,14 +704,14 @@ void QModelMgrDlg::TrainAllTskFunc()
ui.ModelMgr_modelpic_lable->setPixmap(pix.scaled(129, 129));
emit sgTrainShowInfo(m_modelName);
- str = tr("%1ģѵ %2/%3,Ժ.....").arg(m_modelName).arg(nIndex + 1).arg(m_pModelMgr->getAllModelName().size());
- emit sgPrograssShow(tr("ģ½"), "", nIndex, emPross_SetValue);
+ str = tr("%1的模板训练完成 已完成%2/%3,请稍后.....").arg(m_modelName).arg(nIndex + 1).arg(m_pModelMgr->getAllModelName().size());
+ emit sgPrograssShow(tr("模板更新进度"), "", nIndex, emPross_SetValue);
}
if (!m_trainAllTsk->getStopFlag())
{
- emit sgPrograssShow(tr("ģ½"), "", nIndex, emPross_Finish);
- emit sgPrograssShow(tr("ģ½"), tr("ȫģɣ%1s").arg(m_ticktimer.elapsed() / 1000.0), nIndex, emPross_enable);
- QString str = m_pCtrl->getUserName() + ":" + tr("ȫģѵ%1ģ").arg(lstAll.size());
+ emit sgPrograssShow(tr("模板更新进度"), "", nIndex, emPross_Finish);
+ emit sgPrograssShow(tr("模板更新进度"), tr("全部模板更新完成!%1s").arg(m_ticktimer.elapsed() / 1000.0), nIndex, emPross_enable);
+ QString str = m_pCtrl->getUserName() + ":" + tr("对全部模板进行了重新训练,共%1个模板").arg(lstAll.size());
m_pCtrl->addLog(str, emTypeUseState);
}
}
@@ -721,29 +721,29 @@ void QModelMgrDlg::TrainOneTskFunc()
if (m_strTrainModel.isEmpty())
return;
int m_step = 5;
- QString str = tr("ģԺ.....");
- emit sgPrograssShow(tr("ģѵ"), str, m_step, emPross_Init);
+ QString str = tr("模板正在准备请稍后.....");
+ emit sgPrograssShow(tr("模板训练进度"), str, m_step, emPross_Init);
IWheelModel*pModel = m_pModelMgr->getModel(m_strTrainModel);
if (!pModel) {
return;
}
- emit sgPrograssShow(tr("ģѵ"), str, 0, emPross_SetValue);
+ emit sgPrograssShow(tr("模板训练进度"), str, 0, emPross_SetValue);
if (m_trainOneTsk->getStopFlag())
return;
TempImage *pTempImg = pModel->getTempImage();
std::vector m_MatVec = pTempImg->getImgVector();
if (m_MatVec.size() <= 0)
{
- emit sgPrograssShow(tr("ģѵ"), tr("%1ͺûͼƬѵ").arg(m_strTrainModel), 6, emPross_enable);
- emit sgPrograssShow(tr("ģѵ"), tr("%1ͺûͼƬѵ").arg(m_strTrainModel), 6, emPross_Finish);
+ emit sgPrograssShow(tr("模板训练进度"), tr("%1型号没有图片不能训练!").arg(m_strTrainModel), 6, emPross_enable);
+ emit sgPrograssShow(tr("模板训练进度"), tr("%1型号没有图片不能训练!").arg(m_strTrainModel), 6, emPross_Finish);
return;
}
if (m_trainOneTsk->getStopFlag())
return;
- /*Ҫʾ ˵ģѵ*/
- emit sgPrograssShow(tr("ģѵ"), str, 1, emPross_SetValue);
+ /*这里需要加载提示 说明模板正在训练*/
+ emit sgPrograssShow(tr("模板训练进度"), str, 1, emPross_SetValue);
ICompareModel *m_compareModel = pModel->getImageComModel();
//std::vector firstFalseSample = m_pModelMgr->getFirstImgFromFalse(pModel->getModelID());
@@ -790,7 +790,7 @@ void QModelMgrDlg::TrainOneTskFunc()
m_compareModel->calculateAllParams(m_MatVec);
if (m_trainOneTsk->getStopFlag())
return;
- emit sgPrograssShow(tr("ģѵ"), str, 2, emPross_SetValue);
+ emit sgPrograssShow(tr("模板训练进度"), str, 2, emPross_SetValue);
hubBase::mkdir(m_pCtrl->appRoot() + "\\pattern");
QString templatepath = m_pCtrl->appRoot() + "\\pattern\\template\\";
hubBase::mkdir(templatepath);
@@ -812,9 +812,9 @@ void QModelMgrDlg::TrainOneTskFunc()
}
if (m_trainOneTsk->getStopFlag())
return;
- emit sgPrograssShow(tr("ģѵ"), str, 3, emPross_SetValue);
- emit sgPrograssShow(tr("ģѵ"), str, 4, emPross_SetValue);
- emit sgPrograssShow(tr("ģѵ"), tr("%1ģ ڻȡֵ,Ժ....").arg(m_strTrainModel), 4, emPross_SetLable);
+ emit sgPrograssShow(tr("模板训练进度"), str, 3, emPross_SetValue);
+ emit sgPrograssShow(tr("模板训练进度"), str, 4, emPross_SetValue);
+ emit sgPrograssShow(tr("模板训练进度"), tr("%1的模板 正在获取特征值,请稍后....").arg(m_strTrainModel), 4, emPross_SetLable);
m_compareModel->setIsEnableCache(false);
//if (pModel->getDiameter() && pModel->getThickness())
@@ -833,11 +833,11 @@ void QModelMgrDlg::TrainOneTskFunc()
m_compareModel->save2file(strS/*string((const char *)templatepath.toLocal8Bit())*/);
if (m_trainOneTsk->getStopFlag())
return;
- emit sgPrograssShow(tr("ģѵ"), str, 6, emPross_SetValue);
- emit sgPrograssShow(tr("ģѵ"), str, 6, emPross_Finish);
- emit sgPrograssShow(tr("ģѵ"), tr("ѵɣ%1s").arg(m_ticktimer.elapsed() / 1000.0), 6, emPross_enable);
+ emit sgPrograssShow(tr("模板训练进度"), str, 6, emPross_SetValue);
+ emit sgPrograssShow(tr("模板训练进度"), str, 6, emPross_Finish);
+ emit sgPrograssShow(tr("模板训练进度"), tr("训练完成!%1s").arg(m_ticktimer.elapsed() / 1000.0), 6, emPross_enable);
emit sgTrainShowInfo(m_strTrainModel);
- str = m_pCtrl->getUserName() + ":" + tr("ѵģ:%1").arg(m_strTrainModel);
+ str = m_pCtrl->getUserName() + ":" + tr("训练了模板:%1").arg(m_strTrainModel);
m_pCtrl->addLog(str, emTypeUseState);
m_strTrainModel.clear();
}
@@ -853,7 +853,7 @@ void QModelMgrDlg::updateWidget(QString str)
m_pShowImgList->clear();
m_pShowImgList->setProperty("model", str);
/*
- ܴڴй¶ ʱδҵİ취
+ 这里可能存在内存泄露 暂时未找到解决的办法
*/
m_pShowImgList->setIconSize(QSize(WS_PICSIZELIST_ITEM, WS_PICSIZELIST_ITEM));
m_pShowImgList->setAcceptDrops(false);
@@ -873,14 +873,14 @@ void QModelMgrDlg::updateWidget(QString str)
bool QModelMgrDlg::appImage2Widget(QString strPath, QString strModel)
{
- //ͼ+
+ //抠图+
cv::Mat dst = imread(string((const char *)strPath.toLocal8Bit()), 0);
if (dst.empty()) {
return false;
}
if (dst.rows >= 900 || dst.cols >= 900)
return false;
- //ʾ
+ //显示
QString strFileName = strModel + "_" + hubBase::genDateTime("MMddhhmmzzz");
cv::Mat show;
cv::resize(dst, show, cv::Size(int(dst.cols * 1.5) / 4 * 4, dst.rows*1.5));
@@ -906,7 +906,7 @@ bool QModelMgrDlg::appImage2Widget(QString strPath, QString strModel)
cv::imwrite(string((const char *)strPath2.toLocal8Bit()), dst);
//cv::imwrite(strPath2.toLatin1().data(), dst);
pModel->getTempImage()->add(dst, strFileName, strPath2);
- QString m_str = QString("%1 %2 %3").arg(tr("")).arg(m_pShowImgList->count()).arg(tr("ͼ"));
+ QString m_str = QString("%1 %2 %3").arg(tr("共")).arg(m_pShowImgList->count()).arg(tr("个图像"));
ui.label_imgNum->setText(m_str);
return true;
}
@@ -981,43 +981,43 @@ bool QModelMgrDlg::onMessageBox(QMessageBox::Icon ntype, QString strTitle, QStri
button = QMessageBox::Cancel;
QMessageBox infobox(ntype, strTitle, strAtl, QMessageBox::Ok | button, this);
infobox.setWindowIcon(QIcon(":/image/leaper"));
- infobox.setButtonText(QMessageBox::Ok, tr("ȷ"));
- infobox.setButtonText(QMessageBox::Cancel, tr("ȡ"));
+ infobox.setButtonText(QMessageBox::Ok, tr("确认"));
+ infobox.setButtonText(QMessageBox::Cancel, tr("取消"));
return (infobox.exec() == QMessageBox::Ok);
}
Q_SLOT void QModelMgrDlg::onButtonClicked()
{
QString strObj = sender()->objectName();
- if ("m_pbAdd" == strObj)//ͺ
+ if ("m_pbAdd" == strObj)//添加新型号
{
onAddModel();
}
- else if ("m_pbDel" == strObj)//ɾͺ
+ else if ("m_pbDel" == strObj)//删除型号
{
onDelModel();
}
- else if ("m_pbMod" == strObj)//ͺ
+ else if ("m_pbMod" == strObj)//修改型号
{
onModifyModel();
}
- else if ("m_pbModName" == strObj)//ͺ
+ else if ("m_pbModName" == strObj)//修改型号名
{
onChangeModelName();
}
- else if ("m_pbTrain" == strObj)//ѵ
+ else if ("m_pbTrain" == strObj)//训练单个
{
onTrainModel();
}
- else if ("m_pbTrainAll" == strObj)//ѵȫ
+ else if ("m_pbTrainAll" == strObj)//训练全部
{
onTrainAllModels();
}
- else if ("m_pbAddPic" == strObj)//ͼƬ
+ else if ("m_pbAddPic" == strObj)//添加图片
{
onAddPic2Model();
}
- else if ("m_pbDelAll" == strObj)//ɾ
+ else if ("m_pbDelAll" == strObj)//删除所有
{
onDelAllModels();
}
@@ -1031,7 +1031,7 @@ void QModelMgrDlg::showEvent(QShowEvent *event)
strModels.removeAll("NG");
m_pModelLists->setModelList(strModels);
- QString m_str = QString("%1 %2 ͺ").arg(tr("")).arg(strModels.size()).arg(tr("ͺ"));
+ QString m_str = QString("%1 %2 个型号").arg(tr("共")).arg(strModels.size()).arg(tr("个型号"));
ui.ModelMgr_label_Model_number->setText(m_str);
}
}
diff --git a/tpvs17/tpMain/QSettingDlg.cpp b/tpvs17/tpMain/QSettingDlg.cpp
index 4e87266..fe2ab0a 100644
--- a/tpvs17/tpMain/QSettingDlg.cpp
+++ b/tpvs17/tpMain/QSettingDlg.cpp
@@ -1,4 +1,4 @@
-#include "QSettingDlg.h"
+#include "QSettingDlg.h"
QSettingDlg::QSettingDlg(QWidget *parent)
: QWidget(parent)
diff --git a/tpvs17/tpMain/QSystemSettingDlg.cpp b/tpvs17/tpMain/QSystemSettingDlg.cpp
index fd25b7f..418e004 100644
--- a/tpvs17/tpMain/QSystemSettingDlg.cpp
+++ b/tpvs17/tpMain/QSystemSettingDlg.cpp
@@ -1,5 +1,6 @@
-#include "QSystemSettingDlg.h"
-#include "QDir"
+#include "QSystemSettingDlg.h"
+#include
+#include
#include "QCheckBox"
#include "QLabel"
#include "QSpinBox"
@@ -10,24 +11,24 @@
#include
#include "InfoFile.h"
-#pragma execution_character_set("utf-8")
+
#define DEVELOP_UI_CHECK_SAVE_GOOD "SaveGoodcheckBox"
#define DEVELOP_UI_CHECK_SAVE_BAD "SaveBadcheckBox"
#define DEVELOP_UI_CHECK_SAVE_CUTGOOD "SaveCutGoodcheckBox"
#define DEVELOP_UI_CHECK_SAVE_CUTBAD "SaveCutBadcheckBox"
#define DEVELOP_UI_CHECK_CHKBOXALL2A "chkBoxAll2A"
+#pragma execution_character_set("utf-8")
+const QString DEVELOP_DETECT_CAMERE_VIRSUAL = QObject::tr("虚拟相机触发");
+const QString DEVELOP_DETECT_CAMERE_TRUE = QObject::tr("硬件相机触发");
+const QString DEVELOP_DETECT_DEBUG_NOUSER = QObject::tr("调试免登陆");
+const QString DEVELOP_DETECT_DEBUG_USER = QObject::tr("正常工作模式");
-#define DEVELOP_DETECT_CAMERE_VIRSUAL tr("")
-#define DEVELOP_DETECT_CAMERE_TRUE tr("Ӳ")
-#define DEVELOP_DETECT_DEBUG_NOUSER tr("½")
-#define DEVELOP_DETECT_DEBUG_USER tr("ģʽ")
-
-#define DEVELOP_DETECT_CAM_OUTTRIGER tr("")
-#define DEVELOP_DETECT_CAM_SOFTER tr("")
+const QString DEVELOP_DETECT_CAM_OUTTRIGER = QObject::tr("传感器触发");
+const QString DEVELOP_DETECT_CAM_SOFTER = QObject::tr("软件触发");
-#define DEVELOP_PLC_TRIGER_DOWM tr("½ش")
-#define DEVELOP_PLC_TRIGER_UP tr("ش")
+const QString DEVELOP_PLC_TRIGER_DOWM = QObject::tr("下降沿触发");
+const QString DEVELOP_PLC_TRIGER_UP = QObject::tr("上升沿触发");
QSystemSettingDlg::QSystemSettingDlg(QWidget *parent)
: QWidget(parent)
@@ -35,19 +36,19 @@ QSystemSettingDlg::QSystemSettingDlg(QWidget *parent)
ui.setupUi(this);
m_setting = new QSettings(".\\user\\systemfile.ini", QSettings::IniFormat);
readSettingFile();
- m_listwidgetItemStr.append(tr("豸"));
- m_listwidgetItemStr.append(tr("ͼ"));
- m_listwidgetItemStr.append(tr("PLC"));
- m_listwidgetItemStr.append(tr("Ʋ"));
- m_listwidgetItemStr.append(tr(""));
+ m_listwidgetItemStr.append(tr("相关设备配置"));
+ m_listwidgetItemStr.append(tr("检测图像设置"));
+ m_listwidgetItemStr.append(tr("PLC相关设置"));
+ m_listwidgetItemStr.append(tr("报警灯测试"));
+ m_listwidgetItemStr.append(tr("高级功能"));
{
InitTreeWidget(ui.treeWidget);
- addComRoot(ui.treeWidget, m_listwidgetItemStr.at(0));//豸
- addPicRoot(ui.treeWidget, m_listwidgetItemStr.at(1));//ͼ
- addPLCRoot(ui.treeWidget, m_listwidgetItemStr.at(2));//PLC
- addLightRoot(ui.treeWidget, m_listwidgetItemStr.at(3));//Ʋ
+ addComRoot(ui.treeWidget, m_listwidgetItemStr.at(0));//相关设备配置
+ addPicRoot(ui.treeWidget, m_listwidgetItemStr.at(1));//检测图像设置
+ addPLCRoot(ui.treeWidget, m_listwidgetItemStr.at(2));//PLC相关设置
+ addLightRoot(ui.treeWidget, m_listwidgetItemStr.at(3));//报警灯测试
ui.treeWidget->expandAll();
- addSuperRoot(ui.treeWidget, m_listwidgetItemStr.at(4));//
+ addSuperRoot(ui.treeWidget, m_listwidgetItemStr.at(4));//高级功能
}
{
@@ -151,8 +152,8 @@ bool QSystemSettingDlg::InitTreeWidget(QTreeWidget* pTreewidget)
if (pTreewidget == NULL)
return false;
QStringList header;
- header.append(tr(""));
- header.append(tr("ֵ"));
+ header.append(tr("属性"));
+ header.append(tr("值"));
pTreewidget->setHeaderLabels(header);
pTreewidget->header()->setStretchLastSection(true);
pTreewidget->setColumnCount(2);
@@ -165,8 +166,8 @@ bool QSystemSettingDlg::InitTreeWidget(QTreeWidget* pTreewidget)
void QSystemSettingDlg::addComRoot(class QTreeWidget *pTreewidget, QString strName /*= QString()*/)
{
-// QTreeWidgetItem *m_ComItems = new QTreeWidgetItem(pTreewidget, QStringList(tr("豸")));
-// pStationSetButton = new QPushButton(tr("ҳ"));
+// QTreeWidgetItem *m_ComItems = new QTreeWidgetItem(pTreewidget, QStringList(tr("相关设备配置")));
+// pStationSetButton = new QPushButton(tr("打开配置页面"));
// pTreewidget->setItemWidget(m_ComItems, 1, pStationSetButton);
// m_ComItems->setSizeHint(1, QSize(100, 30));
// pStationSetButton->setObjectName("pStationSetButton");
@@ -174,7 +175,7 @@ void QSystemSettingDlg::addComRoot(class QTreeWidget *pTreewidget, QString strNa
// m_listObj.append(pStationSetButton);
// m_TreeItemMap.insert(strName, m_ComItems);
- QTreeWidgetItem *pLanguage = new QTreeWidgetItem(pTreewidget, QStringList(tr("")));
+ QTreeWidgetItem *pLanguage = new QTreeWidgetItem(pTreewidget, QStringList(tr("语言")));
m_Language = new QComboBox;
pTreewidget->setItemWidget(pLanguage, 1, m_Language);
m_TreeItemMap.insert("language", pLanguage);
@@ -201,8 +202,8 @@ QStringList QSystemSettingDlg::getDirNames(QString strPath)
return strDirNames;
}
dir.setFilter(QDir::Dirs | QDir::Files | QDir::NoDotAndDotDot);
- dir.setSorting(QDir::DirsFirst); // ļ
- // תһList
+ dir.setSorting(QDir::DirsFirst); // 文件夹优先
+ // 转换成一个List
QFileInfoList list = dir.entryInfoList();
if (list.size() < 1)
{
@@ -213,7 +214,7 @@ QStringList QSystemSettingDlg::getDirNames(QString strPath)
{
QFileInfo fileInfo = list.at(i);
QString tt = fileInfo.fileName();
- // ļ
+ // 如果是文件夹
bool bisDir = fileInfo.isDir();
if (bisDir)
{
@@ -226,65 +227,65 @@ QStringList QSystemSettingDlg::getDirNames(QString strPath)
void QSystemSettingDlg::addPicRoot(QTreeWidget *pTreewidget, QString strName)
{
- QTreeWidgetItem *m_RootItems = new QTreeWidgetItem(pTreewidget, QStringList(tr("ͼ")));
+ QTreeWidgetItem *m_RootItems = new QTreeWidgetItem(pTreewidget, QStringList(tr("检测图像设置")));
m_TreeItemMap.insert(strName, m_RootItems);
m_RootItems->setSizeHint(1, QSize(100, 30));
- picitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr("ⱳ"))));
- picitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr("ͼ"))));
- picitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr("ͼ"))));
- picitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr("ԭͼ"))));
- picitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr("ԭͼ"))));
- picitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr(""))));
- picitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr("ͼ·"))));
- picitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr("ñ·"))));
- picitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr("ͼ·"))));
- picitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr("浱ǰ"))));
+ picitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr("检测背景更换"))));
+ picitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr("抠图后"))));
+ picitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr("抠图后"))));
+ picitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr("原图"))));
+ picitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr("原图"))));
+ picitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr("检测结果"))));
+ picitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr("图像保存路径"))));
+ picitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr("设置保存路径"))));
+ picitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr("打开图像路径"))));
+ picitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr("保存当前设置"))));
m_RootItems->addChildren(picitems);
QCheckBox *m_saveImgRes_good = new QCheckBox;
- m_saveImgRes_good->setText(tr("ƥͼ"));
+ m_saveImgRes_good->setText(tr("保存已匹配图"));
m_saveImgRes_good->setObjectName("m_saveImgRes_good");
connect(m_saveImgRes_good, SIGNAL(stateChanged(int)), this, SLOT(onCheckstateChanged(int)));
m_saveImgRes_good->setChecked(DetectState::instance()->saveCutGood == (int)true);
QCheckBox *m_saveImgRes_bad = new QCheckBox;
- m_saveImgRes_bad->setText(tr("ƥͼ"));
+ m_saveImgRes_bad->setText(tr("保存无匹配图"));
m_saveImgRes_bad->setObjectName("m_saveImgRes_bad");
connect(m_saveImgRes_bad, SIGNAL(stateChanged(int)), this, SLOT(onCheckstateChanged(int)));
m_saveImgRes_bad->setChecked(DetectState::instance()->saveCutBad == (int)true);
QCheckBox *m_saveImgSrc_good = new QCheckBox;
- m_saveImgSrc_good->setText(tr("ƥͼ"));
+ m_saveImgSrc_good->setText(tr("保存已匹配图"));
m_saveImgSrc_good->setObjectName("m_saveImgSrc_good");
connect(m_saveImgSrc_good, SIGNAL(stateChanged(int)), this, SLOT(onCheckstateChanged(int)));
m_saveImgSrc_good->setChecked(DetectState::instance()->saveGood == (int)true);
QCheckBox *m_saveImgSrc_bad = new QCheckBox;
- m_saveImgSrc_bad->setText(tr("ƥͼ"));
+ m_saveImgSrc_bad->setText(tr("保存无匹配图"));
m_saveImgSrc_bad->setObjectName("m_saveImgSrc_bad");
connect(m_saveImgSrc_bad, SIGNAL(stateChanged(int)), this, SLOT(onCheckstateChanged(int)));
m_saveImgSrc_bad->setChecked(DetectState::instance()->saveBad == (int)true);
QCheckBox *m_ResAll2A = new QCheckBox;
- m_ResAll2A->setText(tr("ȫȥAͨ"));
+ m_ResAll2A->setText(tr("轮毂全去A通道"));
m_ResAll2A->setObjectName("m_ResAll2A");
connect(m_ResAll2A, SIGNAL(stateChanged(int)), this, SLOT(onCheckstateChanged(int)));
m_ResAll2A->setChecked(DetectState::instance()->m_bObjAll2A == (int)true);
- QPushButton* pChangeBGbp = new QPushButton(tr("鿴ⱳ"));
+ QPushButton* pChangeBGbp = new QPushButton(tr("查看检测背景"));
connect(pChangeBGbp, SIGNAL(clicked()), this, SLOT(onChangeBackground()));
m_pLbShowPath = new QLabel;
m_pLbShowPath->setText(DetectState::instance()->m_SaveImgDirPath);
- QPushButton *pbSetSavePath = new QPushButton(tr("ñ·"));
+ QPushButton *pbSetSavePath = new QPushButton(tr("设置保存路径"));
pbSetSavePath->setObjectName("pbSetSavePath");
connect(pbSetSavePath, SIGNAL(clicked()), this, SLOT(onOpenDataPath()));
- QPushButton *pbOpenImgPath = new QPushButton(tr("ͼ·"));
+ QPushButton *pbOpenImgPath = new QPushButton(tr("打开图像路径"));
pbOpenImgPath->setObjectName("pbOpenImgPath");
connect(pbOpenImgPath, SIGNAL(clicked()), this, SLOT(onOpenDataPath()));
- QPushButton* pSavePara = new QPushButton(tr(""));
+ QPushButton* pSavePara = new QPushButton(tr("保存参数"));
pSavePara->setObjectName("pSavePara");
connect(pSavePara, SIGNAL(clicked()), this, SLOT(onTreeWidgetButton()));
@@ -324,22 +325,22 @@ void QSystemSettingDlg::addPicRoot(QTreeWidget *pTreewidget, QString strName)
void QSystemSettingDlg::addPLCRoot(QTreeWidget *pTreewidget, QString strName)
{
- QTreeWidgetItem *m_PLCItems = new QTreeWidgetItem(pTreewidget, QStringList(tr("PLC")));
+ QTreeWidgetItem *m_PLCItems = new QTreeWidgetItem(pTreewidget, QStringList(tr("PLC相关设置")));
m_TreeItemMap.insert(strName, m_PLCItems);
m_PLCItems->setSizeHint(1, QSize(100, 30));
- PLCitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr(""))));
- PLCitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr("˲(ms)"))));
- PLCitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr("ʱ(ms)"))));
- PLCitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr("(ms)"))));
- PLCitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr("ԴϨʱʱ(ms)"))));
- PLCitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr(""))));
- PLCitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr("ֽʱ(ms)"))));
- PLCitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr("ӳʱ"))));
- PLCitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr("ʱǷʾϢ"))));
- PLCitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr("ǷԶ"))));
- PLCitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr("Ƿ泬ʱ־"))));
+ PLCitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr("保存设置"))));
+ PLCitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr("传感器触发滤波(ms)"))));
+ PLCitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr("相机触发延时(ms)"))));
+ PLCitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr("相机触发脉宽(ms)"))));
+ PLCitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr("光源熄灭延时时间(ms)"))));
+ PLCitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr("传感器触发类型"))));
+ PLCitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr("保持结果时长(ms)"))));
+ PLCitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr("连接超时次数"))));
+ PLCitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr("超时是否显示信息"))));
+ PLCitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr("是否自动重启服务器"))));
+ PLCitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr("是否保存超时日志"))));
m_PLCItems->addChildren(PLCitems);
- QPushButton *savePLCpara = new QPushButton(tr("Ͳ"));
+ QPushButton *savePLCpara = new QPushButton(tr("发送并保存"));
m_PLCTrigerFilter = new QSpinBox();
m_PLCTrigerFilter->setMinimum(1);
m_PLCTrigerFilter->setMaximum(65536);
@@ -377,26 +378,26 @@ void QSystemSettingDlg::addPLCRoot(QTreeWidget *pTreewidget, QString strName)
m_PLC_RestartSeverCount = new QSpinBox();
m_PLC_RestartSeverCount->setMinimum(1);
m_PLC_RestartSeverCount->setMaximum(65536);
- m_PLC_RestartSeverCount->setToolTip(tr("ʱnκԶ"));
+ m_PLC_RestartSeverCount->setToolTip(tr("超时提醒n次后自动重启服务"));
m_PLC_RestartSeverCount->setValue(DetectState::instance()->m_PLC_RestartSeverCount);
QCheckBox *m_PLC_ShowTimerOutMsg = new QCheckBox;
- m_PLC_ShowTimerOutMsg->setText(tr("Ƿʾʾ"));
- m_PLC_ShowTimerOutMsg->setText(tr("ѡͨųʱʱʾϢ"));
+ m_PLC_ShowTimerOutMsg->setText(tr("是否显示提示"));
+ m_PLC_ShowTimerOutMsg->setText(tr("勾选后通信超时时会显示提醒信息"));
m_PLC_ShowTimerOutMsg->setObjectName("m_PLC_ShowTimerOutMsg");
connect(m_PLC_ShowTimerOutMsg, SIGNAL(stateChanged(int)), this, SLOT(onCheckstateChanged(int)));
m_PLC_ShowTimerOutMsg->setChecked(DetectState::instance()->m_PLC_ShowTimerOutMsg == (int)true);
QCheckBox *m_PLC_IsResServer = new QCheckBox;
- m_PLC_IsResServer->setText(tr("ǷԶ"));
- m_PLC_IsResServer->setToolTip(tr("ѡͨųʱﵽϵͳԶPLCԶ"));
+ m_PLC_IsResServer->setText(tr("是否自动重启服务器"));
+ m_PLC_IsResServer->setToolTip(tr("勾选后通信超时次数达到后,系统将自动重启服务,PLC会自动重新连接"));
m_PLC_IsResServer->setObjectName("m_PLC_IsResServer");
connect(m_PLC_IsResServer, SIGNAL(stateChanged(int)), this, SLOT(onCheckstateChanged(int)));
m_PLC_IsResServer->setChecked(DetectState::instance()->m_PLC_IsResServer == (int)true);
QCheckBox *m_PLC_SaveMsgInLog = new QCheckBox;
- m_PLC_SaveMsgInLog->setText(tr("Ϣϵͳ־"));
- m_PLC_SaveMsgInLog->setToolTip(tr("ѡʾʱϢԶ浽ϵͳ־Уڲѯ"));
+ m_PLC_SaveMsgInLog->setText(tr("保存信息到系统日志"));
+ m_PLC_SaveMsgInLog->setToolTip(tr("勾选后表示超时信息将自动保存到系统日志中,便于查询"));
m_PLC_SaveMsgInLog->setObjectName("m_PLC_SaveMsgInLog");
connect(m_PLC_SaveMsgInLog, SIGNAL(stateChanged(int)), this, SLOT(onCheckstateChanged(int)));
m_PLC_SaveMsgInLog->setChecked(DetectState::instance()->m_PLC_SaveMsgInLog == (int)true);
@@ -437,18 +438,18 @@ void QSystemSettingDlg::addPLCRoot(QTreeWidget *pTreewidget, QString strName)
}
void QSystemSettingDlg::addLightRoot(QTreeWidget *pTreewidget, QString strName)
{
- QTreeWidgetItem *m_LightItems = new QTreeWidgetItem(pTreewidget, QStringList(tr("Ʋ")));
+ QTreeWidgetItem *m_LightItems = new QTreeWidgetItem(pTreewidget, QStringList(tr("报警灯测试")));
m_TreeItemMap.insert(strName, m_LightItems);
m_LightItems->setSizeHint(1, QSize(100, 30));
- lightitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr(""))));
- lightitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr("̵"))));
- lightitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr("Ƶ"))));
- lightitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr(""))));
+ lightitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr("红灯"))));
+ lightitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr("绿灯"))));
+ lightitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr("黄灯"))));
+ lightitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr("蜂鸣"))));
m_LightItems->addChildren(lightitems);
- QPushButton *redLight = new QPushButton(tr("һ"));
- QPushButton *grenLight = new QPushButton(tr("̵һ"));
- QPushButton *yellLight = new QPushButton(tr("Ƶһ"));
- QPushButton *beeLight = new QPushButton(tr("һ"));
+ QPushButton *redLight = new QPushButton(tr("红灯闪一下"));
+ QPushButton *grenLight = new QPushButton(tr("绿灯闪一下"));
+ QPushButton *yellLight = new QPushButton(tr("黄灯闪一下"));
+ QPushButton *beeLight = new QPushButton(tr("蜂鸣响一下"));
redLight->setObjectName("redLight");
grenLight->setObjectName("grenLight");
yellLight->setObjectName("yellLight");
@@ -474,26 +475,26 @@ void QSystemSettingDlg::addLightRoot(QTreeWidget *pTreewidget, QString strName)
void QSystemSettingDlg::addSuperRoot(class QTreeWidget *pTreewidget, QString strName)
{
- QTreeWidgetItem *m_DevelopItems = new QTreeWidgetItem(pTreewidget, QStringList(tr("ʹ")));
+ QTreeWidgetItem *m_DevelopItems = new QTreeWidgetItem(pTreewidget, QStringList(tr("开发者使用")));
m_TreeItemMap.insert(strName, m_DevelopItems);
m_DevelopItems->setSizeHint(1, QSize(100, 30));
- developitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr(""))));
- developitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr("ģʽ"))));
- developitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr("ʱ"))));
- developitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr("ϵͳģʽ"))));
- developitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr("ģʽ"))));
- developitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr("ڷ"))));
- developitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr("緢"))));
- developitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr("ڷͨ"))));
- developitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr("緢ͼ"))));
- developitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr("緢ͨ"))));
- developitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr("դʹñ־"))));
- developitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr("߶Ⱥ"))));
- developitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr("ͨ"))));
- developitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr("ʱǷ"))));
- developitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr("ʾ"))));
- developitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr("ʾȲ"))));
+ developitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr("保存设置"))));
+ developitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr("相机模式"))));
+ developitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr("虚拟相机触发时间"))));
+ developitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr("系统模式"))));
+ developitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr("相机触发模式"))));
+ developitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr("串口发送心跳包"))));
+ developitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr("网络发送心跳包"))));
+ developitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr("串口发送通道结果"))));
+ developitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr("网络发送检测结果"))));
+ developitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr("网络发送通道结果"))));
+ developitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr("光栅使用标志"))));
+ developitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr("保存高度厚度数据"))));
+ developitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr("通道分配"))));
+ developitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr("启动时是否检测"))));
+ developitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr("显示厚度数据"))));
+ developitems.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr("显示厚度采样数据"))));
m_DevelopItems->addChildren(developitems);
m_pCameraTrgType = new QComboBox();
@@ -515,72 +516,72 @@ void QSystemSettingDlg::addSuperRoot(class QTreeWidget *pTreewidget, QString str
m_pSystype->addItems(sysStrList);
QCheckBox *m_AutoSendTick2COM = new QCheckBox;
- m_AutoSendTick2COM->setText(tr("ڷ"));
+ m_AutoSendTick2COM->setText(tr("串口发送心跳包"));
m_AutoSendTick2COM->setObjectName("m_AutoSendTick2COM");
connect(m_AutoSendTick2COM, SIGNAL(stateChanged(int)), this, SLOT(onCheckstateChanged(int)));
m_AutoSendTick2COM->setChecked(DetectState::instance()->m_AutoSendTick2COM == (int)true);
QCheckBox *m_AutoSendTick2Net = new QCheckBox;
- m_AutoSendTick2Net->setText(tr("緢"));
+ m_AutoSendTick2Net->setText(tr("网络发送心跳包"));
m_AutoSendTick2Net->setObjectName("m_AutoSendTick2Net");
connect(m_AutoSendTick2Net, SIGNAL(stateChanged(int)), this, SLOT(onCheckstateChanged(int)));
m_AutoSendTick2Net->setChecked(DetectState::instance()->m_AutoSendTick2Net == (int)true);
QCheckBox *m_SendChannelRes2COM = new QCheckBox;
- m_SendChannelRes2COM->setText(tr("ڷͨ"));
+ m_SendChannelRes2COM->setText(tr("串口发送通道结果"));
m_SendChannelRes2COM->setObjectName("m_SendChannelRes2COM");
connect(m_SendChannelRes2COM, SIGNAL(stateChanged(int)), this, SLOT(onCheckstateChanged(int)));
m_SendChannelRes2COM->setChecked(DetectState::instance()->m_SendChannelRes2COM == (int)true);
QCheckBox *m_SendDetectStr2Net = new QCheckBox;
- m_SendDetectStr2Net->setText(tr("緢ͼ"));
+ m_SendDetectStr2Net->setText(tr("网络发送检测结果"));
m_SendDetectStr2Net->setObjectName("m_SendDetectStr2Net");
connect(m_SendDetectStr2Net, SIGNAL(stateChanged(int)), this, SLOT(onCheckstateChanged(int)));
m_SendDetectStr2Net->setChecked(DetectState::instance()->m_SendDetectStr2Net == (int)true);
QCheckBox *m_SendChannelRes2Net = new QCheckBox;
- m_SendChannelRes2Net->setText(tr("緢ͨ"));
+ m_SendChannelRes2Net->setText(tr("网络发送通道结果"));
m_SendChannelRes2Net->setObjectName("m_SendChannelRes2Net");
connect(m_SendChannelRes2Net, SIGNAL(stateChanged(int)), this, SLOT(onCheckstateChanged(int)));
m_SendChannelRes2Net->setChecked(DetectState::instance()->m_SendChannelRes2Net == (int)true);
QCheckBox *m_UseRaster = new QCheckBox;
- m_UseRaster->setText(tr("ʹùդȡ"));
+ m_UseRaster->setText(tr("使用光栅获取厚度"));
m_UseRaster->setObjectName("m_UseRaster");
connect(m_UseRaster, SIGNAL(stateChanged(int)), this, SLOT(onCheckstateChanged(int)));
m_UseRaster->setChecked(DetectState::instance()->m_IsUseRaster == 1);
QCheckBox *m_SaveD2HCsv = new QCheckBox;
- m_SaveD2HCsv->setText(tr("ڲ"));
+ m_SaveD2HCsv->setText(tr("保存数据用于测试"));
m_SaveD2HCsv->setObjectName("m_SaveD2HCsv");
connect(m_SaveD2HCsv, SIGNAL(stateChanged(int)), this, SLOT(onCheckstateChanged(int)));
m_SaveD2HCsv->setChecked(DetectState::instance()->m_SaveD2HCsv == 1);
QCheckBox *m_IsUseChannel = new QCheckBox;
- m_IsUseChannel->setText(tr("Ƿʹͨ"));
+ m_IsUseChannel->setText(tr("是否使用通道分配"));
m_IsUseChannel->setObjectName("m_IsUseChannel");
connect(m_IsUseChannel, SIGNAL(stateChanged(int)), this, SLOT(onCheckstateChanged(int)));
m_IsUseChannel->setChecked(DetectState::instance()->m_IsUseChannel == 1);
QCheckBox *m_StartAndDetect = new QCheckBox;
- m_StartAndDetect->setText(tr("ǷͿʼ"));
+ m_StartAndDetect->setText(tr("是否启动就开始检测"));
m_StartAndDetect->setObjectName("m_StartAndDetect");
connect(m_StartAndDetect, SIGNAL(stateChanged(int)), this, SLOT(onCheckstateChanged(int)));
m_StartAndDetect->setChecked(DetectState::instance()->m_StartAndDetect == 1);
QCheckBox *m_showThressValue = new QCheckBox;
- m_showThressValue->setText(tr("Ƿʾ"));
+ m_showThressValue->setText(tr("是否显示"));
m_showThressValue->setObjectName("m_showThressValue");
connect(m_showThressValue, SIGNAL(stateChanged(int)), this, SLOT(onCheckstateChanged(int)));
m_showThressValue->setChecked(DetectState::instance()->m_showThressValue == 1);
QCheckBox *m_showThressList = new QCheckBox;
- m_showThressList->setText(tr("Ƿʾ"));
+ m_showThressList->setText(tr("是否显示"));
m_showThressList->setObjectName("m_showThressList");
connect(m_showThressList, SIGNAL(stateChanged(int)), this, SLOT(onCheckstateChanged(int)));
m_showThressList->setChecked(DetectState::instance()->m_showThressList == 1);
- QPushButton *m_DebugSave = new QPushButton(tr(""));
+ QPushButton *m_DebugSave = new QPushButton(tr("保存"));
m_DebugSave->setObjectName("m_DebugSave");
connect(m_DebugSave, SIGNAL(clicked()), this, SLOT(onTreeWidgetButton()));
@@ -804,7 +805,7 @@ Q_SLOT void QSystemSettingDlg::onSavePLCPara()
DetectState::instance()->savePLCPara();
// QVariant nType = QVariant(WF_PLCPARA);
// emit(sgGenalData(nType, WF_PARASET));
-// emit sgShowMsg(tr("ѷͲ"));
+// emit sgShowMsg(tr("数据已发送并保存"));
}
}
@@ -828,7 +829,7 @@ void QSystemSettingDlg::writeSettingFile()
Q_SLOT void QSystemSettingDlg::onChangeBG()
{
QFileDialog fileDialog;
- fileDialog.setWindowTitle(tr("ѡıͼ"));
+ fileDialog.setWindowTitle(tr("请选择您的背景图"));
fileDialog.setNameFilter("Picture(*.bmp *.jpg *.png)");
fileDialog.setFileMode(QFileDialog::ExistingFiles);
if (fileDialog.exec() == QDialog::Accepted)
@@ -857,9 +858,9 @@ Q_SLOT void QSystemSettingDlg::onChangeBG()
//return false;
}
//emit sgChangeBG(DstPath);
- QMessageBox infobox(QMessageBox::Information, tr("ʾ"), tr("ͼɣ."), QMessageBox::Yes, NULL);
+ QMessageBox infobox(QMessageBox::Information, tr("提示"), tr("背景图更新完成,请重启本软件."), QMessageBox::Yes, NULL);
infobox.setWindowIcon(QIcon(":/image/leaper"));
- infobox.setButtonText(QMessageBox::Yes, tr("ȷ"));
+ infobox.setButtonText(QMessageBox::Yes, tr("确认"));
infobox.exec();
}
}
@@ -931,7 +932,7 @@ Q_SLOT void QSystemSettingDlg::onTreeWidgetButton()
DetectState::instance()->m_CameraTrigeType = 0;
}
DetectState::instance()->saveDeteImage();
- //emit sgShowMsg(tr(""));
+ //emit sgShowMsg(tr("保存完成"));
}
}
@@ -975,7 +976,7 @@ Q_SLOT void QSystemSettingDlg::onOpenDataPath()
}
else if ("pbSetSavePath" == strObj)
{
- QString dir = QFileDialog::getExistingDirectory(NULL, tr("ļ"), QString(), QFileDialog::ShowDirsOnly | QFileDialog::DontResolveSymlinks);
+ QString dir = QFileDialog::getExistingDirectory(NULL, tr("打开文件夹"), QString(), QFileDialog::ShowDirsOnly | QFileDialog::DontResolveSymlinks);
if (!dir.isEmpty())
{
if (m_pLbShowPath)
diff --git a/tpvs17/tpMain/QTimeMgrDlg.cpp b/tpvs17/tpMain/QTimeMgrDlg.cpp
index 6ed0a75..bb527bc 100644
--- a/tpvs17/tpMain/QTimeMgrDlg.cpp
+++ b/tpvs17/tpMain/QTimeMgrDlg.cpp
@@ -1,4 +1,4 @@
-#include "QTimeMgrDlg.h"
+#include "QTimeMgrDlg.h"
#include
#include "timemgrctrl.h"
#include "qaddtimedlg.h"
@@ -18,7 +18,7 @@ QTimeMgrDlg::QTimeMgrDlg(QWidget *parent)
ui.setupUi(this);
tablemodel = new QStandardItemModel();
QStringList stringList;
- stringList << tr("") << tr("ʼʱ") << tr("ʱ");
+ stringList << tr("班次") << tr("起始时间") << tr("结束时间");
tablemodel->setHorizontalHeaderLabels(stringList);
connect(ui.TimeMgr_tableView, SIGNAL(clicked(const QModelIndex &)), this, SLOT(SlotcellClicked(const QModelIndex &)));
connect(ui.TimeMgr_ADD_Button, SIGNAL(clicked()), this, SLOT(onButtonClicked()));
@@ -49,7 +49,7 @@ Q_SLOT void QTimeMgrDlg::onButtonClicked()
QString str_name = obj->objectName();
if (str_name == "TimeMgr_ADD_Button") {
QAddTimeDlg dlg(this);
- dlg.setWindowTitle(tr("ò"));
+ dlg.setWindowTitle(tr("设置参数"));
dlg.setWindowIcon(QIcon(":/image/leaper"));
dlg.setFocus();
dlg.setWindowFlags(Qt::Dialog | Qt::WindowCloseButtonHint);
@@ -65,8 +65,8 @@ Q_SLOT void QTimeMgrDlg::onButtonClicked()
}
int nIndex = tablemodel->rowCount();
tablemodel->setItem(nIndex, 0, new QStandardItem(m_Timestruct.m_name));
- QString strStart = QString("%1 %2").arg(m_Timestruct.time_start == AM ? tr("") : tr("")).arg(m_Timestruct.m_startTime.toString("hh:mm"));
- QString strEnd = QString("%1 %2").arg(m_Timestruct.time_end == AM ? tr("") : tr("")).arg(m_Timestruct.m_endTime.toString("hh:mm"));
+ QString strStart = QString("%1 %2").arg(m_Timestruct.time_start == AM ? tr("当天") : tr("隔天")).arg(m_Timestruct.m_startTime.toString("hh:mm"));
+ QString strEnd = QString("%1 %2").arg(m_Timestruct.time_end == AM ? tr("当天") : tr("隔天")).arg(m_Timestruct.m_endTime.toString("hh:mm"));
tablemodel->setItem(nIndex, 1, new QStandardItem(strStart));
tablemodel->setItem(nIndex, 2, new QStandardItem(strEnd));
m_Timestruct.m_Index = nIndex;
@@ -78,24 +78,24 @@ Q_SLOT void QTimeMgrDlg::onButtonClicked()
}
else if (str_name == "TimeMgr_Del_Button") {
QString str_name = ui.TimeMgr_label->text();
- if (str_name.isEmpty() || str_name == tr("δѡ"))
+ if (str_name.isEmpty() || str_name == tr("未选中"))
{
- //QMessageBox::information(NULL, QString("ʾ"), QString("δѡΣѡġ"), QMessageBox::Ok);
- QMessageBox infobox(QMessageBox::Information, tr("ʾ"), tr("δѡΣѡġ"), QMessageBox::Yes, this);
+ //QMessageBox::information(NULL, QString("提示"), QString("未选择班次,请选择进行修改。"), QMessageBox::Ok);
+ QMessageBox infobox(QMessageBox::Information, tr("提示"), tr("未选择班次,请选择进行修改。"), QMessageBox::Yes, this);
infobox.setWindowIcon(QIcon(":/image/leaper"));
- infobox.setButtonText(QMessageBox::Yes, tr("ȷ"));
+ infobox.setButtonText(QMessageBox::Yes, tr("确认"));
infobox.exec();
return;
}
- QString str = tr("ȷҪɾ %1 Σ").arg(str_name);
+ QString str = tr("您确定要删除 %1 班次?").arg(str_name);
if (str_name.isEmpty())
return;
- QMessageBox infobox(QMessageBox::Information, tr("ʾ"), str, QMessageBox::Ok | QMessageBox::Cancel, this);
+ QMessageBox infobox(QMessageBox::Information, tr("提示"), str, QMessageBox::Ok | QMessageBox::Cancel, this);
infobox.setWindowIcon(QIcon(":/image/leaper"));
- infobox.setButtonText(QMessageBox::Ok, tr("ȷ"));
- infobox.setButtonText(QMessageBox::Cancel, tr("ȡ"));
+ infobox.setButtonText(QMessageBox::Ok, tr("确认"));
+ infobox.setButtonText(QMessageBox::Cancel, tr("取消"));
if (infobox.exec() == QMessageBox::Ok)
{
if (str_name.isEmpty())
@@ -116,12 +116,12 @@ Q_SLOT void QTimeMgrDlg::onButtonClicked()
}
else if (str_name == "TimeMgr_Mod_Button") {
QString str_name = ui.TimeMgr_label->text();
- if (str_name.isEmpty() || str_name == tr("δѡ"))
+ if (str_name.isEmpty() || str_name == tr("未选中"))
{
- QMessageBox infobox(QMessageBox::Information, tr("ʾ"), tr("δѡΣѡġ"), QMessageBox::Yes, this);
+ QMessageBox infobox(QMessageBox::Information, tr("提示"), tr("未选择班次,请选择进行修改。"), QMessageBox::Yes, this);
infobox.setWindowIcon(QIcon(":/image/leaper"));
- infobox.setButtonText(QMessageBox::Yes, tr("ȷ"));
+ infobox.setButtonText(QMessageBox::Yes, tr("确认"));
infobox.exec();
return;
@@ -145,8 +145,8 @@ Q_SLOT void QTimeMgrDlg::onButtonClicked()
{
TimeStruct tiItem = vec.at(n);
tablemodel->setItem(nIndex, 0, new QStandardItem(tiItem.m_name));
- QString strStart = QString("%1 %2").arg(tiItem.time_start == AM ? tr("") : tr("")).arg(tiItem.m_startTime.toString("hh:mm"));
- QString strEnd = QString("%1 %2").arg(tiItem.time_end == AM ? tr("") : tr("")).arg(tiItem.m_endTime.toString("hh:mm"));
+ QString strStart = QString("%1 %2").arg(tiItem.time_start == AM ? tr("当天") : tr("隔天")).arg(tiItem.m_startTime.toString("hh:mm"));
+ QString strEnd = QString("%1 %2").arg(tiItem.time_end == AM ? tr("当天") : tr("隔天")).arg(tiItem.m_endTime.toString("hh:mm"));
tablemodel->setItem(nIndex, 1, new QStandardItem(strStart));
tablemodel->setItem(nIndex, 2, new QStandardItem(strEnd));
nIndex++;
@@ -178,15 +178,15 @@ void QTimeMgrDlg::showEvent(QShowEvent *)
ui.TimeMgr_tableView->setColumnWidth(0, 100);
ui.TimeMgr_tableView->setColumnWidth(1, 100);
ui.TimeMgr_tableView->setColumnWidth(2, 100);
- //Ĭʾͷò۵ĻǿԽ
+ //默认显示行头,如果你觉得不美观的话,我们可以将隐藏
//m_tableView->verticalHeader()->hide();
ui.TimeMgr_tableView->setSelectionBehavior(QAbstractItemView::SelectRows);
ui.TimeMgr_tableView->setEditTriggers(QAbstractItemView::NoEditTriggers);
//tableView->resizeColumnsToContents();
- //QTableViewʹҼ˵ø
+ //如果你用在QTableView中使用右键菜单,需启用该属性
//tableView->setContextMenuPolicy(Qt::CustomContextMenu);
ui.TimeMgr_tableView->setWordWrap(false);
- //tableView->setShowGrid(false);//ʾ
+ //tableView->setShowGrid(false);//显示表格线
ui.TimeMgr_tableView->setAlternatingRowColors(true);
int nIndex = 0;
if (m_MapTime.size() <= 0)
@@ -198,8 +198,8 @@ void QTimeMgrDlg::showEvent(QShowEvent *)
{
TimeStruct tiItem = vec.at(n);
tablemodel->setItem(nIndex, 0, new QStandardItem(tiItem.m_name));
- QString strStart = QString("%1 %2").arg(tiItem.time_start == AM ? tr("") : tr("")).arg(tiItem.m_startTime.toString("hh:mm"));
- QString strEnd = QString("%1 %2").arg(tiItem.time_end == AM ? tr("") : tr("")).arg(tiItem.m_endTime.toString("hh:mm"));
+ QString strStart = QString("%1 %2").arg(tiItem.time_start == AM ? tr("当天") : tr("隔天")).arg(tiItem.m_startTime.toString("hh:mm"));
+ QString strEnd = QString("%1 %2").arg(tiItem.time_end == AM ? tr("当天") : tr("隔天")).arg(tiItem.m_endTime.toString("hh:mm"));
tablemodel->setItem(nIndex, 1, new QStandardItem(strStart));
tablemodel->setItem(nIndex, 2, new QStandardItem(strEnd));
nIndex++;
diff --git a/tpvs17/tpMain/lpGlobalData.cpp b/tpvs17/tpMain/lpGlobalData.cpp
index 9360c8d..46e207e 100644
--- a/tpvs17/tpMain/lpGlobalData.cpp
+++ b/tpvs17/tpMain/lpGlobalData.cpp
@@ -1,4 +1,4 @@
-#include "lpGlobalData.h"
+#include "lpGlobalData.h"
lpGlobalData::lpGlobalData(QObject *parent)
: QObject(parent)
diff --git a/tpvs17/tpMain/lpMain.cpp b/tpvs17/tpMain/lpMain.cpp
index 63a9a6e..bca9d9b 100644
--- a/tpvs17/tpMain/lpMain.cpp
+++ b/tpvs17/tpMain/lpMain.cpp
@@ -1,4 +1,4 @@
-#include "lpMain.h"
+#include "lpMain.h"
#pragma execution_character_set("utf-8")
IMAINWIDGET_API IMainWidget* MainWidget_Create()
diff --git a/tpvs17/tpMain/lpMainWin.cpp b/tpvs17/tpMain/lpMainWin.cpp
index b58f909..da57cbb 100644
--- a/tpvs17/tpMain/lpMainWin.cpp
+++ b/tpvs17/tpMain/lpMainWin.cpp
@@ -1,4 +1,4 @@
-#include "lpMainWin.h"
+#include "lpMainWin.h"
#include "quserinfo_global.h"
#include
#include
@@ -25,7 +25,7 @@ lpMainWin::lpMainWin(QWidget *parent)
QMySplashScreen m_screen;
m_screen.show();
qRegisterMetaType("TimeStruct");
- m_screen.ShowMsg(tr("رҪģ....."));
+ m_screen.ShowMsg(tr("加载必要模块....."));
onInitCoreCtrl();
ui.setupUi(this);
onInitAbout();
@@ -69,23 +69,23 @@ lpMainWin::lpMainWin(QWidget *parent)
QToolButton* pbutton = new QToolButton(this);
pbutton->setMenu(pToolMenu);
pbutton->setIcon(QIcon(":/ToolBarPic/ToolButon"));
- pbutton->setText(tr(""));
- pbutton->setToolTip(tr(""));
+ pbutton->setText(tr("工具"));
+ pbutton->setToolTip(tr("工具"));
pbutton->setToolButtonStyle(Qt::ToolButtonTextUnderIcon);
pbutton->setPopupMode(QToolButton::InstantPopup);
ui.mainToolBar->addWidget(pbutton);
ui.mainToolBar->addAction(ui.action_about);
}
- {//
+ {//加载语言设置
QSettings languageSetting("hubdetect.ini", QSettings::IniFormat);
QString strLangeage = languageSetting.value("language", "Chinese").toString();
SetLanguage(strLangeage);
}
{
- m_pLbCurrentTime = new QLabel(tr("ϵͳʱ"));
- m_pLbBanci = new QLabel(tr("Ϣ"));
- m_pLbDetectState = new QLabel(tr("״̬"));
- m_pLbUser = new QLabel(tr("û"));
+ m_pLbCurrentTime = new QLabel(tr("系统时间"));
+ m_pLbBanci = new QLabel(tr("班次信息"));
+ m_pLbDetectState = new QLabel(tr("检测状态"));
+ m_pLbUser = new QLabel(tr("用户:"));
QFont m_font;
m_font.setBold(true);
@@ -104,7 +104,7 @@ lpMainWin::lpMainWin(QWidget *parent)
m_pLbDetectState->setFont(m_font);
m_pLbDetectState->setAlignment(Qt::AlignHCenter | Qt::AlignVCenter);
- //m_pLbOnLine = new class QLabel("ģʽ");
+ //m_pLbOnLine = new class QLabel("模式:");
//m_pLbOnLine->setMinimumWidth(c_nWidth);
m_pLbUser->setFont(m_font);
@@ -115,9 +115,9 @@ lpMainWin::lpMainWin(QWidget *parent)
ui.statusBar->addWidget(m_pLbBanci);
ui.statusBar->addPermanentWidget(m_pLbCurrentTime);
}
- //ûģ
+ //加载用户管理模块
loadUserModel();
- //ʼģģ
+ //初始化模型管理模块
{
m_pCtrl = new WheelCtrl(QCoreApplication::applicationDirPath(), &m_screen);
pWorkCtrl = new QWorkMgrCtlr(m_pCtrl);
@@ -126,26 +126,26 @@ lpMainWin::lpMainWin(QWidget *parent)
m_pworkUI->InitUI();
connect(m_pworkUI, SIGNAL(sgUpdatedefect()), this, SLOT(onUpdateDefect()));
- m_pModelMgrDlg = new QModelMgrDlg(m_pCtrl);//ģ
+ m_pModelMgrDlg = new QModelMgrDlg(m_pCtrl);//模板管理
- m_pDebugDlg = new QDebugDlg();//Խ
+ m_pDebugDlg = new QDebugDlg();//调试界面
connect(m_pDebugDlg, SIGNAL(sgTriggerCam()), this, SLOT(onTriggerCam()));
m_pDebugDlg->onSetCtrl(m_pCtrl);
- m_pTimerMgrDlg = new QTimeMgrDlg();//ι
+ m_pTimerMgrDlg = new QTimeMgrDlg();//班次管理
m_pTimerMgrDlg->onSetCtrlPtr(m_pCtrl);
- m_pSystemSettingDlg = new QSystemSettingDlg();//ϵͳ
+ m_pSystemSettingDlg = new QSystemSettingDlg();//系统设置
m_CamSettingDlg = new QCamSettingDlg();
m_CamSettingDlg->setCoreCtrlPtr(m_pCoreCtrl);
m_pixMapList = new QPixmapListBar(ui.tp_main_tabWidget);
- ui.tp_main_tabWidget->insertTab(0, m_pixMapList, tr("ʷ"));
+ ui.tp_main_tabWidget->insertTab(0, m_pixMapList, tr("历史"));
ui.tp_main_tabWidget->setCurrentIndex(0);
}
{
- /*ģ߳*/
+ /*发送模板库线程*/
SendModelLibTask = new QMyThread();
SendModelLibTask->setUser(true);
TaskFunc KuTaskFunc = std::bind(&lpMainWin::SendModelKuTskFun,this);
@@ -155,16 +155,16 @@ lpMainWin::lpMainWin(QWidget *parent)
TaskFunc TickFunc = std::bind(&lpMainWin::SendTickTskFun, this);
SendTiskTsk->loadfunc(TickFunc);
- m_screen.ShowMsg(tr("ϵͳʼ..."));
+ m_screen.ShowMsg(tr("系统初始化完成..."));
}
{
onSetModel();
- /*ͨż*/
+ /*网络通信加载*/
m_pNet = ((WheelCtrl*)m_pCtrl)->getNet();
connect(m_pNet, SIGNAL(sgShow2UI(QString, bool)), this, SLOT(onTcpConnet(QString, bool)));//net
connect(m_pNet, SIGNAL(sgClientConnect(QString, bool)), this, SLOT(onClientConnect(QString, bool)));//net
- //connect(m_pNet, SIGNAL(sgRecv(const QString &)), this, SLOT(onTcpRecv(const QString &)));// netʾ
+ //connect(m_pNet, SIGNAL(sgRecv(const QString &)), this, SLOT(onTcpRecv(const QString &)));// net显示
connect(m_pNet, SIGNAL(sgThickness(double)), this, SLOT(onThickness(double)));//xy height
connect(m_pNet, SIGNAL(sgRecvDetectState(int, int)), this, SLOT(onDetectStateRecv(int, int)));//xy check
connect(m_pNet, SIGNAL(sgClearRev(bool)), this, SLOT(onClearLibRev(bool)));//xy clearlib
@@ -178,21 +178,21 @@ lpMainWin::lpMainWin(QWidget *parent)
connect(m_pNet, SIGNAL(sgShutDownComputer()), this, SLOT(onShutDownComputer()));
connect(m_pNet, SIGNAL(sgLibRev(bool)), SendModelLibTask, SLOT(WaitSingleIn(bool)));//xy lib
-// connect(m_pNet, SIGNAL(sgChangeOnlineState(int)), m_pUi, SLOT(onSwitchOnlineModel(int)));//ǿ
+// connect(m_pNet, SIGNAL(sgChangeOnlineState(int)), m_pUi, SLOT(onSwitchOnlineModel(int)));//强制在线 离线
- QTimer::singleShot(500, m_pNet, SLOT(onOpenServer()));//ӳ2sTCP
+ QTimer::singleShot(500, m_pNet, SLOT(onOpenServer()));//延迟2s打开网络TCP服务
}
{
- connect(&m_PulseTimer, SIGNAL(timeout()), this, SLOT(onPulseTimer()));//
- connect(&m_wfPulseTimer, SIGNAL(timeout()), this, SLOT(onwfPulseTimer()));//
- connect(&m_ThicknessTimer, SIGNAL(timeout()), this, SLOT(onThicknessTimer()));// Ȳѯ
+ connect(&m_PulseTimer, SIGNAL(timeout()), this, SLOT(onPulseTimer()));//心跳包
+ connect(&m_wfPulseTimer, SIGNAL(timeout()), this, SLOT(onwfPulseTimer()));//心跳包
+ connect(&m_ThicknessTimer, SIGNAL(timeout()), this, SLOT(onThicknessTimer()));// 厚度查询
connect(&m_ReadLibTimer, SIGNAL(timeout()), this, SLOT(onSendReadOnlineLib()));
connect(this, SIGNAL(sgTickTsk()), this, SLOT(onPulseTimer()));
connect(this, SIGNAL(sgShowMsg(QString, bool)), this, SLOT(onTcpConnet(QString, bool)));
- connect(this, SIGNAL(sgTaskSendModels(int, QString, double, double)), this, SLOT(onTaskSendModels(int, QString, double, double)));//ڷĪ
- connect(this, SIGNAL(sgTskSendDetectState(int, QString, int)), this, SLOT(onTaskSendDetectState(int, QString, int)));//ⷢ ڷͼ״̬
- connect(this, SIGNAL(sgTskSendCheck(int, int, QString)), this, SLOT(onTaskCheck(int, int, QString)));//״̬ѯ ڲѯ߳
+ connect(this, SIGNAL(sgTaskSendModels(int, QString, double, double)), this, SLOT(onTaskSendModels(int, QString, double, double)));//用于发送莫板库
+ connect(this, SIGNAL(sgTskSendDetectState(int, QString, int)), this, SLOT(onTaskSendDetectState(int, QString, int)));//离线检测发送 用于发送检测状态
+ connect(this, SIGNAL(sgTskSendCheck(int, int, QString)), this, SLOT(onTaskCheck(int, int, QString)));//在线检测状态查询 用于查询线程
// connect(this, SIGNAL(sgCheckEnd()), this, SLOT(onCheckEnd()));
connect(this, SIGNAL(sgShowImgState(QString)), this, SLOT(onShowImgState(QString)));
connect(this, SIGNAL(sgGetImg()), this, SLOT(onGetImg()));
@@ -202,14 +202,14 @@ lpMainWin::lpMainWin(QWidget *parent)
connect(this, SIGNAL(sgShowChannelRes(QString)), this, SLOT(onShowChannel(QString)));
}
{
- /*֮һֱͺȲѯ*/
+ /*启动之后就一直发送心跳包和厚度查询*/
if (DetectState::instance()->m_AutoSendTick2Net)
{
SendTiskTsk->setSleepTime(1000);
SendTiskTsk->start();
}
- if (DetectState::instance()->m_StartAndDetect == 1)//m_sysType ʾƼ
+ if (DetectState::instance()->m_StartAndDetect == 1)//m_sysType 表示万丰科技的
{
// m_timerDetect.setSingleShot(true);
// connect(&m_timerDetect, SIGNAL(timeout()), m_pUi, SLOT(onStartDetect()));
@@ -417,8 +417,8 @@ void lpMainWin::SearchQmFile(const QString & strDir)
return;
}
dir.setFilter(QDir::Dirs | QDir::Files | QDir::NoDotAndDotDot);
- dir.setSorting(QDir::DirsFirst); // ļ
- // תһList
+ dir.setSorting(QDir::DirsFirst); // 文件夹优先
+ // 转换成一个List
QFileInfoList list = dir.entryInfoList();
if (list.size() < 1)
{
@@ -429,7 +429,7 @@ void lpMainWin::SearchQmFile(const QString & strDir)
{
QFileInfo fileInfo = list.at(i);
QString tt = fileInfo.fileName();
- // ļ
+ // 如果是文件夹
bool bisDir = fileInfo.isDir();
if (bisDir)
{
@@ -451,7 +451,7 @@ void lpMainWin::SetTranslator(const QString strPath)
return;
}
QTranslator *pTrans = new QTranslator;
- if (pTrans->load(strPath)) // سɹ
+ if (pTrans->load(strPath)) // 如果加载成功
{
qApp->installTranslator(pTrans);
m_VecTranPtr.append(pTrans);
@@ -487,7 +487,7 @@ void lpMainWin::SetLanguage(QString strLangage)
SearchQmFile(transDir);
}
}
-/*߳̽ͼ*/
+/*主线程接收图像*/
void lpMainWin::INewCameraImage(const QString& camKey, QImage img)
{
if (m_ImgViewer)
@@ -507,13 +507,13 @@ void lpMainWin::INewCameraImage(const QString& camKey, QImage img)
}
}
-/*̷߳㷨*/
+/*多线程发送算法结果*/
void lpMainWin::IVariantMapToUI(const QString& camKey, const QVariantMap& vMap)
{
- emit(sgShowImgState(tr("ʾʶ")));
+ emit(sgShowImgState(tr("显示识别结果")));
if (vMap.contains("error"))
{
- emit(sgShowMsgdlg(tr("ͼͱͼһⱳ")));
+ emit(sgShowMsgdlg(tr("相机图像和背景图不一样,请更换检测背景!")));
return;
}
Result2Ui *pResult = (Result2Ui*)vMap.value("result").toLongLong();
@@ -525,7 +525,7 @@ void lpMainWin::IVariantMapToUI(const QString& camKey, const QVariantMap& vMap)
static int ErrorNum = 0;
if (m_pNet) {
if (pResult->m_strModel == "NG") {
- //m_pNet->sendLight(0, 1, 1000, 10);//
+ //m_pNet->sendLight(0, 1, 1000, 10);//红灯
SendResultBee(LIGHT_REDBEE, 1);
SendResultBee(LIGHT_BEE, 1);
@@ -537,9 +537,9 @@ void lpMainWin::IVariantMapToUI(const QString& camKey, const QVariantMap& vMap)
ErrorNum = 0;
}
if (ErrorNum >= 3) {
- QString str = tr("!!!%1δʶͺ").arg(ErrorNum);
+ QString str = tr("警告!!!连续出现%1个未识别型号").arg(ErrorNum);
if (DetectState::instance()->IsDetect == false)
- str += tr(",δɵ");
+ str += tr(",未开启检测功能造成的");
m_pCtrl->addLog(str, emTypeWaring);
//m_pNet->sendLight(0, 1, 2000, 100);
//m_pNet->sendLight(3, 1, 3000, 100);
@@ -548,11 +548,11 @@ void lpMainWin::IVariantMapToUI(const QString& camKey, const QVariantMap& vMap)
}
}
if (DetectState::instance()->m_SendDetectStr2Net)
- SendResultStr2PLC(pResult);//ͼַPLC
+ SendResultStr2PLC(pResult);//发送检测结果字符到PLC
if (DetectState::instance()->m_SendChannelRes2COM)
- SendResultChannelCOM(pResult);//ͼͨ
+ SendResultChannelCOM(pResult);//发送检测结果通道到串口
if (DetectState::instance()->m_SendChannelRes2Net)
- SendResultChannel2PLC(pResult);//ͼͨPLC
+ SendResultChannel2PLC(pResult);//发送检测结果通道到PLC
m_pCtrl->saveResult(pResult);
saveImage(pResult);
@@ -569,13 +569,13 @@ void lpMainWin::IVariantMapToUI(const QString& camKey, const QVariantMap& vMap)
// }
}
-/*̻߳ȡ㷨*/
+/*多线程获取算法参数*/
QVariant lpMainWin::IGetVariantById(int id)
{
- m_nDiffTrigNum--;//뵽 ʾȡͼƬ
+ m_nDiffTrigNum--;//进入到这里 表示获取到了图片
qWarning() << "Alg get An Image:" << "(" << QDateTime::currentDateTime().toString("yyyy-MM-dd hh:mm:ss zzz") << ")";
- emit(sgShowImgState(tr("ͼ,ڼ...")));
+ emit(sgShowImgState(tr("获得图像,正在计算中...")));
emit(sgGetImg());
qDebug() << "get one Pic ,id=" << id;
if (DetectState::instance()->m_showThressList == 1) {
@@ -621,12 +621,12 @@ Q_SLOT void lpMainWin::onLogInOut(QString strName, int level, int state)
lpGlobalData::instance()->m_level = level;
if (state == 0) {
m_pCtrl->setUser(strName, level);
- ui.action_Login->setText(tr("ע "));
+ ui.action_Login->setText(tr("注 销"));
}
else
{
m_pCtrl->setUser(strName, level);
- ui.action_Login->setText(tr(" ¼"));
+ ui.action_Login->setText(tr("登 录"));
}
onUpdateByLevel(level);
}
@@ -635,14 +635,14 @@ Q_SLOT void lpMainWin::onActionClicked()
{
QString strObj = sender()->objectName();
if ("action_userManager" == strObj) {
- /*û*/
+ /*用户管理*/
if (m_pUserCtrl)
{
m_pUserCtrl->ShowUserMgrDlg(this);
}
}
else if ("action_Login" == strObj) {
- /*û½*/
+ /*用户登陆*/
if (m_pUserCtrl)
{
m_pUserCtrl->CheckLogin(this);
@@ -650,7 +650,7 @@ Q_SLOT void lpMainWin::onActionClicked()
}
else if ("action_about" == strObj) {
m_aboutDlg.setParent(this);
- m_aboutDlg.setWindowTitle(tr(""));
+ m_aboutDlg.setWindowTitle(tr("关于"));
m_aboutDlg.setWindowFlags(Qt::Dialog | Qt::WindowCloseButtonHint);
m_aboutDlg.setWindowIcon(QIcon(":/resource/logo-8.png"));
m_aboutDlg.setWindowModality(Qt::ApplicationModal);
@@ -667,7 +667,7 @@ Q_SLOT void lpMainWin::onActionClicked()
else if ("action_setting_ban" == strObj) {
if (m_pTimerMgrDlg) {
m_pTimerMgrDlg->setParent(this);
- m_pTimerMgrDlg->setWindowTitle(tr("ι"));
+ m_pTimerMgrDlg->setWindowTitle(tr("班次管理"));
m_pTimerMgrDlg->setWindowFlags(Qt::Dialog | Qt::WindowCloseButtonHint);
m_pTimerMgrDlg->setWindowIcon(QIcon(":/resource/logo-8.png"));
m_pTimerMgrDlg->setWindowModality(Qt::ApplicationModal);
@@ -678,7 +678,7 @@ Q_SLOT void lpMainWin::onActionClicked()
else if ("action_debug" == strObj) {
if (m_pDebugDlg) {
m_pDebugDlg->setParent(this);
- m_pDebugDlg->setWindowTitle(tr("Թ"));
+ m_pDebugDlg->setWindowTitle(tr("调试工具"));
m_pDebugDlg->setWindowFlags(Qt::Dialog | Qt::WindowCloseButtonHint);
m_pDebugDlg->setWindowIcon(QIcon(":/resource/logo-8.png"));
m_pDebugDlg->setWindowModality(Qt::ApplicationModal);
@@ -686,7 +686,7 @@ Q_SLOT void lpMainWin::onActionClicked()
m_pDebugDlg->show();
}
}
- else if ("action_connect_mode" == strObj) {//ģ年ѡ
+ else if ("action_connect_mode" == strObj) {//检测模板勾选
if (m_pworkUI)
{
m_pworkUI->setParent(this);
@@ -700,11 +700,11 @@ Q_SLOT void lpMainWin::onActionClicked()
else if ("action_checkdata" == strObj) {
}
- else if ("action_modelmgr" == strObj) {//ģ
+ else if ("action_modelmgr" == strObj) {//模板管理
if (m_pModelMgrDlg)
{
m_pModelMgrDlg->setParent(this);
- m_pModelMgrDlg->setWindowTitle(tr("ģ"));
+ m_pModelMgrDlg->setWindowTitle(tr("模板管理"));
m_pModelMgrDlg->setWindowFlags(Qt::Dialog | Qt::WindowCloseButtonHint);
m_pModelMgrDlg->setWindowIcon(QIcon(":/resource/logo-8.png"));
m_pModelMgrDlg->setWindowModality(Qt::ApplicationModal);
@@ -717,7 +717,7 @@ Q_SLOT void lpMainWin::onActionClicked()
{
m_pSystemSettingDlg->setParent(this);
m_pSystemSettingDlg->onShowWidget(lpGlobalData::instance()->m_level);
- m_pSystemSettingDlg->setWindowTitle(tr("ϵͳ"));
+ m_pSystemSettingDlg->setWindowTitle(tr("系统参数设置"));
m_pSystemSettingDlg->setWindowFlags(Qt::Dialog | Qt::WindowCloseButtonHint);
m_pSystemSettingDlg->setWindowIcon(QIcon(":/resource/logo-8.png"));
m_pSystemSettingDlg->setWindowModality(Qt::ApplicationModal);
@@ -730,7 +730,7 @@ Q_SLOT void lpMainWin::onActionClicked()
{
m_CamSettingDlg->setParent(this);
//m_CamSettingDlg->onShowWidget(lpGlobalData::instance()->m_level);
- m_CamSettingDlg->setWindowTitle(tr(""));
+ m_CamSettingDlg->setWindowTitle(tr("相机配置"));
m_CamSettingDlg->setWindowFlags(Qt::Dialog | Qt::WindowCloseButtonHint);
m_CamSettingDlg->setWindowIcon(QIcon(":/resource/logo-8.png"));
m_CamSettingDlg->setWindowModality(Qt::ApplicationModal);
@@ -743,13 +743,13 @@ Q_SLOT void lpMainWin::onActionClicked()
Q_SLOT void lpMainWin::onButtonClicked()
{
QString strObj = sender()->objectName();
- if ("btn_start_detect" == strObj)//ʼ
+ if ("btn_start_detect" == strObj)//开始
{
- //ʼⰴť
+ //开始检测按钮
if (DetectState::instance()->IsDetect == false) {
- ui.btn_start_detect->setText(tr("ֹͣ"));
+ ui.btn_start_detect->setText(tr("停止检测"));
m_pCtrl->onStart();
- QString str = tr("˿ʼⰴťܿ");
+ QString str = tr("按下了开始检测按钮,检测功能开启");
m_pCtrl->addLog(str, emTypeRunState);
//QTimer::singleShot(3000, [&](){m_pState->bLockDetect = true; });
@@ -757,23 +757,23 @@ Q_SLOT void lpMainWin::onButtonClicked()
}
else {
m_pCtrl->onFinish();
- ui.btn_start_detect->setText(tr("ʼ"));
- QString str = tr("ֹͣⰴťܹر");
+ ui.btn_start_detect->setText(tr("开始检测"));
+ QString str = tr("按下了停止检测按钮,检测功能关闭");
m_pCtrl->addLog(str, emTypeRunState);
DetectState::instance()->bLockDetect = false;
}
DetectState::instance()->IsDetect = !DetectState::instance()->IsDetect;
}
- else if ("btn_clear_data" == strObj) {//
- QMessageBox infobox(QMessageBox::Warning, tr("ʾ"), tr(""), QMessageBox::Yes | QMessageBox::Cancel, this);
- infobox.setButtonText(QMessageBox::Yes, tr("ȷ"));
- infobox.setButtonText(QMessageBox::Cancel, tr("ȡ"));
+ else if ("btn_clear_data" == strObj) {//交班清零
+ QMessageBox infobox(QMessageBox::Warning, tr("提示"), tr("将清空所有数据"), QMessageBox::Yes | QMessageBox::Cancel, this);
+ infobox.setButtonText(QMessageBox::Yes, tr("确定"));
+ infobox.setButtonText(QMessageBox::Cancel, tr("取消"));
infobox.setWindowIcon(QIcon(":/image/leaper"));
if (QMessageBox::Cancel != infobox.exec()) {
m_pCtrl->onClear();
ui.main_lb_res_ok_num->setText(QString::number(0));
ui.main_lb_res_ng_num->setText(QString::number(0));
- QString str = m_pCtrl->getUserName() + ":" + tr("㰴ťȫ");
+ QString str = m_pCtrl->getUserName() + ":" + tr("按下了清零按钮,数据全部清零");
m_pCtrl->addLog(str, emTypeUseState);
}
}
@@ -782,8 +782,8 @@ Q_SLOT void lpMainWin::onButtonClicked()
void lpMainWin::timerEvent(QTimerEvent *event)
{
if (event->timerId() == m_timerID) {
- QString str = tr("ϵͳʱ䣺 ");
- QString strDetectState = tr("״̬:") + (DetectState::instance()->IsDetect == true ? tr("...") : tr("δ..."));
+ QString str = tr("系统时间: ");
+ QString strDetectState = tr("检测状态:") + (DetectState::instance()->IsDetect == true ? tr("检测中...") : tr("未检测..."));
// if (strLanguage != "Chinese")
// {
// str = "Time:";
@@ -813,7 +813,7 @@ void lpMainWin::timerEvent(QTimerEvent *event)
if (m_pCtrl)
show_label = m_pCtrl->getCurrentBan();
- QString strMsg = tr("Ϣ") + (show_label.isEmpty() == true ? tr("ʱδð") : show_label);
+ QString strMsg = tr("班次信息:") + (show_label.isEmpty() == true ? tr("该时间段未设置班次") : show_label);
// if (strLanguage != "Chinese")
// {
// strMsg = tr("Classes:")
@@ -827,7 +827,7 @@ void lpMainWin::timerEvent(QTimerEvent *event)
// if (strLanguage != "Chinese")
// m_pLbUser->setText(tr("User:") + show_label);
// else
- m_pLbUser->setText(tr("ǰû") + show_label);
+ m_pLbUser->setText(tr("当前用户:") + show_label);
m_pLbUser->setStyleSheet("font: 14px;");
}
}
@@ -840,8 +840,8 @@ void lpMainWin::closeEvent(QCloseEvent *event)
void lpMainWin::SendModelKuTskFun()
{
/*
- ģ߳
- еģȫPLC
+ 发送模板库线程
+ 把已有的所有模板库全部发送至PLC中
*/
DetectState::instance()->m_ThreadWaitTime = 100;
const int c_nErrorTime = 3;
@@ -877,13 +877,13 @@ void lpMainWin::SendModelKuTskFun()
} while (nIndex < lst.size());
}
- emit(sgShowMsgdlg(tr("ģⷢ")));
+ emit(sgShowMsgdlg(tr("模板库发送完成")));
}
void lpMainWin::SendTickTskFun()
{
- //
+ //心跳包发送
if (m_pNet)
{
m_pNet->sendPulse(6000, DetectState::instance()->IsDetect, DetectState::instance()->IsOnline);
@@ -894,8 +894,8 @@ void lpMainWin::SendTickTskFun()
void lpMainWin::onSetModel()
{
/*
- ¼ģ
- ģ嵽㷨ʹ
+ 重新加载模板
+ 重新设置模板到算法中使用
*/
forDefectList = pWorkCtrl->getDefectList();
if (m_pTableCheck) {
@@ -904,7 +904,7 @@ void lpMainWin::onSetModel()
strList.append("NG");
m_pTableCheck->setModelList(strList);
}
- QString str = QString("%1:%2(%3)").arg(tr("ڼͺ")).arg(forDefectList.size()).arg(m_pCtrl->getAllModelName().size() - 1);
+ QString str = QString("%1:%2(%3)").arg(tr("正在检测型号数")).arg(forDefectList.size()).arg(m_pCtrl->getAllModelName().size() - 1);
ui.main_showWorkLabel->setText(str);
// IWheelUi *pMainWidget = m_pUi->getItemWidget(WHEEL_UI_MAINWINDOW);
@@ -929,7 +929,7 @@ Q_SLOT void lpMainWin::onUpdateDefect() {
strList.append("NG");
m_pTableCheck->setModelList(strList);
}
- QString str = QString("%1:%2(%3)").arg(tr("ڼͺ")).arg(forDefectList.size()).arg(m_pCtrl->getAllModelName().size() - 1);
+ QString str = QString("%1:%2(%3)").arg(tr("正在检测型号数")).arg(forDefectList.size()).arg(m_pCtrl->getAllModelName().size() - 1);
ui.main_showWorkLabel->setText(str);
}
@@ -961,7 +961,7 @@ Q_SLOT void lpMainWin::onTcpConnet(QString str, bool bConnect)
Q_SLOT void lpMainWin::onClientConnect(QString addr, bool bConnect)
{
- /*жӵĻIPַDzDZúõIP״̬ ĬϽģ*/
+ /*判断连接的机器IP地址是不是本地设置好的IP,并检测他的连接状态,如果是 默认将发送模板库给他*/
QString m_addr = NetProtocol::genAddressPort(m_pNet->getIp(emNetClient), m_pNet->getPort(emNetClient));
if (m_addr == addr && bConnect)
{
@@ -969,16 +969,16 @@ Q_SLOT void lpMainWin::onClientConnect(QString addr, bool bConnect)
}
if (bConnect == true && 1 == DetectState::instance()->IsOnline) {
- //m_pUi->onSwitchOnlineModel(m_pState->IsOnline);//ģʽ ģʽл
+ //m_pUi->onSwitchOnlineModel(m_pState->IsOnline);//在线模式 离线模式切换
}
QString strMsg;
if (bConnect)
{
- strMsg += QString("IP:%1 %2").arg(addr).arg(tr(""));
+ strMsg += QString("IP:%1 %2").arg(addr).arg(tr("已连接"));
}
else
{
- strMsg += QString("IP:%1 %2").arg(addr).arg(tr("ѶϿ"));
+ strMsg += QString("IP:%1 %2").arg(addr).arg(tr("已断开"));
}
m_pCtrl->addLog(strMsg, emTypeRunState);
ui.main_textBrowser->append(strMsg);
@@ -1008,7 +1008,7 @@ Q_SLOT void lpMainWin::onDetectStateRecv(int nIndex, int value)
Q_SLOT void lpMainWin::onClearLibRev(bool state)
{
- /*յӦ*/
+ /*接收到库清空应答*/
if (SendModelLibTask) {
if (SendModelLibTask->isRunning())
SendModelLibTask->stop();
@@ -1018,7 +1018,7 @@ Q_SLOT void lpMainWin::onClearLibRev(bool state)
}
}
-//յ رնʱ
+//接收到心跳包 关闭定时器
Q_SLOT void lpMainWin::onPulseRev()
{
if (m_TimerID != 0)
@@ -1031,7 +1031,7 @@ Q_SLOT void lpMainWin::onPulseRev()
Q_SLOT void lpMainWin::onRecvTrigPara()
{
- emit(sgShowMsgdlg(tr("PLCյò")));
+ emit(sgShowMsgdlg(tr("PLC已收到相关设置参数!")));
}
Q_SLOT void lpMainWin::onReadDetectState(int nIndex, QString strModel)
@@ -1065,12 +1065,12 @@ Q_SLOT void lpMainWin::onReadDetectStateASK()
Q_SLOT void lpMainWin::onTrigRecv(int m_value)
{
- /*ڽPLCź ԼǷյͼ */
+ /*用于接收PLC触发相机的信号 自检是否收到图像 */
qDebug() << "recv a camera trig :" << QString::number(m_value);
qWarning() << "recv a Triger signal from PLC:" << "(" << QDateTime::currentDateTime().toString("yyyy-MM-dd hh:mm:ss zzz") << ")";
- //if (m_pState)//ʹ
+ //if (m_pState)//如果是使用软件触发相机拍照
{
- if (DetectState::instance()->m_CameraTrigeType == 0)//ģʽ
+ if (DetectState::instance()->m_CameraTrigeType == 0)//软件触发模式
{
if (DetectState::instance()->bLockDetect == true) {
//CC_Action(CC_AC_NEXT);
@@ -1085,9 +1085,9 @@ Q_SLOT void lpMainWin::onServerState(QString Addr, int port, bool m_state)
{
QString str;
if (m_state == true)
- str = QString(tr("Ѵ"));
+ str = QString(tr("已打开"));
else
- str = QString(tr("ѹر"));
+ str = QString(tr("已关闭"));
QString strMsg = QString("serverIP %1 port %2 %3.").arg(Addr).arg(port).arg(str);
m_pCtrl->addLog(m_pCtrl->getUserName() + ":" + strMsg, emTypeRunState);
}
@@ -1118,7 +1118,7 @@ Q_SLOT void lpMainWin::onShutDownComputer()
//***********************************************************************
Q_SLOT void lpMainWin::onPulseTimer()
{
- //
+ //心跳包发送
if (m_pNet)
{
m_pNet->sendPulse(6000, DetectState::instance()->IsDetect, DetectState::instance()->IsOnline);
@@ -1150,7 +1150,7 @@ Q_SLOT void lpMainWin::onGetImg()
{
ui.main_lb_res_model_pic->setStyleSheet(QString("QLabel{border: 1px solid rgb(0,0,0,250);background-color: rgb(200, 200, 200);}"));
}
-//չʾϢ
+//展示信息
Q_SLOT void lpMainWin::onShowMsg(QString str)
{
// QPulpewidget *pw = new QPulpewidget();
@@ -1193,16 +1193,16 @@ void lpMainWin::onInitAbout()
"%3:www.hzleaper.com
"
"%4:%5
"
"%6:%7
"
- "%8%9
"
+ "%8:%9
"
"
"
- ).arg(tr("ͺʶϵͳ"))
- .arg(tr("ɺƼͺʶͷ࣬ɴˮϵͳʹ"))
- .arg(tr("Ҫһ˽òƷϢǵվ"))
- .arg(tr("汾")).arg(111)
- //.arg(tr("㷨汾")).arg(strWhelAlgoType)
- .arg(tr("㷨汾")).arg(111)
- .arg(tr("ʱ")).arg(111)
- .arg(tr("Ȩ (c) Ƽ˾ "));
+ ).arg(tr("轮毂型号识别系统"))
+ .arg(tr("本软件由杭州利珀科技开发,用于轮毂型号识别和分类,可搭配流水线运输系统使用"))
+ .arg(tr("若需要进一步了解该产品的相关信息,请访问我们的网站"))
+ .arg(tr("软件版本")).arg(111)
+ //.arg(tr("算法版本")).arg(strWhelAlgoType)
+ .arg(tr("算法版本")).arg(111)
+ .arg(tr("最后更新时间")).arg(111)
+ .arg(tr("版权 (c) 属 杭州利珀科技有限公司 所有"));
m_aboutDlg.setFixedSize(500, 300);
//QLabel* lbTitle = new QLabel(m_lightBox);
//QLabel* lbTitle = new QLabel(&m_mainWidget);
@@ -1219,7 +1219,7 @@ void lpMainWin::onInitAbout()
QPalette pl = pEdit->palette();
pl.setBrush(QPalette::Base, QBrush(QColor(255, 0, 0, 0)));
pEdit->setPalette(pl);
- QPushButton* lbClose = new QPushButton(tr("ر"));
+ QPushButton* lbClose = new QPushButton(tr("关闭"));
//QGridLayout* lbLayout = new QGridLayout(m_lightBox);
QGridLayout* lbLayout = new QGridLayout(&m_aboutDlg);
//lbLayout->addWidget(lbTitle, 1, 1);
@@ -1237,15 +1237,15 @@ void lpMainWin::onShowResult(Result2Ui* pRlt)
if (!pRlt)
return;
/*
- ui.main_lb_res_model_pic;//ƥͼ
- ui.main_lb_res_okng;//ƥ OK NG
- ui.main_lb_res_model_id;//ƥͺ
- ui.main_lb_res_model_score;//ƥ
- ui.main_lb_res_model_thickness;//
- ui.main_lb_res_model_diameter;//ֱ
- ui.main_lb_res_model_time;//ʶʱʱ
- ui.main_lb_res_ok_num;//ʶ
- ui.main_lb_res_ng_num;//NG
+ ui.main_lb_res_model_pic;//匹配结果图
+ ui.main_lb_res_okng;//匹配结果 OK NG
+ ui.main_lb_res_model_id;//匹配型号
+ ui.main_lb_res_model_score;//匹配分数
+ ui.main_lb_res_model_thickness;//厚度
+ ui.main_lb_res_model_diameter;//直径
+ ui.main_lb_res_model_time;//识别耗时时间
+ ui.main_lb_res_ok_num;//识别总数
+ ui.main_lb_res_ng_num;//NG 数量
*/
int scareh = ui.main_lb_res_model_pic->height();
@@ -1336,7 +1336,7 @@ void lpMainWin::SendResultBee(emTypeBee m_Type, int num)
//}
if (m_Type == LIGHT_REDBEE) {
- m_pNet->sendLight(0, 1, 500, 500);//
+ m_pNet->sendLight(0, 1, 500, 500);//红灯
}
else if (m_Type == LIGHT_GREENBEE) {
m_pNet->sendLight(2, 1, 500, 500);
@@ -1375,12 +1375,12 @@ void lpMainWin::SendResultChannel2PLC(Result2Ui* m_Res)
if (defaultInfo)
{
nResultChannel = defaultInfo->m_value;
- emit(sgShowChannelRes(defaultInfo->m_ChannelName + tr("(Ĭ)")));
+ emit(sgShowChannelRes(defaultInfo->m_ChannelName + tr("(默认)")));
}
else
{
nResultChannel = 1000;
- emit(sgShowChannelRes(tr("Ĭͨ ֵ1000")));
+ emit(sgShowChannelRes(tr("默认通道 值1000")));
}
if (m_pNet)
@@ -1406,12 +1406,12 @@ void lpMainWin::SendResultChannelCOM(Result2Ui* m_Res)
// if (defaultInfo)
// {
// frame.data1 = defaultInfo->m_value;
- // emit(sgShowChannelRes(defaultInfo->m_ChannelName + QString(tr("(Ĭ)"))));
+ // emit(sgShowChannelRes(defaultInfo->m_ChannelName + QString(tr("(默认)"))));
// }
// else
// {
// frame.data1 = 1000;
- // emit(sgShowChannelRes(tr("Ĭͨ ֵ1000")));
+ // emit(sgShowChannelRes(tr("默认通道 值1000")));
// }
// SendDataToCom(0x47, frame);
//}
@@ -1476,7 +1476,7 @@ void lpMainWin::saveImage(Result2Ui* pRes)
}
void lpMainWin::saveImage(const QPixmap& m_pixmap, QString m_path, QString filename)
-{//̱߳ͼ
+{//启动多线程保存图像
SaveImgThread *workTread = new SaveImgThread(this);
workTread->setPixmap(m_pixmap, m_path, filename);
connect(workTread, &SaveImgThread::finished, workTread, &QObject::deleteLater);
diff --git a/tpvs17/tpMain/lpmain_en.ts b/tpvs17/tpMain/lpmain_en.ts
new file mode 100644
index 0000000..de8eb06
--- /dev/null
+++ b/tpvs17/tpMain/lpmain_en.ts
@@ -0,0 +1,2453 @@
+
+
+
+
+ CChannelInfo
+
+
+ 开始读取json文件数据...
+
+
+
+
+ 数据读取完成...
+
+
+
+
+ CWheelNet
+
+
+ IP参数设置
+
+
+
+
+ ModelsModel
+
+
+
+ 型号
+
+
+
+
+ 数量
+
+
+
+
+ ProgressView
+
+
+ 取消
+
+
+
+
+ QAddChannelDlg
+
+
+ 新建通道
+
+
+
+
+ 发送结果:
+
+
+
+
+ 通道名称:
+
+
+
+
+ 备注:
+
+
+
+
+ 确认
+
+
+
+
+ 取消
+
+
+
+
+ 警告
+
+
+
+
+ 数据不能为空,请输入
+
+
+
+
+ QAddModel
+
+
+ 新建模板
+
+
+
+
+ 轮毂信息:
+
+
+
+
+ 轮毂型号
+
+
+
+
+
+
+ 0
+
+
+
+
+ 直径(mm)
+
+
+
+
+ 厚度(mm)
+
+
+
+
+ 旋转次数
+
+
+
+
+ 确定
+
+
+
+
+ 取消
+
+
+
+
+ 提醒
+
+
+
+
+ 信息不能为空!
+
+
+
+
+ QAddTimeDlg
+
+
+ 时间参数设置
+
+
+
+
+ 确认
+
+
+
+
+ 取消
+
+
+
+
+ 时间参数:
+
+
+
+
+ 起始时间
+
+
+
+
+ 班次名称:
+
+
+
+
+
+ hh:mm
+
+
+
+
+ 结束时间
+
+
+
+
+
+ 当天
+
+
+
+
+
+ 隔天
+
+
+
+
+ QCamSettingDlg
+
+
+ 相机配置
+
+
+
+
+ 序列号:
+
+
+
+
+ 显示名称:
+
+
+
+
+ 相机类型:
+
+
+
+
+ 路径:
+
+
+
+
+ 设置
+
+
+
+
+ 图像高度:
+
+
+
+
+ 图像宽度:
+
+
+
+
+ 图像格式:
+
+
+
+
+ 增益:
+
+
+
+
+ 曝光:
+
+
+
+
+ 应用
+
+
+
+
+ 内触发
+
+
+
+
+ 外触发
+
+
+
+
+ 软触发
+
+
+
+
+ 打开
+
+
+
+
+ 触发
+
+
+
+
+ QChannelManager
+
+
+ 通道信息管理
+
+
+
+
+ 所有通道数据
+
+
+
+
+ 发送结果:
+
+
+
+
+ 通道名称:
+
+
+
+
+ 备注:
+
+
+
+
+ 是否设为默认(NG流向的通道)
+
+
+
+
+ 确认修改
+
+
+
+
+ 退出
+
+
+
+
+ 编号
+
+
+
+
+ 通道名
+
+
+
+
+ 备注
+
+
+
+
+ 发送结果
+
+
+
+
+ 是否为默认
+
+
+
+
+ 默认
+
+
+
+
+ QChannelMgrDlg
+
+
+ QChannelMgrDlg
+
+
+
+
+ 所有型号及图像
+
+
+
+
+ 型号:
+
+
+
+
+ 通道:
+
+
+
+
+ 查找:
+
+
+
+
+
+ 隐藏
+
+
+
+
+ 修改
+
+
+
+
+ 0
+
+
+
+
+ 通道分配:
+
+
+
+
+ 删除通道
+
+
+
+
+ 增加通道
+
+
+
+
+ 刷新
+
+
+
+
+ 通道管理
+
+
+
+
+ QDebugDlg
+
+
+ QDebugDlg
+
+
+
+
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
+<html><head><meta name="qrichtext" content="1" /><style type="text/css">
+p, li { white-space: pre-wrap; }
+</style></head><body style=" font-family:'SimSun'; font-size:9pt; font-weight:400; font-style:normal;">
+<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">右侧是算法裁剪后的图像、匹配的型号、算法匹配的最小阈值、匹配模板对应的直径和厚度(新建模板时输入的)</p></body></html>
+
+
+
+
+ 000000
+
+
+
+
+ 0.0
+
+
+
+
+ 厚度mm:
+
+
+
+
+
+ 0
+
+
+
+
+ 直径mm:
+
+
+
+
+ 开始模拟检测
+
+
+
+
+ 采集一张
+
+
+
+
+
+ ��ʼģ������
+
+
+
+
+ ֹͣ
+
+
+
+
+ QDia2ThSetting
+
+
+ 直径标定
+
+
+
+
+ K:表示斜率,B:基准点,直径=高度*K+B
+
+
+
+
+ 确认修改
+
+
+
+
+ 退出
+
+
+
+
+ B:
+
+
+
+
+ K:
+
+
+
+
+ 提示
+
+
+
+
+ 修改完成,参数已生效!
+
+
+
+
+ 确定
+
+
+
+
+ QIPConfigDlg
+
+
+ QIPConfigDlg
+
+
+
+
+ 本机服务器IP地址设置
+
+
+
+
+
+ IP 地址(I):
+
+
+
+
+ 关闭服务
+
+
+
+
+ 开放端口:
+
+
+
+
+ 打开服务
+
+
+
+
+ 目标客户端IP地址设置
+
+
+
+
+ 源端口:
+
+
+
+
+ 确定
+
+
+
+
+ QModNamedlg
+
+
+ 模板名修改
+
+
+
+
+ 确认修改
+
+
+
+
+
+ 取消
+
+
+
+
+ 缩略图:
+
+
+
+
+ TextLabel
+
+
+
+
+ 旧型号名:
+
+
+
+
+ 新型号名:
+
+
+
+
+
+ 提示
+
+
+
+
+ 新型号名不能为空!
+
+
+
+
+ 型号库中已包含该型号,请重新设置型号名!
+
+
+
+
+ 确认
+
+
+
+
+ QModelMgrDlg
+
+
+ QModelMgrDlg
+
+
+
+
+ 轮毂信息:
+
+
+
+
+ 型号
+
+
+
+
+ 0%
+
+
+
+
+ 阈值调节
+
+
+
+
+ 严格
+
+
+
+
+ 旋转次数
+
+
+
+
+ 缩略图
+
+
+
+
+ 宽松
+
+
+
+
+ 厚度(mm)
+
+
+
+
+ 直径(mm)
+
+
+
+
+ 基本操作
+
+
+
+
+
+ 删除模板
+
+
+
+
+ 训练当前模板
+
+
+
+
+ 训练模板
+
+
+
+
+ 添加新的模板
+
+
+
+
+ 新建模板
+
+
+
+
+ 训练所有模板,消耗时间会较长
+
+
+
+
+ 训练全部
+
+
+
+
+ 确认修改,每次修改模板的参数后都要确认修改才有效
+
+
+
+
+ 修改确认
+
+
+
+
+ 修改型号名
+
+
+
+
+ 图片显示:
+
+
+
+
+ TextLabel
+
+
+
+
+
+ 添加已裁剪的轮毂图片
+
+
+
+
+ 追加
+
+
+
+
+
+ 删除所有模板
+
+
+
+
+ 模板型号查询
+
+
+
+
+ 查找:
+
+
+
+
+ 数量
+
+
+
+
+ modelID
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ��ʾ
+
+
+
+
+
+ ��ѡ��һ����Ҫ��ͼ�����ͺţ�
+
+
+
+
+ ����ͼ��
+
+
+
+
+ ͼ��������,���Ժ�.....
+
+
+
+
+ ����ʧ�ܣ��������Ӵ����ⱳ����ͼƬ��Ϊģ�壡����
+
+
+
+
+ ��������
+
+
+
+
+
+
+ ��ѡ��һ����Ҫ�ĵ��ͺţ�
+
+
+
+
+ �����
+
+
+
+
+ �IJ���
+
+
+
+
+ �ijɹ���
+
+
+
+
+
+ ��ѡ��һ����Ҫɾ�����ͺ�
+
+
+
+
+ ������ɾ��ģ�尴ť
+
+
+
+
+ �Ƿ�ɾ���ͺ�
+
+
+
+
+ ��Ʒģ��
+
+
+
+
+ ɾ����ģ��
+
+
+
+
+
+
+
+
+
+
+
+ ��
+
+
+
+
+
+
+
+
+ ���ͺ�
+
+
+
+
+ ����������ģ�尴ť
+
+
+
+
+ ��Ʒ��Ϣ����
+
+
+
+
+ ������һ���µ�ģ��
+
+
+
+
+ ��ѡ��һ����Ҫѵ�����ͺţ�
+
+
+
+
+
+ ѵ��ģ���߳�δ�˳������Ե�
+
+
+
+
+ ���������ͺ�ģ����������ѵ�����ڼ�ϵͳ�ļ���ܽ�������������ֱ��ģ��ѵ�����ɣ�ȫ������ѵ��ģ�彫��Ҫ�ܳ�ʱ�䣬�ڼ佫���ܽ��������������Ƿ�����ִ�У�
+
+
+
+
+ ȷ��ɾ����ͼ��?
+
+
+
+
+ ģ��ͼƬɾ��
+
+
+
+
+
+
+ ��ͼ��
+
+
+
+
+ ����
+
+
+
+
+ ����ɾ��ģ������������ģ�壬�Ƿ�������
+
+
+
+
+ �ٴ�ȷ�ϣ��Ƿ�ȫ��ɾ����
+
+
+
+
+ û��ģ��!!!
+
+
+
+
+ ȫ��ɾ������!!!
+
+
+
+
+ ͼ����������
+
+
+
+
+ ��,�뼰ʱ����ѵ������
+
+
+
+
+
+
+
+
+
+
+ ģ�����½���
+
+
+
+
+ ���ڳ�ʼ������ģ�� ����Ҫѵ��%1��ģ��,���Ժ�.....
+
+
+
+
+ ����ѵ��%1��ģ�� ������%2/%3,���Ժ�.....
+
+
+
+
+ %1��ģ����ȡ���� ������%2/%3,���Ժ�.....
+
+
+
+
+ %1��ģ��ѵ������ ������%2/%3,���Ժ�.....
+
+
+
+
+ ȫ��ģ���������ɣ�%1s
+
+
+
+
+ ��ȫ��ģ������������ѵ������%1��ģ��
+
+
+
+
+ ģ�����������Ժ�.....
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ģ��ѵ������
+
+
+
+
+
+ %1�ͺ�û��ͼƬ����ѵ����
+
+
+
+
+ %1��ģ�� ���ڻ�ȡ����ֵ,���Ժ�....
+
+
+
+
+ ѵ�����ɣ�%1s
+
+
+
+
+ ѵ����ģ��:%1
+
+
+
+
+ ȷ��
+
+
+
+
+ ȡ��
+
+
+
+
+ QMySplashScreen
+
+
+ 程序正在启动...
+
+
+
+
+ QObject
+
+
+ 虚拟相机触发
+
+
+
+
+ 硬件相机触发
+
+
+
+
+ 调试免登陆
+
+
+
+
+ 正常工作模式
+
+
+
+
+ 传感器触发
+
+
+
+
+ 软件触发
+
+
+
+
+ 下降沿触发
+
+
+
+
+ 上升沿触发
+
+
+
+
+ QSettingDlg
+
+
+ QSettingDlg
+
+
+
+
+ QShowImg
+
+
+ 检测背景图像显示
+
+
+
+
+ 退出
+
+
+
+
+ 我要更换背景
+
+
+
+
+ pic
+
+
+
+
+ 没有用于检测的背景图,请更换检测背景
+
+
+
+
+ QSystemSettingDlg
+
+
+ 相关设备配置
+
+
+
+
+
+ 检测图像设置
+
+
+
+
+
+ PLC相关设置
+
+
+
+
+
+ 报警灯测试
+
+
+
+
+ 高级功能
+
+
+
+
+ 属性
+
+
+
+
+ 值
+
+
+
+
+ 语言
+
+
+
+
+ 检测背景更换
+
+
+
+
+
+ 抠图后
+
+
+
+
+
+ 原图
+
+
+
+
+ 检测结果
+
+
+
+
+ 图像保存路径
+
+
+
+
+
+ 设置保存路径
+
+
+
+
+
+ 打开图像路径
+
+
+
+
+ 保存当前设置
+
+
+
+
+
+ 保存已匹配图
+
+
+
+
+
+ 保存无匹配图
+
+
+
+
+ 轮毂全去A通道
+
+
+
+
+ 查看检测背景
+
+
+
+
+ 保存参数
+
+
+
+
+
+ 保存设置
+
+
+
+
+ 传感器触发滤波(ms)
+
+
+
+
+ 相机触发延时(ms)
+
+
+
+
+ 相机触发脉宽(ms)
+
+
+
+
+ 光源熄灭延时时间(ms)
+
+
+
+
+ 传感器触发类型
+
+
+
+
+ 保持结果时长(ms)
+
+
+
+
+ 连接超时次数
+
+
+
+
+ 超时是否显示信息
+
+
+
+
+
+ 是否自动重启服务器
+
+
+
+
+ 是否保存超时日志
+
+
+
+
+ 发送并保存
+
+
+
+
+ 超时提醒n次后自动重启服务
+
+
+
+
+ 是否显示提示
+
+
+
+
+ 勾选后通信超时时会显示提醒信息
+
+
+
+
+ 勾选后通信超时次数达到后,系统将自动重启服务,PLC会自动重新连接
+
+
+
+
+ 保存信息到系统日志
+
+
+
+
+ 勾选后表示超时信息将自动保存到系统日志中,便于查询
+
+
+
+
+ 红灯
+
+
+
+
+ 绿灯
+
+
+
+
+ 黄灯
+
+
+
+
+ 蜂鸣
+
+
+
+
+ 红灯闪一下
+
+
+
+
+ 绿灯闪一下
+
+
+
+
+ 黄灯闪一下
+
+
+
+
+ 蜂鸣响一下
+
+
+
+
+ 开发者使用
+
+
+
+
+ 相机模式
+
+
+
+
+ 虚拟相机触发时间
+
+
+
+
+ 系统模式
+
+
+
+
+ 相机触发模式
+
+
+
+
+
+ 串口发送心跳包
+
+
+
+
+
+ 网络发送心跳包
+
+
+
+
+
+ 串口发送通道结果
+
+
+
+
+
+ 网络发送检测结果
+
+
+
+
+
+ 网络发送通道结果
+
+
+
+
+ 光栅使用标志
+
+
+
+
+ 保存高度厚度数据
+
+
+
+
+ 通道分配
+
+
+
+
+ 启动时是否检测
+
+
+
+
+ 显示厚度数据
+
+
+
+
+ 显示厚度采样数据
+
+
+
+
+ 使用光栅获取厚度
+
+
+
+
+ 保存数据用于测试
+
+
+
+
+ 是否使用通道分配
+
+
+
+
+ 是否启动就开始检测
+
+
+
+
+
+ 是否显示
+
+
+
+
+ 保存
+
+
+
+
+ 请选择您的背景图
+
+
+
+
+ 提示
+
+
+
+
+ 背景图更新完成,请重启本软件.
+
+
+
+
+ 确认
+
+
+
+
+ 打开文件夹
+
+
+
+
+ QSystemSettingUI
+
+
+ 系统设置
+
+
+
+
+ QTimeMgrDlg
+
+
+ 班次管理
+
+
+
+
+ 未选中
+
+
+
+
+ 添加时间
+
+
+
+
+ 删除时间
+
+
+
+
+ 修改时间
+
+
+
+
+
+
+
+
+
+
+ ����
+
+
+
+
+ ��ʼʱ��
+
+
+
+
+ ����ʱ��
+
+
+
+
+ ����
+
+
+
+
+
+ δѡ��
+
+
+
+
+
+
+ ��ʾ
+
+
+
+
+
+ δѡ�����Σ���ѡ�������ġ�
+
+
+
+
+
+
+ ȷ��
+
+
+
+
+ ��ȷ��Ҫɾ�� %1 ���Σ�
+
+
+
+
+ ȡ��
+
+
+
+
+ QWorkItemDlg
+
+
+ 工单信息设置
+
+
+
+
+
+ 警告
+
+
+
+
+ 名称不能为空.
+
+
+
+
+ 你输入的名称:%1 重复.
+
+
+
+
+ QWorkItemUI
+
+
+ 信息设置
+
+
+
+
+ 确定
+
+
+
+
+ 取消
+
+
+
+
+ 备注信息:
+
+
+
+
+ 名称:
+
+
+
+
+ QWorkMgrUI
+
+
+ QWorkMgrUI
+
+
+
+
+ 工作任务表
+
+
+
+
+ 添加任务单
+
+
+
+
+ 添加
+
+
+
+
+ 删除任务单
+
+
+
+
+ 删除
+
+
+
+
+ 修改任务单名称或备注信息
+
+
+
+
+ 修改
+
+
+
+
+ 使用任务单
+
+
+
+
+ 应用
+
+
+
+
+ 当前选择的任务表:
+
+
+
+
+
+ 数量
+
+
+
+
+ 添加型号到检测列表
+
+
+
+
+ <<<
+
+
+
+
+ 从检测列表移除所选型号
+
+
+
+
+ >>>
+
+
+
+
+ 缩略图
+
+
+
+
+ 只看已选
+
+
+
+
+ 只看未选
+
+
+
+
+ 显示全部
+
+
+
+
+ 查找:
+
+
+
+
+ 其他
+
+
+
+
+ 按照直径检测
+
+
+
+
+ 按照厚度检测
+
+
+
+
+ 手动发送模板库
+
+
+
+
+ 检测模板管理
+
+
+
+
+
+ 共 %1 个
+
+
+
+
+ 当前使用的工单为 %1
+
+
+
+
+ 以下型号为重复添加:
+%1已被忽略.
+
+
+
+
+ 提醒
+
+
+
+
+
+
+ 确定
+
+
+
+
+ 工单 %1 被设为应用
+
+
+
+
+ 发送模板库
+
+
+
+
+
+ 警告
+
+
+
+
+ %1任务单正在使用不能被删除,请先切换到其他任务单,再删除该任务单?
+
+
+
+
+
+ 取消
+
+
+
+
+ 是否要删除 %1 模型?
+
+
+
+
+ 序号
+
+
+
+
+ 内容
+
+
+
+
+ RoiImgViewer
+
+
+
+ line item is not created
+
+
+
+
+ line item is already created
+
+
+
+
+ rect item is already created
+
+
+
+
+ WheelCtrl
+
+
+ 加载通道模块 ....
+
+
+
+
+ 加载模板库 ....
+
+
+
+
+ 加载检测设置模块 ....
+
+
+
+
+ 加载数据库 ....
+
+
+
+
+ 加载班次管理模块 ....
+
+
+
+
+ 加载其他模块 ....
+
+
+
+
+ 创建子线程 ....
+
+
+
+
+ 加载光栅通讯模块 ....
+
+
+
+
+ 模块加载完成,启动线程 ....
+
+
+
+
+ 未登录
+
+
+
+
+ lpMainWin
+
+
+ 轮毂型号识别
+
+
+
+
+ image_zoom.ui
+
+
+
+
+ 状态信息
+
+
+
+
+ 开始检测
+
+
+
+
+ 检测结果
+
+
+
+
+ 无匹配(个)
+
+
+
+
+ 已检测(个)
+
+
+
+
+ 匹配值
+
+
+
+
+ 直径(mm)
+
+
+
+
+ 时间(s)
+
+
+
+
+ 通道
+
+
+
+
+
+
+
+
+
+
+ 0
+
+
+
+
+ ---------
+
+
+
+
+ None
+
+
+
+
+ 检测状态
+
+
+
+
+ 厚度(mm)
+
+
+
+
+ 统计结果
+
+
+
+
+ modelID_detect
+
+
+
+
+ count
+
+
+
+
+ 交换班清零
+
+
+
+
+ 型号数量
+
+
+
+
+ 模板管理
+
+
+
+
+ 数据查询
+
+
+
+
+ 模板勾选
+
+
+
+
+ 辅助工具
+
+
+
+
+ 班次设置
+
+
+
+
+ 光栅标定
+
+
+
+
+ IP设置
+
+
+
+
+ 关于
+
+
+
+
+ 登录
+
+
+
+
+ 用户管理
+
+
+
+
+ 系统设置
+
+
+
+
+ 相机配置
+
+
+
+
+ ���ر�Ҫģ��.....
+
+
+
+
+
+
+ ����
+
+
+
+
+ ϵͳʱ��
+
+
+
+
+ ������Ϣ
+
+
+
+
+ ����״̬
+
+
+
+
+ �û���
+
+
+
+
+ ��ʷ
+
+
+
+
+ ϵͳ��ʼ������...
+
+
+
+
+ ��ʾʶ������
+
+
+
+
+ ����ͼ���ͱ���ͼ��һ�������������ⱳ����
+
+
+
+
+ ����!!!��������%1��δʶ���ͺ�
+
+
+
+
+ ,δ������������ɵ�
+
+
+
+
+ ����ͼ��,���ڼ�����...
+
+
+
+
+ ע ��
+
+
+
+
+ �� ¼
+
+
+
+
+ �����
+
+
+
+
+ ���Թ���
+
+
+
+
+ �����
+
+
+
+
+ ϵͳ��������
+
+
+
+
+ ��������
+
+
+
+
+ ֹͣ����
+
+
+
+
+ �����˿�ʼ���ⰴť������ܿ���
+
+
+
+
+ ��ʼ����
+
+
+
+
+ ������ֹͣ���ⰴť������ܹر�
+
+
+
+
+ ��ʾ
+
+
+
+
+ ��������������
+
+
+
+
+ ȷ��
+
+
+
+
+ ȡ��
+
+
+
+
+ ���������㰴ť������ȫ������
+
+
+
+
+ ϵͳʱ�䣺
+
+
+
+
+ ����״̬:
+
+
+
+
+ ������...
+
+
+
+
+ ���...
+
+
+
+
+ ������Ϣ��
+
+
+
+
+ ��ʱ����δ���ð���
+
+
+
+
+ ��ǰ�û���
+
+
+
+
+ ģ���ⷢ������
+
+
+
+
+
+ ���ڼ����ͺ���
+
+
+
+
+ ������
+
+
+
+
+ �ѶϿ�
+
+
+
+
+ PLC���յ��������ò�����
+
+
+
+
+ �Ѵ���
+
+
+
+
+ �ѹر�
+
+
+
+
+ �����ͺ�ʶ��ϵͳ
+
+
+
+
+ �������ɺ��������Ƽ����������������ͺ�ʶ���ͷ��࣬�ɴ�����ˮ������ϵͳʹ��
+
+
+
+
+ ����Ҫ��һ���˽��ò�Ʒ��������Ϣ�����������ǵ���վ
+
+
+
+
+ �����汾
+
+
+
+
+ �㷨�汾
+
+
+
+
+ ��������ʱ��
+
+
+
+
+ ��Ȩ (c) �� ���������Ƽ�����˾ ����
+
+
+
+
+ �ر�
+
+
+
+
+ (Ĭ��)
+
+
+
+
+ Ĭ��ͨ�� ֵ1000
+
+
+
+
diff --git a/tpvs17/tpMain/tpMain.vcxproj b/tpvs17/tpMain/tpMain.vcxproj
index 6488ea4..4b986d5 100644
--- a/tpvs17/tpMain/tpMain.vcxproj
+++ b/tpvs17/tpMain/tpMain.vcxproj
@@ -415,6 +415,7 @@
+
@@ -1287,6 +1288,9 @@
"$(QTDIR)\bin\uic.exe" -o ".\GeneratedFiles\ui_%(Filename).h" "%(FullPath)"
+
+
+
{A229CF5C-81EF-4909-AB6E-49C746F1ED4C}
Qt4VSv1.0
diff --git a/tpvs17/tpMain/tpMain.vcxproj.filters b/tpvs17/tpMain/tpMain.vcxproj.filters
index 211a99f..b6e5303 100644
--- a/tpvs17/tpMain/tpMain.vcxproj.filters
+++ b/tpvs17/tpMain/tpMain.vcxproj.filters
@@ -87,6 +87,11 @@
{2ebbabc3-5d96-4349-a29c-19d33c06f9f2}
+
+ {639EADAA-A684-42e4-A9AD-28FC9BCB8F7C}
+ ts
+ false
+
@@ -688,6 +693,9 @@
Generated Files
+
+ Header Files
+
@@ -1065,4 +1073,9 @@
+
+
+ Translation Files
+
+
\ No newline at end of file
diff --git a/tpvs17/tpMain/tpmain_en.qm b/tpvs17/tpMain/tpmain_en.qm
deleted file mode 100644
index 063eea3..0000000
Binary files a/tpvs17/tpMain/tpmain_en.qm and /dev/null differ
diff --git a/tpvs17/tpMain/tpmain_en.ts b/tpvs17/tpMain/tpmain_en.ts
deleted file mode 100644
index 1a40bff..0000000
--- a/tpvs17/tpMain/tpmain_en.ts
+++ /dev/null
@@ -1,3349 +0,0 @@
-
-
-
-
- CChannelInfo
-
-
- 开始读取json文件数据...
- Start reading the json file data...
-
-
-
- 数据读取完成...
- Data read complete...
-
-
-
- CHannelUI
-
-
- 通道信息
- Channel Info
-
-
-
- 提示
- Info
-
-
-
- 你确定要删除通道?
- Are you sure you want to delete the channel?
-
-
-
- 确认
- OK
-
-
-
- 取消
- Cancel
-
-
-
- 未分配
- undistributed
-
-
-
- 共 %1 个记录
- %1 records
-
-
-
- 修改成功
- modify successfully
-
-
-
- CWheelNet
-
-
- IP参数设置
- IP config
- IP config
-
-
-
- ConnectModeUi
-
-
- 无
- None
-
-
-
-
-
- 编辑
- edit
-
-
-
- 取消
- Cancel
-
-
-
- 保存完成
- Saved Finish
-
-
-
- 发送模板库
- Send template library
-
-
-
- 共
-
-
-
-
- 个记录
- records
-
-
-
- DebugUI
-
-
- 调试工具
- debugging tool
-
-
-
- 图像
- image
-
-
-
- 0.0
- 0.0
-
-
-
-
- 0
- 0
-
-
-
- 直径mm:
- diameter mm
-
-
-
- 000000
- 00000
-
-
-
- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
-<html><head><meta name="qrichtext" content="1" /><style type="text/css">
-p, li { white-space: pre-wrap; }
-</style></head><body style=" font-family:'SimSun'; font-size:9pt; font-weight:400; font-style:normal;">
-<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">右侧是算法裁剪后的图像、匹配的型号、算法匹配的最小阈值、匹配模板对应的直径和厚度(新建模板时输入的)</p></body></html>
- < !DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
-<html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li{空白:预换行;}
-< /风格> < /头> <身体风格= "字体类型:“SimSun”;字体大小:9分;粗细:400;字体样式:正常;" >
-< p风格= " margin-top:12 px;margin-bottom:12 px;margin-left:0 px;margin-right: 0 px;-qt-block-indent:0;indent:0 px;" >右侧是算法裁剪后的图像,匹配的型号,算法匹配的最小阈值,匹配模板对应的直径和厚度(新建模板时输入的)< / p > < /身体> < / html >
-
-
-
- 厚度mm:
- height mm
-
-
-
- 开始模拟检测
- SoftDetect
-
-
-
- 采集一张
- Get one
-
-
-
- 触发一张
- Triger One
-
-
-
- 设置
- Setting
- Setting
-
-
-
- DevelopUi
-
-
-
- 相关设备配置
-
-
-
-
-
- 检测图像设置
-
-
-
-
-
- PLC相关设置
-
-
-
-
-
- 报警灯测试
- Alarm lamp test
-
-
-
-
- 开发者使用
- Developer
-
-
-
- 检测状态
- Detection status
-
-
-
- 打开文件夹
- open folder
-
-
-
- 停止虚拟检测
- Stop detection
-
-
-
- 开始虚拟检测
- Start vdetection
-
-
-
- 属性
- property
-
-
-
- 值
- Value
- Value
-
-
-
- 打开配置页面
-
-
-
-
- 语言
-
-
-
-
- 检测背景更换
-
-
-
-
-
- 抠图后
-
-
-
-
-
- 原图
-
-
-
-
- 检测结果
-
-
-
-
- 图像保存路径
-
-
-
-
-
- 设置保存路径
-
-
-
-
-
- 打开图像路径
-
-
-
-
- 保存当前设置
-
-
-
-
-
- 保存已匹配图
-
-
-
-
-
- 保存无匹配图
-
-
-
-
- 轮毂全去A通道
-
-
-
-
- 查看检测背景
-
-
-
-
- 保存参数
-
-
-
-
-
- 保存设置
-
-
-
-
- 传感器触发滤波(ms)
-
-
-
-
- 相机触发延时(ms)
-
-
-
-
- 相机触发脉宽(ms)
-
-
-
-
- 光源熄灭延时时间(ms)
-
-
-
-
- 传感器触发类型
-
-
-
-
- 保持结果时长(ms)
-
-
-
-
- 连接超时次数
-
-
-
-
- 超时是否显示信息
-
-
-
-
-
- 是否自动重启服务器
-
-
-
-
- 是否保存超时日志
-
-
-
-
- 发送并保存
-
-
-
-
- 超时提醒n次后自动重启服务
-
-
-
-
- 是否显示提示
-
-
-
-
- 勾选后通信超时时会显示提醒信息
-
-
-
-
- 勾选后通信超时次数达到后,系统将自动重启服务,PLC会自动重新连接
-
-
-
-
- 保存信息到系统日志
-
-
-
-
- 勾选后表示超时信息将自动保存到系统日志中,便于查询
-
-
-
-
- 红灯
-
-
-
-
- 绿灯
-
-
-
-
- 黄灯
-
-
-
-
- 蜂鸣
-
-
-
-
- 红灯闪一下
-
-
-
-
- 绿灯闪一下
-
-
-
-
- 黄灯闪一下
-
-
-
-
- 蜂鸣响一下
-
-
-
-
- 相机模式
-
-
-
-
- 虚拟相机触发时间
-
-
-
-
- 系统模式
-
-
-
-
- 相机触发模式
-
-
-
-
-
- 串口发送心跳包
-
-
-
-
-
- 网络发送心跳包
-
-
-
-
-
- 串口发送通道结果
-
-
-
-
-
- 网络发送检测结果
-
-
-
-
-
- 网络发送通道结果
-
-
-
-
- 光栅使用标志
-
-
-
-
- 保存高度厚度数据
-
-
-
-
- 通道分配
-
-
-
-
- 启动时是否检测
-
-
-
-
- 显示厚度数据
-
-
-
-
- 显示厚度采样数据
-
-
-
-
- 使用光栅获取厚度
-
-
-
-
- 保存数据用于测试
-
-
-
-
- 是否使用通道分配
-
-
-
-
- 是否启动就开始检测
-
-
-
-
-
- 是否显示
-
-
-
-
- 保存
- Save
- Save
-
-
-
- 保存完成
- Saved Finish
-
-
-
- 数据已发送并保存
-
-
-
-
- 请选择您的背景图
-
-
-
-
- 提示
- Info
- Info
-
-
-
- 背景图更新完成,请重启本软件.
- Background image updated, please restart this software.
-
-
-
- 确认
- OK
-
-
-
- MainUi
-
-
- 关于
- About
- About
-
-
-
-
- 轮毂型号识别系统
- Hub model recognition system
-
-
-
- 提示
- Info
-
-
-
- 将清空所有数据
- All data will be cleared
-
-
-
- 确定
- Sure
-
-
-
- 取消
- Cancel
-
-
-
- 按下了清零按钮,数据全部清零
- Press the reset button, the data is reset
-
-
-
- 停止检测
- Stop
- Stop
-
-
-
- 按下了开始检测按钮,检测功能开启
- Press the start detection button, and the detection function is on
-
-
-
- 开始检测
- Start
- Start
-
-
-
- 按下了停止检测按钮,检测功能关闭
- Press the stop detection button, and the detection function is off
-
-
-
- 本软件由杭州利珀科技开发,用于轮毂型号识别和分类,可搭配流水线运输系统使用
- The software developed by hangzhou leaper technology, for the hub model identification and classification, can be used with pipeline transport system
-
-
-
- 若需要进一步了解该产品的相关信息,请访问我们的网站
- For more information about this product, please visit our website
-
-
-
- 软件版本
- software version
-
-
-
- 算法版本
- algorithm Version
-
-
-
- 最后更新时间
- updatetime
-
-
-
- 版权 (c) 属 杭州利珀科技有限公司 所有
- Copyright (c) is owned by hangzhou leaper technology co., LTD
-
-
-
- 关闭
- Close
- Close
-
-
-
- MainWindow
-
-
- 轮毂型号识别系统
- Hub model recognition system
-
-
-
- image_zoom.ui
-
-
-
-
- 状态信息
-
-
-
-
- 开始检测
- Start
- Start
-
-
-
- 检测结果
-
-
-
-
- 无匹配(个)
-
-
-
-
- 已检测(个)
-
-
-
-
- 匹配值
-
-
-
-
- 直径(mm)
- Diameter (mm):
-
-
-
- 时间(s)
- times(s)
- times(s)
-
-
-
- 通道
-
-
-
-
-
-
-
-
-
-
- 0
- 0
-
-
-
- ---------
-
-
-
-
- None
-
-
-
-
-
- TextLabel
-
-
-
-
- 厚度(mm)
- Thickness (mm):
-
-
-
- 统计结果
-
-
-
-
- modelID_detect
-
-
-
-
- count
-
-
-
-
- 交换班清零
-
-
-
-
- 工具栏
-
-
-
-
- font: 11pt "Consolas";
-
-
-
-
-
- 模板管理
-
-
-
-
- QWfModelManage
-
-
-
-
-
- 数据查询
-
-
-
-
- qformcheckdlg
-
-
-
-
-
- 检测模板勾选
-
-
-
-
- 根据需要检测的模板进行勾选
-
-
-
-
- ModelUI
-
-
-
-
- 辅助工具
- Tools
- Tools
-
-
-
- 开发者专用
-
-
-
-
- DebugUI
-
-
-
-
-
- 班次设置
-
-
-
-
- TimeMgr
-
-
-
-
-
- 光栅标定
-
-
-
-
- qrasterdlg
-
-
-
-
- IP设置
- IP Config
- IP Config
-
-
-
- 本机软件IPServer设置
-
-
-
-
- qipconfigdlg
-
-
-
-
- 关于
- About
- About
-
-
-
- 关于本软件
- About this program
- About this program
-
-
-
- 登录
- Login
- Login
-
-
-
- 用户管理
- UserManager
- UserManager
-
-
-
- ModelMgrUi
-
-
- 按下了添加模板按钮
-
-
-
-
- 产品信息设置
-
-
-
-
- 添加了一个新的模型
-
-
-
-
-
-
-
-
-
-
-
- 共
- with
-
-
-
-
-
-
-
- 个型号
- models
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 提示
- Info
-
-
-
-
- 请选择一个您要追加图像的型号!
-
-
-
-
- 加载图像
-
-
-
-
- 图像加载中,请稍后.....
- Image loading, please wait...
-
-
-
- 添加失败,不能添加带检测背景的图片作为模板!!!
- Failed to add image with detection background as template!!!
-
-
-
- 加载完成
- loading completed
-
-
-
-
-
- 请选择一个您要修改的型号!
-
-
-
-
- 修改了模板
-
-
-
-
- 的参数
- parameter
-
-
-
- 修改成功!
-
-
-
-
-
- 请选择一个您要删除的型号
-
-
-
-
- 按下了删除模板按钮
-
-
-
-
- 是否删除型号
-
-
-
-
- 产品模板
-
-
-
-
- 删除了模板
-
-
-
-
- 确定删除该图像?
-
-
-
-
- 模板图片删除
-
-
-
-
-
-
- 个图像
-
-
-
-
- 图像数量少于
-
-
-
-
- 个,请及时补充训练样本
-
-
-
-
- 该模板训练成功,可以正常使用
-
-
-
-
- 该模板没有训练,并且没有图像
-
-
-
-
- 该模板训练失败,请检查模板图片中是否有其他类型的图像或该模板是否被重复添加
-
-
-
-
- 请选择一个您要训练的型号!
-
-
-
-
-
- 训练模板线程未退出,请稍等
-
-
-
-
- 将对所有型号模板进行重新训练,期间系统的检测功能将不能正常运行直到模板训练完成,全部重新训练模板将需要很长时间,期间将不能进行其他工作,是否继续执行?
-
-
-
-
- 正在检测,请停止检测后再操作!!!
-
-
-
-
-
-
-
-
-
-
- 模板更新进度
-
-
-
-
- 正在初始化所有模板 共需要训练%1个模板,请稍后.....
-
-
-
-
- 正在训练%1的模板 已完成%2/%3,请稍后.....
- The template training %1 is complete %2/%3, please wait...
-
-
-
- %1的模板获取特征 已完成%2/%3,请稍后.....
- Template capture feature for %1 is complete for %2/%3, please wait...
-
-
-
- %1的模板训练完成 已完成%2/%3,请稍后.....
- Template training for %1 completed %2/%3, please wait...
-
-
-
- 全部模板更新完成!%1s
- All templates updated!The %1 s
-
-
-
- 对全部模板进行了重新训练,共%1个模板
-
-
-
-
- 警告
- Waring
-
-
-
- 即将删除模板库里的所有模板,是否继续?
-
-
-
-
- 再次确认,是否全部删除?
-
-
-
-
- 没有模板!!!
-
-
-
-
- 全部删除完成!!!
-
-
-
-
- 模板正在准备请稍后.....
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 模板训练进度
-
-
-
-
-
- %1型号没有图片不能训练!
-
-
-
-
- %1的模板 正在获取特征值,请稍后....
-
-
-
-
- 训练完成!%1s
-
-
-
-
- 训练了模板:%1
-
-
-
-
- 确认
- ok
-
-
-
- 取消
- Cancel
-
-
-
- ModelUI
-
- 模板型号库
- Template library
-
-
- 按照厚度检测
- Thickness Detect
-
-
- 全不选
- Select None
-
-
- 全选
- select all
-
-
- 反选
- Invert Select
-
-
- 编辑
- edit
-
-
- 查找:
- Search:
-
-
-
- ModelsModel
-
-
-
- 型号
- Model
- Model
-
-
-
- 数量
- Num
- Num
-
-
-
- ProgressView
-
-
- 取消
- Cancel
- Cancel
-
-
-
- QAddChannelDlg
-
-
- 新建通道
- Add New Channel
-
-
-
- 发送结果:
- Result:
-
-
-
- 通道名称:
- Channel Name:
-
-
-
- 备注:
- About:
-
-
-
- 确认
- Sure
-
-
-
- 取消
- Cancel
-
-
-
- 警告
- Waring
-
-
-
- 数据不能为空,请输入
- Data cannot be empty. Please Check Input
-
-
-
- QAddModel
-
-
- 新建模板
- Add New Model
-
-
-
- 轮毂信息:
- Hub information:
-
-
-
- 轮毂型号
- hub type:
-
-
-
-
-
- 0
- 0
-
-
-
- 直径(mm)
- Diameter (mm):
-
-
-
- 厚度(mm)
- Thickness (mm):
-
-
-
- 旋转次数
- rotate Num:
-
-
-
- 确定
- Sure
-
-
-
- 取消
- Cancel
-
-
-
- 提醒
- Warning
-
-
-
- 信息不能为空!
- The message cannot be empty!
-
-
-
- QAddTimeDlg
-
-
- 时间参数设置
- Time parameter setting
-
-
-
- 确认
- Sure
-
-
-
- 取消
- Cancel
-
-
-
- 时间参数:
- time parameter
-
-
-
- 班次名称:
- Flight Name:
-
-
-
- 起始时间
- starting time:
-
-
-
- 结束时间
- ending time:
-
-
-
- QChannelManager
-
-
- 通道信息管理
-
-
-
-
- 所有通道数据
-
-
-
-
- 发送结果:
- Result:
-
-
-
- 通道名称:
- Channel Name:
-
-
-
- 备注:
- About:
-
-
-
- 是否设为默认(NG流向的通道)
-
-
-
-
- 确认修改
-
-
-
-
- 退出
- exit
-
-
-
- 编号
-
-
-
-
- 通道名
-
-
-
-
- 备注
-
-
-
-
- 发送结果
-
-
-
-
- 是否为默认
-
-
-
-
- 默认
-
-
-
-
- QDia2ThSetting
-
-
- 直径标定
-
-
-
-
- K:表示斜率,B:基准点,直径=高度*K+B
-
-
-
-
- 确认修改
-
-
-
-
- 退出
- exit
-
-
-
- B:
-
-
-
-
- K:
-
-
-
-
- 提示
- Info
-
-
-
- 修改完成,参数已生效!
-
-
-
-
- 确定
- Sure
-
-
-
- QFormCheckDlg
-
-
- 数据查询
-
-
-
-
-
- 生产数据查询
-
-
-
-
- 生产数据统计
-
-
-
-
- 日志记录
-
-
-
-
- 设置
- Setting
-
-
-
-
- 显示数据数(条)
-
-
-
-
-
- 50
- 00000 {50?}
-
-
-
-
- 上一页
-
-
-
-
-
-
-
- TextLabel
-
-
-
-
-
- 下一页
-
-
-
-
- 标题
-
-
-
-
- 双击单条记录显示图片
-
-
-
-
-
- 开始日期时间:
-
-
-
-
-
-
-
-
-
- 2017-11-11 11:11:11
- 00000 {2017-11-11 11:11:11?}
-
-
-
-
- 设置开始时间
-
-
-
-
-
-
- 结束日期时间:
-
-
-
-
-
-
- 设置结束时间
-
-
-
-
- 筛选型号
-
-
-
-
-
- 所有
-
-
-
-
-
- 生产班次
-
-
-
-
- 全天
-
-
-
-
- 查询数量
-
-
-
-
- 0
- 0
-
-
-
-
-
- 查询
-
-
-
-
-
-
- 导出CSV
-
-
-
-
- 数据类型查询
-
-
-
-
- 起始日期时间:
-
-
-
-
- 设置起始时间
-
-
-
-
- 报警记录查询
-
-
-
-
- 实时检测数据记录保存上限设置:
-
-
-
-
- 数据保存上限时间:
-
-
-
-
- 10年
- 00000 {10年?}
-
-
-
- 6年
- 00000 {6年?}
-
-
-
- 5年
- 00000 {5年?}
-
-
-
- 4年
- 00000 {4年?}
-
-
-
- 3年
- 00000 {3年?}
-
-
-
- 2年
- 00000 {2年?}
-
-
-
- 1年
- 00000 {1年?}
-
-
-
- 9个月
-
-
-
-
- 6个月
-
-
-
-
- 3个月
-
-
-
-
- 1个月
-
-
-
-
- 15天
- 00000 {15天?}
-
-
-
- 1天
- 00000 {1天?}
-
-
-
- 报警数据数量上限(条):
-
-
-
-
- 确定并保存
-
-
-
-
- 我要修改
-
-
-
-
- 测试工具
-
-
-
-
- 手动删除旧数据
-
-
-
-
- 清空所有数据
-
-
-
-
- QIPConfigDlg
-
-
- QIPConfigDlg
-
-
-
-
- 本机服务器IP地址设置
- Local server IP address Settings
-
-
-
-
- IP 地址(I):
- IP Address
-
-
-
- 关闭服务
- Close Server
-
-
-
- 开放端口:
- Port
-
-
-
- 打开服务
- Open Server
-
-
-
- 目标客户端IP地址设置
- Client IP address Settings
-
-
-
- 源端口:
-
-
-
-
- 确定
- Sure
-
-
-
- QMainFilter
-
-
-
- Save received file
-
-
-
-
-
- All Files (*)
-
-
-
-
-
- Unable to open file
-
-
-
-
- QMainFilter_WheelDetect
-
-
- 提示
- Info
- Info
-
-
-
- 输入的信息不能为空!!!
-
-
-
-
- QMainFilter_WheelDetect_Child
-
-
- 加载必要模块.....
- Load necessary modules...
-
-
-
- 初始化UI.....
- To initialize the UI...
-
-
-
- 绑定信号槽信息...
- Bind signal slot information...
-
-
-
- 创建线程...
- Create thread...
-
-
-
- 系统初始化完成...
- System initialization complete...
-
-
-
- 程序退出,所有数据清零,服务器关闭,断开所有连接.
- Program exit, all data reset, server close, disconnect all connections.
-
-
-
- 已打开
- Opened
-
-
-
- 已关闭
- closed
-
-
-
- 已连接
-
-
-
-
- 已断开
-
-
-
-
- 按下了模板管理按钮
-
-
-
-
- 按下了光栅标定按钮
-
-
-
-
- 按下了IP设置按钮
-
-
-
-
- 按下了发送模板库按钮
-
-
-
-
- 按下了设置生效按钮
-
-
-
-
- 停止虚拟检测
- Stop detection
-
-
-
- 开始虚拟检测
- Start vdetection
-
-
-
- 显示识别结果
-
-
-
-
- 相机图像和背景图不一样,请更换检测背景!
-
-
-
-
- 警告!!!连续出现%1个未识别型号
-
-
-
-
- ,未开启检测功能造成的
-
-
-
-
- 获得图像,正在计算中...
-
-
-
-
- 模板库发送完成
-
-
-
-
- 检测状态
- Detection status
-
-
-
-
- 正在检测型号数
-
-
-
-
-
- 登 录
-
-
-
-
- :已注销
-
-
-
-
- :已登录
-
-
-
-
-
-
- 提示
- Info
-
-
-
- 你确定要注销
-
-
-
-
-
-
- 确认
- Sure
-
-
-
- 取消
- Cancel
-
-
-
-
- 该功能未启用.
-
-
-
-
-
- (默认)
-
-
-
-
-
- 默认通道 值1000
-
-
-
-
- 心跳包接收超时
-
-
-
-
- 准备重启TCP服务
-
-
-
-
- 心跳包超时
-
-
-
-
- 次
-
-
-
-
- PLC已收到相关设置参数!
-
-
-
-
- 注 销
- LogOut
-
-
-
- QModNamedlg
-
-
- 模板名修改
-
-
-
-
- 确认修改
-
-
-
-
-
- 取消
- Cancel
-
-
-
- 缩略图:
-
-
-
-
- TextLabel
-
-
-
-
- 旧型号名:
-
-
-
-
- 新型号名:
-
-
-
-
-
- 提示
- Info
-
-
-
- 新型号名不能为空!
-
-
-
-
- 型号库中已包含该型号,请重新设置型号名!
-
-
-
-
- 确认
- Sure
-
-
-
- QMySplashScreen
-
-
- 程序正在启动...
- The program is starting...
-
-
-
- QObject
-
-
- 本软件是基于机器学习的基础开发而来,用户可通过本软件采集汽轮的图像进行轮毂型号训练,训练后的模型用于型号识别。
-
-
-
-
- 汽车轮毂识别算法 更新时间:20190117 16:04:00
-
-
-
-
- 摩托车轮毂识别算法 更新时间:20190117 18:04:00
-
-
-
-
- QShowImg
-
-
- 检测背景图像显示
- Detection background image display
-
-
-
- 退出
- exit
-
-
-
- 我要更换背景
- change background
-
-
-
- pic
-
-
-
-
- 没有用于检测的背景图,请更换检测背景
- There is no background image for testing. Please change the testing background
-
-
-
- QWfModelManage
-
-
-
- 模板管理
-
-
-
-
- 模板型号查询
-
-
-
-
-
- 查找:
- Search:
-
-
-
- 数量
- Num
-
-
-
- modelID
-
-
-
-
- 轮毂信息:
- Hub information:
-
-
-
- 型号
- Model:
-
-
-
- 0%
- 00000 {0%?}
-
-
-
- 阈值调节
-
-
-
-
- 严格
-
-
-
-
- 旋转次数
- rotate Num:
-
-
-
- 缩略图
-
-
-
-
- 宽松
-
-
-
-
- 厚度(mm)
- Thickness (mm):
-
-
-
- 直径(mm)
- Diameter (mm):
-
-
-
- 图片显示:
-
-
-
-
-
- 添加已裁剪的轮毂图片
-
-
-
-
- 追加
-
-
-
-
-
- 删除所有模板
-
-
-
-
- 基本操作
-
-
-
-
-
- 删除模板
-
-
-
-
- 添加新的模板
-
-
-
-
- 新建模板
- Add New Model
-
-
-
- 训练当前模板
-
-
-
-
- 训练模板
-
-
-
-
- 训练所有模板,消耗时间会较长
-
-
-
-
- 训练全部
-
-
-
-
- 确认修改,每次修改模板的参数后都要确认修改才有效
-
-
-
-
- 修改确认
-
-
-
-
- 修改型号名
-
-
-
-
- 通道分配管理
-
-
-
-
- 所有型号及图像
-
-
-
-
- 型号:
-
-
-
-
- 通道:
-
-
-
-
-
- 隐藏
-
-
-
-
- 修改
-
-
-
-
- 0
- 0
-
-
-
- 通道分配:
-
-
-
-
- 删除通道
-
-
-
-
- 增加通道
-
-
-
-
- 刷新
-
-
-
-
- 通道管理
-
-
-
-
- QWorkItemDlg
-
-
- 工单信息设置
-
-
-
-
-
- 警告
- Waring
-
-
-
- 名称不能为空.
-
-
-
-
- 你输入的名称:%1 重复.
-
-
-
-
- QWorkItemUI
-
-
- 信息设置
-
-
-
-
- 确定
- Sure
-
-
-
- 取消
- Cancel
-
-
-
- 备注信息:
-
-
-
-
- 名称:
-
-
-
-
- QWorkMgrUI
-
-
- QWorkMgrUI
-
-
-
-
- 工作任务表
-
-
-
-
- 添加任务单
-
-
-
-
- 添加
-
-
-
-
- 删除任务单
-
-
-
-
- 删除
-
-
-
-
- 修改任务单名称或备注信息
-
-
-
-
- 修改
-
-
-
-
- 使用任务单
-
-
-
-
- 应用
-
-
-
-
- 当前选择的任务表:
-
-
-
-
-
- 数量
- Num
-
-
-
- 添加型号到检测列表
-
-
-
-
- <<<
-
-
-
-
- 从检测列表移除所选型号
-
-
-
-
- >>>
-
-
-
-
- 缩略图
-
-
-
-
- 只看已选
-
-
-
-
- 只看未选
-
-
-
-
- 显示全部
-
-
-
-
- 查找:
- Search:
-
-
-
- 其他
-
-
-
-
- 按照直径检测
-
-
-
-
- 按照厚度检测
- Thickness Detect
-
-
-
- 手动发送模板库
-
-
-
-
- 检测模板管理
-
-
-
-
-
- 共 %1 个
-
-
-
-
- 当前使用的工单为 %1
-
-
-
-
- 以下型号为重复添加:
-%1已被忽略.
-
-
-
-
- 提醒
- Warning
-
-
-
-
-
- 确定
- Sure
-
-
-
- 工单 %1 被设为应用
-
-
-
-
- 发送模板库
- Send template library
-
-
-
-
- 警告
- Waring
-
-
-
- %1任务单正在使用不能被删除,请先切换到其他任务单,再删除该任务单?
-
-
-
-
-
- 取消
- Cancel
-
-
-
- 是否要删除 %1 模型?
-
-
-
-
- 序号
-
-
-
-
- 内容
-
-
-
-
- Raster_Form
-
-
- Form
-
-
-
-
- 设备设置和测试
-
-
-
-
- 串口设备设置
-
-
-
-
- 串口名:
-
-
-
-
- 查找设备
-
-
-
-
- <html><head/><body><p>串口设备设置,在需要使用光栅采集数据的情况下使用,并且需要设置正确的设备端口号才能正常与光栅设备通讯,否则通讯会失败。</p></body></html>
-
-
-
-
- 波特率:
-
-
-
-
- 串口打开状态
-
-
-
-
- 启动光栅采集数据功能
-
-
-
-
-
-
- 保存设置
-
-
-
-
- 打开串口
-
-
-
-
- 关闭串口
-
-
-
-
- 光栅数据采样
-
-
-
-
- 光栅未遮挡数:
-
-
-
-
- 系统状态
-
-
-
-
- 光栅总数:
-
-
-
-
- 63
- 00000 {63?}
-
-
-
- 被遮挡的起始位置:
-
-
-
-
- 光栅遮挡数:
-
-
-
-
- 轮毂数据标定
-
-
-
-
- 轮毂高度标定
-
-
-
-
- 中值滤波比例:
-
-
-
-
- 光栅最小数值:
-
-
-
-
-
-
- mm
-
-
-
-
- 高度测量标定
-
-
-
-
- 基准高度:
-
-
-
-
- 光栅倍率:
-
-
-
-
- 采样容器大小:
-
-
-
-
- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
-<html><head><meta name="qrichtext" content="1" /><style type="text/css">
-p, li { white-space: pre-wrap; }
-</style></head><body style=" font-family:'Consolas'; font-size:11pt; font-weight:400; font-style:normal;">
-<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">高度测量,是基于光栅数据能正常采集的情况下进行的。</p>
-<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">轮毂高度计算公式:</p>
-<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">高度=光栅遮挡数*光栅倍率+基准高度</p>
-<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">光栅遮挡数:是有物品挡住光栅时,光栅采样返回的数据</p>
-<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">光栅倍率:是光栅自身的精度,每一格光栅所代表的高度是多少</p>
-<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">基准高度:是在光栅无法照射的地方的高度大小,需要用直尺直接测量光栅底部与流水线的最低平面的距离</p></body></html>
-
-
-
-
- 轮毂直径标定曲率:
-
-
-
-
- B:
-
-
-
-
- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
-<html><head><meta name="qrichtext" content="1" /><style type="text/css">
-p, li { white-space: pre-wrap; }
-</style></head><body style=" font-family:'Consolas'; font-size:11pt; font-weight:400; font-style:normal;">
-<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">直径标定曲率:是用于校准算法计算出的轮毂直径与实际轮毂直径用的</p>
-<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">曲率=轮毂高度*k+B 计算曲率的前提是轮毂的高度数据必须准确(误差小)</p></body></html>
-
-
-
-
- K:
-
-
-
-
- K:表示斜率,B:基准点,直径=高度*K+B
-
-
-
-
- StationSettingDlg
-
-
- 工位配置
-
-
-
-
- 确定并保存
-
-
-
-
- 相机设备配置
-
-
-
-
- 显示
-
-
-
-
- Key(*):
-
-
-
-
- 工位1
-
-
-
-
- 相机类型(*):
-
-
-
-
- Virtual Camera(100)
-
-
-
-
- Baumer(160)
-
-
-
-
- HIK(140)
-
-
-
-
- 显示名称(*):
-
-
-
-
- 唯一
-
-
-
-
- 相机参数
-
-
-
-
- 曝光:
-
-
-
-
- 增益:
-
-
-
-
- 格式:
-
-
-
-
- GRAY8
-
-
-
-
- 保存参数
-
-
-
-
- 启用保存
-
-
-
-
- 保存图片后缀:
-
-
-
-
- 是否保存:
-
-
-
-
- .PNG
-
-
-
-
- .BMP
-
-
-
-
- .JPG
-
-
-
-
- .JPEG
-
-
-
-
- 保存图像的路径:
-
-
-
-
- 修改
-
-
-
-
- 通讯设备配置:
-
-
-
-
- 在使用的设备串口:
-
-
-
-
- 设备名:
-
-
-
-
- 波特率:
-
-
-
-
- StatusBarUi
-
-
- 系统时间
-
-
-
-
- 班次信息
-
-
-
-
- 检测状态
- Detection status
-
-
-
- 用户:
-
-
-
-
- 系统时间:
-
-
-
-
- 检测状态:
-
-
-
-
- 检测中...
-
-
-
-
- 未检测...
-
-
-
-
- 班次信息:
-
-
-
-
- 该时间段未设置班次
-
-
-
-
- 当前用户:
-
-
-
-
- TimeMgr
-
-
- Dialog
-
-
-
-
- 未选中
-
-
-
-
- 添加时间
-
-
-
-
- 删除时间
-
-
-
-
- 修改时间
-
-
-
-
- TimeMgrUi
-
-
- 班次
-
-
-
-
- 起始时间
- starting time:
-
-
-
- 结束时间
- ending time:
-
-
-
- 班次时间管理
-
-
-
-
- 设置参数
-
-
-
-
-
- 未选中
-
-
-
-
-
-
- 提示
- Info
-
-
-
-
- 未选择班次,请选择进行修改。
-
-
-
-
-
-
- 确认
- Sure
-
-
-
- 您确定要删除 %1 班次?
- Are you sure you want to delete flight %1?
-
-
-
- 取消
- Cancel
- Cancel
-
-
-
- ToolBarUi
-
-
- 请选择您的背景图
-
-
-
-
- 提示
- Info
-
-
-
- 背景图更新完成,请重启本软件.
- Background image updated, please restart this software.
-
-
-
- 确认
- Sure
-
-
- 关于本软件
- About this program
- About this program
-
-
-
- WheelCtrl
-
-
- 加载通道模块 ....
-
-
-
-
- 加载模板库 ....
-
-
-
-
- 加载检测设置模块 ....
-
-
-
-
- 加载数据库 ....
-
-
-
-
- 加载班次管理模块 ....
-
-
-
-
- 加载其他模块 ....
-
-
-
-
- 创建子线程 ....
-
-
-
-
- 加载光栅通讯模块 ....
-
-
-
-
- 模块加载完成,启动线程 ....
-
-
-
-
- 未登录
- not login
-
-
-
- WorkMgrUI
-
- 模板型号库
- Template library
-
-
- 查找:
- Search:
-
-
- 全不选
- Select None
-
-
- 全选
- select all
-
-
- 反选
- Invert Select
-
-
- 编辑
- edit
-
-
- 按照厚度检测
- Thickness Detect
-
-
-
diff --git a/tpvs17/tpMain/tpmain_zh.qm b/tpvs17/tpMain/tpmain_zh.qm
deleted file mode 100644
index 4565b57..0000000
Binary files a/tpvs17/tpMain/tpmain_zh.qm and /dev/null differ
diff --git a/tpvs17/tpMain/tpmain_zh.ts b/tpvs17/tpMain/tpmain_zh.ts
deleted file mode 100644
index e0274fe..0000000
--- a/tpvs17/tpMain/tpmain_zh.ts
+++ /dev/null
@@ -1,3257 +0,0 @@
-
-
-
-
- CChannelInfo
-
-
- 开始读取json文件数据...
- 开始读取json文件数据...
-
-
-
- 数据读取完成...
- 数据读取完成...
-
-
-
- CHannelUI
-
-
- 通道信息
-
-
-
-
- 提示
-
-
-
-
- 你确定要删除通道?
-
-
-
-
- 确认
-
-
-
-
- 取消
-
-
-
-
- 未分配
-
-
-
-
- 共 %1 个记录
-
-
-
-
- 修改成功
-
-
-
-
- CWheelNet
-
-
- IP参数设置
-
-
-
-
- ConnectModeUi
-
-
- 无
-
-
-
-
-
-
- 编辑
-
-
-
-
- 取消
-
-
-
-
- 保存完成
-
-
-
-
- 发送模板库
-
-
-
-
- 共
-
-
-
-
- 个记录
-
-
-
-
- DebugUI
-
-
- 调试工具
-
-
-
-
- 图像
-
-
-
-
- 0.0
-
-
-
-
-
- 0
-
-
-
-
- 直径mm:
-
-
-
-
- 000000
-
-
-
-
- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
-<html><head><meta name="qrichtext" content="1" /><style type="text/css">
-p, li { white-space: pre-wrap; }
-</style></head><body style=" font-family:'SimSun'; font-size:9pt; font-weight:400; font-style:normal;">
-<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">右侧是算法裁剪后的图像、匹配的型号、算法匹配的最小阈值、匹配模板对应的直径和厚度(新建模板时输入的)</p></body></html>
-
-
-
-
- 厚度mm:
-
-
-
-
- 开始模拟检测
-
-
-
-
- 采集一张
-
-
-
-
- 触发一张
-
-
-
-
- 设置
-
-
-
-
- DevelopUi
-
-
-
- 相关设备配置
-
-
-
-
-
- 检测图像设置
-
-
-
-
-
- PLC相关设置
-
-
-
-
-
- 报警灯测试
-
-
-
-
-
- 开发者使用
-
-
-
-
- 检测状态
-
-
-
-
- 打开文件夹
-
-
-
-
- 停止虚拟检测
-
-
-
-
- 开始虚拟检测
-
-
-
-
- 属性
-
-
-
-
- 值
-
-
-
-
- 打开配置页面
-
-
-
-
- 语言
-
-
-
-
- 检测背景更换
-
-
-
-
-
- 抠图后
-
-
-
-
-
- 原图
-
-
-
-
- 检测结果
-
-
-
-
- 图像保存路径
-
-
-
-
-
- 设置保存路径
-
-
-
-
-
- 打开图像路径
-
-
-
-
- 保存当前设置
-
-
-
-
-
- 保存已匹配图
-
-
-
-
-
- 保存无匹配图
-
-
-
-
- 轮毂全去A通道
-
-
-
-
- 查看检测背景
-
-
-
-
- 保存参数
-
-
-
-
-
- 保存设置
-
-
-
-
- 传感器触发滤波(ms)
-
-
-
-
- 相机触发延时(ms)
-
-
-
-
- 相机触发脉宽(ms)
-
-
-
-
- 光源熄灭延时时间(ms)
-
-
-
-
- 传感器触发类型
-
-
-
-
- 保持结果时长(ms)
-
-
-
-
- 连接超时次数
-
-
-
-
- 超时是否显示信息
-
-
-
-
-
- 是否自动重启服务器
-
-
-
-
- 是否保存超时日志
-
-
-
-
- 发送并保存
-
-
-
-
- 超时提醒n次后自动重启服务
-
-
-
-
- 是否显示提示
-
-
-
-
- 勾选后通信超时时会显示提醒信息
-
-
-
-
- 勾选后通信超时次数达到后,系统将自动重启服务,PLC会自动重新连接
-
-
-
-
- 保存信息到系统日志
-
-
-
-
- 勾选后表示超时信息将自动保存到系统日志中,便于查询
-
-
-
-
- 红灯
-
-
-
-
- 绿灯
-
-
-
-
- 黄灯
-
-
-
-
- 蜂鸣
-
-
-
-
- 红灯闪一下
-
-
-
-
- 绿灯闪一下
-
-
-
-
- 黄灯闪一下
-
-
-
-
- 蜂鸣响一下
-
-
-
-
- 相机模式
-
-
-
-
- 虚拟相机触发时间
-
-
-
-
- 系统模式
-
-
-
-
- 相机触发模式
-
-
-
-
-
- 串口发送心跳包
-
-
-
-
-
- 网络发送心跳包
-
-
-
-
-
- 串口发送通道结果
-
-
-
-
-
- 网络发送检测结果
-
-
-
-
-
- 网络发送通道结果
-
-
-
-
- 光栅使用标志
-
-
-
-
- 保存高度厚度数据
-
-
-
-
- 通道分配
-
-
-
-
- 启动时是否检测
-
-
-
-
- 显示厚度数据
-
-
-
-
- 显示厚度采样数据
-
-
-
-
- 使用光栅获取厚度
-
-
-
-
- 保存数据用于测试
-
-
-
-
- 是否使用通道分配
-
-
-
-
- 是否启动就开始检测
-
-
-
-
-
- 是否显示
-
-
-
-
- 保存
-
-
-
-
- 保存完成
-
-
-
-
- 数据已发送并保存
-
-
-
-
- 请选择您的背景图
-
-
-
-
- 提示
-
-
-
-
- 背景图更新完成,请重启本软件.
-
-
-
-
- 确认
-
-
-
-
- MainUi
-
-
- 关于
-
-
-
-
-
- 轮毂型号识别系统
-
-
-
-
- 提示
-
-
-
-
- 将清空所有数据
-
-
-
-
- 确定
-
-
-
-
- 取消
-
-
-
-
- 按下了清零按钮,数据全部清零
-
-
-
-
- 停止检测
-
-
-
-
- 按下了开始检测按钮,检测功能开启
-
-
-
-
- 开始检测
-
-
-
-
- 按下了停止检测按钮,检测功能关闭
-
-
-
-
- 本软件由杭州利珀科技开发,用于轮毂型号识别和分类,可搭配流水线运输系统使用
-
-
-
-
- 若需要进一步了解该产品的相关信息,请访问我们的网站
-
-
-
-
- 软件版本
-
-
-
-
- 算法版本
-
-
-
-
- 最后更新时间
-
-
-
-
- 版权 (c) 属 杭州利珀科技有限公司 所有
-
-
-
-
- 关闭
-
-
-
-
- MainWindow
-
-
- 轮毂型号识别系统
- 轮毂型号识别系统
-
-
-
- image_zoom.ui
- image_zoom.ui
-
-
-
- 状态信息
- 状态信息
-
-
-
- 开始检测
-
-
-
-
- 检测结果
-
-
-
-
- 无匹配(个)
-
-
-
-
- 已检测(个)
-
-
-
-
- 匹配值
-
-
-
-
- 直径(mm)
-
-
-
-
- 时间(s)
-
-
-
-
- 通道
-
-
-
-
-
-
-
-
-
-
- 0
-
-
-
-
- ---------
-
-
-
-
- None
-
-
-
-
-
- TextLabel
-
-
-
-
- 厚度(mm)
-
-
-
-
- 统计结果
-
-
-
-
- modelID_detect
-
-
-
-
- count
-
-
-
-
- 交换班清零
-
-
-
-
- 工具栏
-
-
-
-
- font: 11pt "Consolas";
-
-
-
-
-
- 模板管理
-
-
-
-
- QWfModelManage
-
-
-
-
-
- 数据查询
-
-
-
-
- qformcheckdlg
-
-
-
-
-
- 检测模板勾选
-
-
-
-
- 根据需要检测的模板进行勾选
-
-
-
-
- ModelUI
-
-
-
-
- 辅助工具
-
-
-
-
- 开发者专用
-
-
-
-
- DebugUI
-
-
-
-
-
- 班次设置
-
-
-
-
- TimeMgr
-
-
-
-
-
- 光栅标定
-
-
-
-
- qrasterdlg
-
-
-
-
- IP设置
-
-
-
-
- 本机软件IPServer设置
-
-
-
-
- qipconfigdlg
-
-
-
-
- 关于
-
-
-
-
- 关于本软件
-
-
-
-
- 登录
-
-
-
-
- 用户管理
-
-
-
-
- ModelMgrUi
-
-
- 按下了添加模板按钮
-
-
-
-
- 产品信息设置
-
-
-
-
- 添加了一个新的模型
-
-
-
-
-
-
-
-
-
-
-
- 共
-
-
-
-
-
-
-
-
- 个型号
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 提示
-
-
-
-
-
- 请选择一个您要追加图像的型号!
-
-
-
-
- 加载图像
-
-
-
-
- 图像加载中,请稍后.....
-
-
-
-
- 添加失败,不能添加带检测背景的图片作为模板!!!
-
-
-
-
- 加载完成
-
-
-
-
-
-
- 请选择一个您要修改的型号!
-
-
-
-
- 修改了模板
-
-
-
-
- 的参数
-
-
-
-
- 修改成功!
-
-
-
-
-
- 请选择一个您要删除的型号
-
-
-
-
- 按下了删除模板按钮
-
-
-
-
- 是否删除型号
-
-
-
-
- 产品模板
-
-
-
-
- 删除了模板
-
-
-
-
- 确定删除该图像?
-
-
-
-
- 模板图片删除
-
-
-
-
-
-
- 个图像
-
-
-
-
- 图像数量少于
-
-
-
-
- 个,请及时补充训练样本
-
-
-
-
- 该模板训练成功,可以正常使用
-
-
-
-
- 该模板没有训练,并且没有图像
-
-
-
-
- 该模板训练失败,请检查模板图片中是否有其他类型的图像或该模板是否被重复添加
-
-
-
-
- 请选择一个您要训练的型号!
-
-
-
-
-
- 训练模板线程未退出,请稍等
-
-
-
-
- 将对所有型号模板进行重新训练,期间系统的检测功能将不能正常运行直到模板训练完成,全部重新训练模板将需要很长时间,期间将不能进行其他工作,是否继续执行?
-
-
-
-
- 正在检测,请停止检测后再操作!!!
-
-
-
-
-
-
-
-
-
-
- 模板更新进度
-
-
-
-
- 正在初始化所有模板 共需要训练%1个模板,请稍后.....
-
-
-
-
- 正在训练%1的模板 已完成%2/%3,请稍后.....
-
-
-
-
- %1的模板获取特征 已完成%2/%3,请稍后.....
-
-
-
-
- %1的模板训练完成 已完成%2/%3,请稍后.....
-
-
-
-
- 全部模板更新完成!%1s
-
-
-
-
- 对全部模板进行了重新训练,共%1个模板
-
-
-
-
- 警告
-
-
-
-
- 即将删除模板库里的所有模板,是否继续?
-
-
-
-
- 再次确认,是否全部删除?
-
-
-
-
- 没有模板!!!
-
-
-
-
- 全部删除完成!!!
-
-
-
-
- 模板正在准备请稍后.....
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 模板训练进度
-
-
-
-
-
- %1型号没有图片不能训练!
-
-
-
-
- %1的模板 正在获取特征值,请稍后....
-
-
-
-
- 训练完成!%1s
-
-
-
-
- 训练了模板:%1
-
-
-
-
- 确认
-
-
-
-
- 取消
-
-
-
-
- ModelsModel
-
-
-
- 型号
-
-
-
-
- 数量
-
-
-
-
- ProgressView
-
-
- 取消
-
-
-
-
- QAddChannelDlg
-
-
- 新建通道
-
-
-
-
- 发送结果:
-
-
-
-
- 通道名称:
-
-
-
-
- 备注:
-
-
-
-
- 确认
-
-
-
-
- 取消
-
-
-
-
- 警告
-
-
-
-
- 数据不能为空,请输入
-
-
-
-
- QAddModel
-
-
- 新建模板
-
-
-
-
- 轮毂信息:
-
-
-
-
- 轮毂型号
-
-
-
-
-
-
- 0
-
-
-
-
- 直径(mm)
-
-
-
-
- 厚度(mm)
-
-
-
-
- 旋转次数
-
-
-
-
- 确定
-
-
-
-
- 取消
-
-
-
-
- 提醒
-
-
-
-
- 信息不能为空!
-
-
-
-
- QAddTimeDlg
-
-
- 时间参数设置
-
-
-
-
- 确认
-
-
-
-
- 取消
-
-
-
-
- 时间参数:
-
-
-
-
- 班次名称:
-
-
-
-
- 起始时间
-
-
-
-
- 结束时间
-
-
-
-
- QChannelManager
-
-
- 通道信息管理
-
-
-
-
- 所有通道数据
-
-
-
-
- 发送结果:
-
-
-
-
- 通道名称:
-
-
-
-
- 备注:
-
-
-
-
- 是否设为默认(NG流向的通道)
-
-
-
-
- 确认修改
-
-
-
-
- 退出
-
-
-
-
- 编号
-
-
-
-
- 通道名
-
-
-
-
- 备注
-
-
-
-
- 发送结果
-
-
-
-
- 是否为默认
-
-
-
-
- 默认
-
-
-
-
- QDia2ThSetting
-
-
- 直径标定
-
-
-
-
- K:表示斜率,B:基准点,直径=高度*K+B
-
-
-
-
- 确认修改
-
-
-
-
- 退出
-
-
-
-
- B:
-
-
-
-
- K:
-
-
-
-
- 提示
-
-
-
-
- 修改完成,参数已生效!
-
-
-
-
- 确定
-
-
-
-
- QFormCheckDlg
-
-
- 数据查询
-
-
-
-
-
- 生产数据查询
-
-
-
-
- 生产数据统计
-
-
-
-
- 日志记录
-
-
-
-
- 设置
-
-
-
-
-
- 显示数据数(条)
-
-
-
-
-
- 50
-
-
-
-
-
- 上一页
-
-
-
-
-
-
-
- TextLabel
-
-
-
-
-
- 下一页
-
-
-
-
- 标题
-
-
-
-
- 双击单条记录显示图片
-
-
-
-
-
- 开始日期时间:
-
-
-
-
-
-
-
-
-
- 2017-11-11 11:11:11
-
-
-
-
-
- 设置开始时间
-
-
-
-
-
-
- 结束日期时间:
-
-
-
-
-
-
- 设置结束时间
-
-
-
-
- 筛选型号
-
-
-
-
-
- 所有
-
-
-
-
-
- 生产班次
-
-
-
-
- 全天
-
-
-
-
- 查询数量
-
-
-
-
- 0
-
-
-
-
-
-
- 查询
-
-
-
-
-
-
- 导出CSV
-
-
-
-
- 数据类型查询
-
-
-
-
- 起始日期时间:
-
-
-
-
- 设置起始时间
-
-
-
-
- 报警记录查询
-
-
-
-
- 实时检测数据记录保存上限设置:
-
-
-
-
- 数据保存上限时间:
-
-
-
-
- 10年
-
-
-
-
- 6年
-
-
-
-
- 5年
-
-
-
-
- 4年
-
-
-
-
- 3年
-
-
-
-
- 2年
-
-
-
-
- 1年
-
-
-
-
- 9个月
-
-
-
-
- 6个月
-
-
-
-
- 3个月
-
-
-
-
- 1个月
-
-
-
-
- 15天
-
-
-
-
- 1天
-
-
-
-
- 报警数据数量上限(条):
-
-
-
-
- 确定并保存
-
-
-
-
- 我要修改
-
-
-
-
- 测试工具
-
-
-
-
- 手动删除旧数据
-
-
-
-
- 清空所有数据
-
-
-
-
- QIPConfigDlg
-
-
- QIPConfigDlg
-
-
-
-
- 本机服务器IP地址设置
-
-
-
-
-
- IP 地址(I):
-
-
-
-
- 关闭服务
-
-
-
-
- 开放端口:
-
-
-
-
- 打开服务
-
-
-
-
- 目标客户端IP地址设置
-
-
-
-
- 源端口:
-
-
-
-
- 确定
-
-
-
-
- QMainFilter
-
-
-
- Save received file
-
-
-
-
-
- All Files (*)
-
-
-
-
-
- Unable to open file
-
-
-
-
- QMainFilter_WheelDetect
-
-
- 提示
-
-
-
-
- 输入的信息不能为空!!!
-
-
-
-
- QMainFilter_WheelDetect_Child
-
-
- 加载必要模块.....
-
-
-
-
- 初始化UI.....
-
-
-
-
- 绑定信号槽信息...
-
-
-
-
- 创建线程...
-
-
-
-
- 系统初始化完成...
-
-
-
-
- 程序退出,所有数据清零,服务器关闭,断开所有连接.
-
-
-
-
- 已打开
-
-
-
-
- 已关闭
-
-
-
-
- 已连接
-
-
-
-
- 已断开
-
-
-
-
- 按下了模板管理按钮
-
-
-
-
- 按下了光栅标定按钮
-
-
-
-
- 按下了IP设置按钮
-
-
-
-
- 按下了发送模板库按钮
-
-
-
-
- 按下了设置生效按钮
-
-
-
-
- 停止虚拟检测
-
-
-
-
- 开始虚拟检测
-
-
-
-
- 显示识别结果
-
-
-
-
- 相机图像和背景图不一样,请更换检测背景!
-
-
-
-
- 警告!!!连续出现%1个未识别型号
-
-
-
-
- ,未开启检测功能造成的
-
-
-
-
- 获得图像,正在计算中...
-
-
-
-
- 模板库发送完成
-
-
-
-
- 检测状态
-
-
-
-
-
- 正在检测型号数
-
-
-
-
-
- 登 录
-
-
-
-
- :已注销
-
-
-
-
- :已登录
-
-
-
-
-
-
- 提示
-
-
-
-
- 你确定要注销
-
-
-
-
-
-
- 确认
-
-
-
-
- 取消
-
-
-
-
-
- 该功能未启用.
-
-
-
-
-
- (默认)
-
-
-
-
-
- 默认通道 值1000
-
-
-
-
- 心跳包接收超时
-
-
-
-
- 准备重启TCP服务
-
-
-
-
- 心跳包超时
-
-
-
-
- 次
-
-
-
-
- PLC已收到相关设置参数!
-
-
-
-
- 注 销
-
-
-
-
- QModNamedlg
-
-
- 模板名修改
-
-
-
-
- 确认修改
-
-
-
-
-
- 取消
-
-
-
-
- 缩略图:
-
-
-
-
- TextLabel
-
-
-
-
- 旧型号名:
-
-
-
-
- 新型号名:
-
-
-
-
-
- 提示
-
-
-
-
- 新型号名不能为空!
-
-
-
-
- 型号库中已包含该型号,请重新设置型号名!
-
-
-
-
- 确认
-
-
-
-
- QMySplashScreen
-
-
- 程序正在启动...
-
-
-
-
- QObject
-
-
- 本软件是基于机器学习的基础开发而来,用户可通过本软件采集汽轮的图像进行轮毂型号训练,训练后的模型用于型号识别。
-
-
-
-
- 汽车轮毂识别算法 更新时间:20190117 16:04:00
-
-
-
-
- 摩托车轮毂识别算法 更新时间:20190117 18:04:00
-
-
-
-
- QShowImg
-
-
- 检测背景图像显示
-
-
-
-
- 退出
-
-
-
-
- 我要更换背景
-
-
-
-
- pic
-
-
-
-
- 没有用于检测的背景图,请更换检测背景
-
-
-
-
- QWfModelManage
-
-
-
- 模板管理
-
-
-
-
- 模板型号查询
-
-
-
-
-
- 查找:
-
-
-
-
- 数量
-
-
-
-
- modelID
-
-
-
-
- 轮毂信息:
-
-
-
-
- 型号
-
-
-
-
- 0%
-
-
-
-
- 阈值调节
-
-
-
-
- 严格
-
-
-
-
- 旋转次数
-
-
-
-
- 缩略图
-
-
-
-
- 宽松
-
-
-
-
- 厚度(mm)
-
-
-
-
- 直径(mm)
-
-
-
-
- 图片显示:
-
-
-
-
-
- 添加已裁剪的轮毂图片
-
-
-
-
- 追加
-
-
-
-
-
- 删除所有模板
-
-
-
-
- 基本操作
-
-
-
-
-
- 删除模板
-
-
-
-
- 添加新的模板
-
-
-
-
- 新建模板
-
-
-
-
- 训练当前模板
-
-
-
-
- 训练模板
-
-
-
-
- 训练所有模板,消耗时间会较长
-
-
-
-
- 训练全部
-
-
-
-
- 确认修改,每次修改模板的参数后都要确认修改才有效
-
-
-
-
- 修改确认
-
-
-
-
- 修改型号名
-
-
-
-
- 通道分配管理
-
-
-
-
- 所有型号及图像
-
-
-
-
- 型号:
-
-
-
-
- 通道:
-
-
-
-
-
- 隐藏
-
-
-
-
- 修改
-
-
-
-
- 0
-
-
-
-
- 通道分配:
-
-
-
-
- 删除通道
-
-
-
-
- 增加通道
-
-
-
-
- 刷新
-
-
-
-
- 通道管理
-
-
-
-
- QWorkItemDlg
-
-
- 工单信息设置
-
-
-
-
-
- 警告
-
-
-
-
- 名称不能为空.
-
-
-
-
- 你输入的名称:%1 重复.
-
-
-
-
- QWorkItemUI
-
-
- 信息设置
-
-
-
-
- 确定
-
-
-
-
- 取消
-
-
-
-
- 备注信息:
-
-
-
-
- 名称:
-
-
-
-
- QWorkMgrUI
-
-
- QWorkMgrUI
-
-
-
-
- 工作任务表
-
-
-
-
- 添加任务单
-
-
-
-
- 添加
-
-
-
-
- 删除任务单
-
-
-
-
- 删除
-
-
-
-
- 修改任务单名称或备注信息
-
-
-
-
- 修改
-
-
-
-
- 使用任务单
-
-
-
-
- 应用
-
-
-
-
- 当前选择的任务表:
-
-
-
-
-
- 数量
-
-
-
-
- 添加型号到检测列表
-
-
-
-
- <<<
-
-
-
-
- 从检测列表移除所选型号
-
-
-
-
- >>>
-
-
-
-
- 缩略图
-
-
-
-
- 只看已选
-
-
-
-
- 只看未选
-
-
-
-
- 显示全部
-
-
-
-
- 查找:
-
-
-
-
- 其他
-
-
-
-
- 按照直径检测
-
-
-
-
- 按照厚度检测
-
-
-
-
- 手动发送模板库
-
-
-
-
- 检测模板管理
-
-
-
-
-
- 共 %1 个
-
-
-
-
- 当前使用的工单为 %1
-
-
-
-
- 以下型号为重复添加:
-%1已被忽略.
-
-
-
-
- 提醒
-
-
-
-
-
-
- 确定
-
-
-
-
- 工单 %1 被设为应用
-
-
-
-
- 发送模板库
-
-
-
-
-
- 警告
-
-
-
-
- %1任务单正在使用不能被删除,请先切换到其他任务单,再删除该任务单?
-
-
-
-
-
- 取消
-
-
-
-
- 是否要删除 %1 模型?
-
-
-
-
- 序号
-
-
-
-
- 内容
-
-
-
-
- Raster_Form
-
-
- Form
-
-
-
-
- 设备设置和测试
-
-
-
-
- 串口设备设置
-
-
-
-
- 串口名:
-
-
-
-
- 查找设备
-
-
-
-
- <html><head/><body><p>串口设备设置,在需要使用光栅采集数据的情况下使用,并且需要设置正确的设备端口号才能正常与光栅设备通讯,否则通讯会失败。</p></body></html>
-
-
-
-
- 波特率:
-
-
-
-
- 串口打开状态
-
-
-
-
- 启动光栅采集数据功能
-
-
-
-
-
-
- 保存设置
-
-
-
-
- 打开串口
-
-
-
-
- 关闭串口
-
-
-
-
- 光栅数据采样
-
-
-
-
- 光栅未遮挡数:
-
-
-
-
- 系统状态
-
-
-
-
- 光栅总数:
-
-
-
-
- 63
-
-
-
-
- 被遮挡的起始位置:
-
-
-
-
- 光栅遮挡数:
-
-
-
-
- 轮毂数据标定
-
-
-
-
- 轮毂高度标定
-
-
-
-
- 中值滤波比例:
-
-
-
-
- 光栅最小数值:
-
-
-
-
-
-
- mm
-
-
-
-
- 高度测量标定
-
-
-
-
- 基准高度:
-
-
-
-
- 光栅倍率:
-
-
-
-
- 采样容器大小:
-
-
-
-
- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
-<html><head><meta name="qrichtext" content="1" /><style type="text/css">
-p, li { white-space: pre-wrap; }
-</style></head><body style=" font-family:'Consolas'; font-size:11pt; font-weight:400; font-style:normal;">
-<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">高度测量,是基于光栅数据能正常采集的情况下进行的。</p>
-<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">轮毂高度计算公式:</p>
-<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">高度=光栅遮挡数*光栅倍率+基准高度</p>
-<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">光栅遮挡数:是有物品挡住光栅时,光栅采样返回的数据</p>
-<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">光栅倍率:是光栅自身的精度,每一格光栅所代表的高度是多少</p>
-<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">基准高度:是在光栅无法照射的地方的高度大小,需要用直尺直接测量光栅底部与流水线的最低平面的距离</p></body></html>
-
-
-
-
- 轮毂直径标定曲率:
-
-
-
-
- B:
-
-
-
-
- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
-<html><head><meta name="qrichtext" content="1" /><style type="text/css">
-p, li { white-space: pre-wrap; }
-</style></head><body style=" font-family:'Consolas'; font-size:11pt; font-weight:400; font-style:normal;">
-<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">直径标定曲率:是用于校准算法计算出的轮毂直径与实际轮毂直径用的</p>
-<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">曲率=轮毂高度*k+B 计算曲率的前提是轮毂的高度数据必须准确(误差小)</p></body></html>
-
-
-
-
- K:
-
-
-
-
- K:表示斜率,B:基准点,直径=高度*K+B
-
-
-
-
- StationSettingDlg
-
-
- 工位配置
-
-
-
-
- 确定并保存
-
-
-
-
- 相机设备配置
-
-
-
-
- 显示
-
-
-
-
- Key(*):
-
-
-
-
- 工位1
-
-
-
-
- 相机类型(*):
-
-
-
-
- Virtual Camera(100)
-
-
-
-
- Baumer(160)
-
-
-
-
- HIK(140)
-
-
-
-
- 显示名称(*):
-
-
-
-
- 唯一
-
-
-
-
- 相机参数
-
-
-
-
- 曝光:
-
-
-
-
- 增益:
-
-
-
-
- 格式:
-
-
-
-
- GRAY8
-
-
-
-
- 保存参数
-
-
-
-
- 启用保存
-
-
-
-
- 保存图片后缀:
-
-
-
-
- 是否保存:
-
-
-
-
- .PNG
-
-
-
-
- .BMP
-
-
-
-
- .JPG
-
-
-
-
- .JPEG
-
-
-
-
- 保存图像的路径:
-
-
-
-
- 修改
-
-
-
-
- 通讯设备配置:
-
-
-
-
- 在使用的设备串口:
-
-
-
-
- 设备名:
-
-
-
-
- 波特率:
-
-
-
-
- StatusBarUi
-
-
- 系统时间
-
-
-
-
- 班次信息
-
-
-
-
- 检测状态
-
-
-
-
- 用户:
-
-
-
-
- 系统时间:
-
-
-
-
- 检测状态:
-
-
-
-
- 检测中...
-
-
-
-
- 未检测...
-
-
-
-
- 班次信息:
-
-
-
-
- 该时间段未设置班次
-
-
-
-
- 当前用户:
-
-
-
-
- TimeMgr
-
-
- Dialog
-
-
-
-
- 未选中
-
-
-
-
- 添加时间
-
-
-
-
- 删除时间
-
-
-
-
- 修改时间
-
-
-
-
- TimeMgrUi
-
-
- 班次
-
-
-
-
- 起始时间
-
-
-
-
- 结束时间
-
-
-
-
- 班次时间管理
-
-
-
-
- 设置参数
-
-
-
-
-
- 未选中
-
-
-
-
-
-
- 提示
-
-
-
-
-
- 未选择班次,请选择进行修改。
-
-
-
-
-
-
- 确认
-
-
-
-
- 您确定要删除 %1 班次?
-
-
-
-
- 取消
-
-
-
-
- ToolBarUi
-
-
- 请选择您的背景图
-
-
-
-
- 提示
-
-
-
-
- 背景图更新完成,请重启本软件.
-
-
-
-
- 确认
-
-
-
-
- WheelCtrl
-
-
- 加载通道模块 ....
-
-
-
-
- 加载模板库 ....
-
-
-
-
- 加载检测设置模块 ....
-
-
-
-
- 加载数据库 ....
-
-
-
-
- 加载班次管理模块 ....
-
-
-
-
- 加载其他模块 ....
-
-
-
-
- 创建子线程 ....
-
-
-
-
- 加载光栅通讯模块 ....
-
-
-
-
- 模块加载完成,启动线程 ....
-
-
-
-
- 未登录
-
-
-
-
diff --git a/tpvs17/wheel.sln b/tpvs17/wheel.sln
index b1438af..1ddec6e 100644
--- a/tpvs17/wheel.sln
+++ b/tpvs17/wheel.sln
@@ -5,12 +5,6 @@ VisualStudioVersion = 15.0.28307.1267
MinimumVisualStudioVersion = 10.0.40219.1
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "lpMain", "tpMain\tpMain.vcxproj", "{A229CF5C-81EF-4909-AB6E-49C746F1ED4C}"
EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "tpAlgorithmQt", "tpAlgorithmQt\tpAlgorithmQt.vcxproj", "{B12702AD-ABFB-343A-A199-8E24837244A3}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "QUserInfo", "QUserInfo\QUserInfo.vcxproj", "{D7AF8AA1-0F2C-407F-B135-FBDA4448EE16}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "RasterSDG20", "RasterSDG20\RasterSDG20.vcxproj", "{CE765894-2106-48FE-99C3-D8D7624889A0}"
-EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|x64 = Debug|x64
@@ -21,24 +15,12 @@ Global
{A229CF5C-81EF-4909-AB6E-49C746F1ED4C}.Debug|x64.Build.0 = Debug|x64
{A229CF5C-81EF-4909-AB6E-49C746F1ED4C}.Release|x64.ActiveCfg = Release|x64
{A229CF5C-81EF-4909-AB6E-49C746F1ED4C}.Release|x64.Build.0 = Release|x64
- {B12702AD-ABFB-343A-A199-8E24837244A3}.Debug|x64.ActiveCfg = Debug|x64
- {B12702AD-ABFB-343A-A199-8E24837244A3}.Debug|x64.Build.0 = Debug|x64
- {B12702AD-ABFB-343A-A199-8E24837244A3}.Release|x64.ActiveCfg = Release|x64
- {B12702AD-ABFB-343A-A199-8E24837244A3}.Release|x64.Build.0 = Release|x64
- {D7AF8AA1-0F2C-407F-B135-FBDA4448EE16}.Debug|x64.ActiveCfg = Debug|x64
- {D7AF8AA1-0F2C-407F-B135-FBDA4448EE16}.Debug|x64.Build.0 = Debug|x64
- {D7AF8AA1-0F2C-407F-B135-FBDA4448EE16}.Release|x64.ActiveCfg = Release|x64
- {D7AF8AA1-0F2C-407F-B135-FBDA4448EE16}.Release|x64.Build.0 = Release|x64
- {CE765894-2106-48FE-99C3-D8D7624889A0}.Debug|x64.ActiveCfg = Debug|x64
- {CE765894-2106-48FE-99C3-D8D7624889A0}.Debug|x64.Build.0 = Debug|x64
- {CE765894-2106-48FE-99C3-D8D7624889A0}.Release|x64.ActiveCfg = Release|x64
- {CE765894-2106-48FE-99C3-D8D7624889A0}.Release|x64.Build.0 = Release|x64
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
- Qt5Version = qt5.9.4-msvc2017-x64
SolutionGuid = {CD365F32-5EAC-4A16-AD47-BFB1D8E5511A}
+ Qt5Version = qt5.9.4-msvc2017-x64
EndGlobalSection
EndGlobal