1、tcp接收触发信号 加入滤波时间设置

2、图像标定页面图片加载逻辑修改,修复因图像格式更改导致标定页面重新打开时不显示图像的问题
master
bob.pan 4 years ago
parent cbb44ca349
commit 2a239aa03f

@ -74,7 +74,7 @@ void lpImageCaliUI::showEvent(QShowEvent *event)
if (m_srcImgView) if (m_srcImgView)
{ {
m_srcImgView->onClearAllROI(); m_srcImgView->onClearAllROI();
QString DstPath = QApplication::applicationDirPath() + "\\user\\StandImage.png"; QString DstPath = QApplication::applicationDirPath() + "\\user\\StandImage.jpg";
QImage img; QImage img;
img.load(DstPath); img.load(DstPath);
@ -103,10 +103,10 @@ Q_SLOT void lpImageCaliUI::onButtonClicked()
QString strObj = sender()->objectName(); QString strObj = sender()->objectName();
if (strObj == "m_pbLoadImg") if (strObj == "m_pbLoadImg")
{ {
QString fileName = QFileDialog::getOpenFileName(this, tr("选择标定图"), "/home/jana", tr("Image Files (*.png *.jpg *.bmp)")); QString fileName = QFileDialog::getOpenFileName(this, tr("选择标定图"), lpGlobalConfig::instance()->m_SaveImgDirPath+"/data/", tr("Image Files (*.png *.jpg *.bmp)"));
if (!fileName.isEmpty()) if (!fileName.isEmpty())
{ {
QString DstPath = QApplication::applicationDirPath() + "\\user\\StandImage.png"; QString DstPath = QApplication::applicationDirPath() + "\\user\\StandImage.jpg";
QString sourcePath = fileName; QString sourcePath = fileName;
DstPath.replace("\\", "/"); DstPath.replace("\\", "/");
if (sourcePath == DstPath) { if (sourcePath == DstPath) {
@ -118,13 +118,14 @@ Q_SLOT void lpImageCaliUI::onButtonClicked()
if (exist) { if (exist) {
createfile->remove(DstPath); createfile->remove(DstPath);
} }
if (!QFile::copy(sourcePath, DstPath)) { // if (!QFile::copy(sourcePath, DstPath)) {
} // }
QImage img; QImage img;
img.load(fileName); img.load(fileName);
if (m_srcImgView) { if (m_srcImgView) {
m_srcImgView->setImg(img); m_srcImgView->setImg(img);
} }
img.save(DstPath);
delete createfile; delete createfile;
createfile = nullptr; createfile = nullptr;
} }

@ -86,7 +86,7 @@ void lpImageCaliUI4P::showEvent(QShowEvent *event)
if (m_srcImgView) if (m_srcImgView)
{ {
m_srcImgView->onClearAllROI(); m_srcImgView->onClearAllROI();
QString DstPath = QApplication::applicationDirPath() + "\\user\\StandImage.png"; QString DstPath = QApplication::applicationDirPath() + "\\user\\StandImage.jpg";
QImage img; QImage img;
img.load(DstPath); img.load(DstPath);
@ -120,10 +120,10 @@ Q_SLOT void lpImageCaliUI4P::onButtonClicked()
QString strObj = sender()->objectName(); QString strObj = sender()->objectName();
if (strObj == "m_pbLoadImg") if (strObj == "m_pbLoadImg")
{ {
QString fileName = QFileDialog::getOpenFileName(this, tr("Ñ¡Ôñ±ê¶¨Í¼"), "/home/jana", tr("Image Files (*.png *.jpg *.bmp)")); QString fileName = QFileDialog::getOpenFileName(this, tr("Ñ¡Ôñ±ê¶¨Í¼"), lpGlobalConfig::instance()->m_SaveImgDirPath + "/data/", tr("Image Files (*.png *.jpg *.bmp)"));
if (!fileName.isEmpty()) if (!fileName.isEmpty())
{ {
QString DstPath = QApplication::applicationDirPath() + "\\user\\StandImage.png"; QString DstPath = QApplication::applicationDirPath() + "\\user\\StandImage.jpg";
QString sourcePath = fileName; QString sourcePath = fileName;
DstPath.replace("\\", "/"); DstPath.replace("\\", "/");
if (sourcePath == DstPath) { if (sourcePath == DstPath) {
@ -135,13 +135,14 @@ Q_SLOT void lpImageCaliUI4P::onButtonClicked()
if (exist) { if (exist) {
createfile->remove(DstPath); createfile->remove(DstPath);
} }
if (!QFile::copy(sourcePath, DstPath)) { // if (!QFile::copy(sourcePath, DstPath)) {
} // }
QImage img; QImage img;
img.load(fileName); img.load(fileName);
if (m_srcImgView) { if (m_srcImgView) {
m_srcImgView->setImg(img); m_srcImgView->setImg(img);
} }
img.save(DstPath);
delete createfile; delete createfile;
createfile = nullptr; createfile = nullptr;
} }

@ -21,6 +21,7 @@ void lpConfig::saveConfig()
setting.setValue("appPathB", appPathB); setting.setValue("appPathB", appPathB);
setting.setValue("doubleStation", doubleStation); setting.setValue("doubleStation", doubleStation);
setting.setValue("serverPort", plcServerPort); setting.setValue("serverPort", plcServerPort);
setting.setValue("trigerFilter", trigerFilter);
} }
void lpConfig::loadConfig() void lpConfig::loadConfig()
@ -32,4 +33,5 @@ void lpConfig::loadConfig()
appPathB = setting.value("appPathB").toString(); appPathB = setting.value("appPathB").toString();
doubleStation = setting.value("doubleStation",true).toBool(); doubleStation = setting.value("doubleStation",true).toBool();
plcServerPort = setting.value("serverPort", 1000).toInt(); plcServerPort = setting.value("serverPort", 1000).toInt();
trigerFilter = setting.value("trigerFilter", 1000).toInt();
} }

@ -20,6 +20,7 @@ public:
QString appPathB;//B侧检测系统的路径 绝对路径 QString appPathB;//B侧检测系统的路径 绝对路径
bool doubleStation{ true };//true 双工位 ; false 单工位 bool doubleStation{ true };//true 双工位 ; false 单工位
int plcServerPort{ 1000 };//与PLC通讯 的tcp服务端口 int plcServerPort{ 1000 };//与PLC通讯 的tcp服务端口
int trigerFilter{ 1000 };
}; };
#endif #endif

@ -58,6 +58,7 @@ Q_SLOT void lpConfigUI::onButtonClicked()
lpConfig::instance()->portB = ui.lineEdit_BPort->text().toInt(); lpConfig::instance()->portB = ui.lineEdit_BPort->text().toInt();
lpConfig::instance()->doubleStation = ui.checkBox_doubleStation->isChecked(); lpConfig::instance()->doubleStation = ui.checkBox_doubleStation->isChecked();
lpConfig::instance()->plcServerPort = ui.lineEdit_serverPort->text().toInt(); lpConfig::instance()->plcServerPort = ui.lineEdit_serverPort->text().toInt();
lpConfig::instance()->trigerFilter = ui.lineEdit_trigerFilter->text().toInt();
lpConfig::instance()->saveConfig(); lpConfig::instance()->saveConfig();
ui.label_5->setVisible(true); ui.label_5->setVisible(true);
m_timerID = startTimer(1000); m_timerID = startTimer(1000);
@ -82,7 +83,7 @@ void lpConfigUI::showEvent(QShowEvent *event)
ui.lineEdit_BPort->setText(QString("%1").arg(lpConfig::instance()->portB)); ui.lineEdit_BPort->setText(QString("%1").arg(lpConfig::instance()->portB));
ui.checkBox_doubleStation->setChecked(lpConfig::instance()->doubleStation); ui.checkBox_doubleStation->setChecked(lpConfig::instance()->doubleStation);
ui.lineEdit_serverPort->setText(QString("%1").arg(lpConfig::instance()->plcServerPort)); ui.lineEdit_serverPort->setText(QString("%1").arg(lpConfig::instance()->plcServerPort));
ui.lineEdit_trigerFilter->setText(QString("%1").arg(lpConfig::instance()->trigerFilter));
QSettings languageSetting("hubdetect.ini", QSettings::IniFormat); QSettings languageSetting("hubdetect.ini", QSettings::IniFormat);
QString strLanguage = languageSetting.value("language", "Chinese").toString(); QString strLanguage = languageSetting.value("language", "Chinese").toString();
ui.comboBox->setCurrentText(strLanguage); ui.comboBox->setCurrentText(strLanguage);

@ -273,13 +273,6 @@
<string>机台PLC通讯</string> <string>机台PLC通讯</string>
</property> </property>
<layout class="QGridLayout" name="gridLayout_3"> <layout class="QGridLayout" name="gridLayout_3">
<item row="0" column="0">
<widget class="QLabel" name="label_6">
<property name="text">
<string>TCP服务端口</string>
</property>
</widget>
</item>
<item row="0" column="1"> <item row="0" column="1">
<widget class="QLineEdit" name="lineEdit_serverPort"> <widget class="QLineEdit" name="lineEdit_serverPort">
<property name="text"> <property name="text">
@ -300,6 +293,34 @@
</property> </property>
</spacer> </spacer>
</item> </item>
<item row="0" column="0">
<widget class="QLabel" name="label_6">
<property name="text">
<string>TCP服务端口</string>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QLineEdit" name="lineEdit_trigerFilter">
<property name="text">
<string>1000</string>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QLabel" name="label_8">
<property name="text">
<string>相机触发滤波:</string>
</property>
</widget>
</item>
<item row="1" column="2">
<widget class="QLabel" name="label_9">
<property name="text">
<string>单位ms</string>
</property>
</widget>
</item>
</layout> </layout>
</widget> </widget>
</item> </item>

@ -135,10 +135,15 @@ valueMainUI::valueMainUI(QWidget *parent)
} }
lpGlobalData::instance()->m_StationResult_1.stationID = 1; lpGlobalData::instance()->m_StationResult_1.stationID = 1;
lpGlobalData::instance()->m_StationResult_2.stationID = 2; lpGlobalData::instance()->m_StationResult_2.stationID = 2;
m_timerFilterA.setSingleShot(true);
m_timerFilterB.setSingleShot(true);
} }
valueMainUI::~valueMainUI() valueMainUI::~valueMainUI()
{ {
m_timerFilterA.stop();
m_timerFilterB.stop();
onStopProcess();//本系统退出时 杀死由本系统启动的A B检测程序 onStopProcess();//本系统退出时 杀死由本系统启动的A B检测程序
//内存释放 //内存释放
{ {
@ -1012,6 +1017,11 @@ Q_SLOT void valueMainUI::onPLCTrigerCam(int camID)
//onTriggerCam(); //onTriggerCam();
if (camID == 1)//A侧相机触发拍照 if (camID == 1)//A侧相机触发拍照
{ {
if (m_timerFilterA.isActive())
return;
int t = lpConfig::instance()->trigerFilter;
if (t > 0)
m_timerFilterA.start(t);
TP_PROTOCOL_MESSAGE msg; TP_PROTOCOL_MESSAGE msg;
QJsonObject sObj; QJsonObject sObj;
sObj.insert("cmd", "trigerCam"); sObj.insert("cmd", "trigerCam");
@ -1021,6 +1031,12 @@ Q_SLOT void valueMainUI::onPLCTrigerCam(int camID)
} }
else if (camID == 2)//B侧相机拍照 else if (camID == 2)//B侧相机拍照
{ {
if (m_timerFilterB.isActive())
return;
int t = lpConfig::instance()->trigerFilter;
if (t > 0)
m_timerFilterB.start(t);
TP_PROTOCOL_MESSAGE msg; TP_PROTOCOL_MESSAGE msg;
QJsonObject sObj; QJsonObject sObj;
sObj.insert("cmd", "trigerCam"); sObj.insert("cmd", "trigerCam");

@ -15,6 +15,7 @@
#include "QTCPDebugUI.h" #include "QTCPDebugUI.h"
#include <QTranslator> #include <QTranslator>
#include <QTimer>
class valueMainUI : public QMainWindow class valueMainUI : public QMainWindow
{ {
@ -119,6 +120,9 @@ private:
QPLCDevice* m_pPlcDevice{ nullptr }; QPLCDevice* m_pPlcDevice{ nullptr };
QVector<QTranslator* > m_VecTranPtr;//国际化语言包管理 QVector<QTranslator* > m_VecTranPtr;//国际化语言包管理
QTimer m_timerFilterA;
QTimer m_timerFilterB;
}; };
#endif #endif

Loading…
Cancel
Save