Browse Source

添加了盲元校正的功能,修改了库的头文件

master
zara 12 months ago
parent
commit
3a4dc314d1
  1. 24
      CMakeLists.txt
  2. 2
      CMakeLists.txt.user
  3. 31
      libcalibrat.cpp
  4. 28
      libcalibrat.h
  5. 85
      mainwindow.cpp
  6. 15
      mainwindow.h
  7. 145
      mainwindow.ui
  8. 12
      multipoint.cpp
  9. 2
      multipoint.h
  10. 530
      translations/zxrcClient.ts
  11. 1
      uCIrQg.json
  12. 13
      zxrcClient.pro
  13. BIN
      多点校正(下位机中实现).docx
  14. BIN
      多点校正使用说明.docx

24
CMakeLists.txt

@ -1,10 +1,9 @@ @@ -1,10 +1,9 @@
cmake_minimum_required(VERSION 3.5)
set(PROJECT_VERSION 1.4.2.9)
set(PROJECT_VERSION 1.4.2.10)
add_definitions(-DProjectVersion=\"${PROJECT_VERSION}\")
project(zxrcClient VERSION ${PROJECT_VERSION} LANGUAGES CXX)
set(CMAKE_AUTOUIC ON)
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTORCC ON)
@ -159,3 +158,24 @@ target_link_libraries (zxrcClientPC PRIVATE ${OpenCV_LIBS}) @@ -159,3 +158,24 @@ target_link_libraries (zxrcClientPC PRIVATE ${OpenCV_LIBS})
target_compile_definitions (zxrcClientPC PRIVATE CLIENT=2)
set(LIBTYPE SHARED)
add_library (libcali ${LIBTYPE} libcalibrat.cpp libcalibrat.h multipoint.cpp multipoint.h)
target_link_libraries (libcali PRIVATE Qt${QT_VERSION_MAJOR}::Widgets)
target_link_libraries (libcali PRIVATE ${OpenCV_LIBS})
add_library (libusb ${LIBTYPE} usbthread.cpp usbthread.h datathread.cpp datathread.h)
target_link_libraries (libusb PRIVATE Qt${QT_VERSION_MAJOR}::Widgets)
target_link_libraries (libusb PRIVATE ${OpenCV_LIBS})
target_include_directories (libusb PRIVATE ${INCLUDE_DIRS})
target_link_directories (libusb PRIVATE ${LIB_DIRS})
target_link_libraries (libusb PRIVATE ${LIBS})
add_library (libusbcontrol ${LIBTYPE} usbcontrol.cpp usbcontrol.h)
target_link_libraries (libusbcontrol PRIVATE Qt${QT_VERSION_MAJOR}::Widgets)
target_link_libraries (libusbcontrol PRIVATE ${OpenCV_LIBS})
target_include_directories (libusbcontrol PRIVATE ${INCLUDE_DIRS})
target_link_directories (libusbcontrol PRIVATE ${LIB_DIRS})
target_link_libraries (libusbcontrol PRIVATE ${LIBS})

2
CMakeLists.txt.user

@ -1,6 +1,6 @@ @@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE QtCreatorProject>
<!-- Written by QtCreator 11.0.1, 2024-07-11T18:01:28. -->
<!-- Written by QtCreator 11.0.1, 2024-07-25T18:23:00. -->
<qtcreator>
<data>
<variable>EnvironmentId</variable>

31
libcalibrat.cpp

@ -0,0 +1,31 @@ @@ -0,0 +1,31 @@
#include "libcalibrat.h"
#include "multipoint.h"
libCalibrat::libCalibrat(QObject *parent)
: QObject{parent}
{
mp = new MultiPoint();
connect(this,SIGNAL(signalsetdevice(QString)),mp,SLOT(setdevice(QString)));
connect(this,SIGNAL(signalsetIT(double)),mp,SLOT(setit(double)));
connect(this,SIGNAL(signalsetparas(int,int)),mp,SLOT(setparas(int,int)));
connect(this,SIGNAL(signalloadfile()),mp,SLOT(loaddata()));
connect(this,SIGNAL(signalrun(cv::Mat)),mp,SLOT(runData(cv::Mat)));
connect(this,&libCalibrat::signalStatus,[=](bool status){
if(status) {
mp->enable = true;
mp->loaddata();
}
else{
mp->off();
}
});
connect(mp,&MultiPoint::signalLog,[=](QString log){
emit signallogtext(log);
});
connect(mp,&MultiPoint::signalsendimg,[=](cv::Mat dst){
emit signalsendimag(dst);
});
}

28
libcalibrat.h

@ -0,0 +1,28 @@ @@ -0,0 +1,28 @@
#ifndef LIBCALIBRAT_H
#define LIBCALIBRAT_H
#include <QObject>
#include <OpenCV2/opencv.hpp>
class MultiPoint;
class libCalibrat : public QObject
{
Q_OBJECT
public:
explicit libCalibrat(QObject *parent = nullptr);
signals:
void signalsetparas(int _row, int _col);
void signalsetdevice(QString );
void signalsetIT(double);
void signalloadfile();
void signalrun(cv::Mat);
void signalStatus(bool);
void signalsendimag(cv::Mat);
void signallogtext(QString);
private :
MultiPoint* mp;
};
#endif // LIBCALIBRAT_H

85
mainwindow.cpp

@ -48,7 +48,7 @@ void MainWindow::initUI() @@ -48,7 +48,7 @@ void MainWindow::initUI()
savesbin = false;
shotimg = false;
shotbin = false;
b_bp = false;
fps = 0;
fpscount = 0;
path = QDir::homePath()+"/zxrcfiles/";
@ -133,6 +133,8 @@ void MainWindow::initUI() @@ -133,6 +133,8 @@ void MainWindow::initUI()
rows = ui->spinBox->value();
cols = ui->spinBox_2->value();
ddd;
bpimg = cv::Mat(rows,cols,CV_8UC1);
memset(bpimg.data,0,rows*cols);
ui->scrollAreaWidgetContents->setMinimumSize(cols+20,rows+20);
ui->label->resize(cols,rows);
@ -309,6 +311,8 @@ void MainWindow::initConnect() @@ -309,6 +311,8 @@ void MainWindow::initConnect()
// m_mp->loaddata(path,this->d_it);
this->deviceid = path;
m_mp->setdevice(path);
m_mp->enable = true;
// m_mp->loaddata();
});
connect(m5,SIGNAL(signaloff()),m_mp,SLOT(off()));
connect(m_mp,SIGNAL(signalLog(QString)),this,SLOT(slotlogtext(QString)));
@ -623,6 +627,33 @@ void MainWindow::slotShowImage(cv::Mat img) @@ -623,6 +627,33 @@ void MainWindow::slotShowImage(cv::Mat img)
img = dst;
}
if(b_bp){
for(int i = 0;i< rows;i++){
for(int j = 0;j<cols;j++){
if(bpimg.at<uchar>(i,j) == 1){
int n = 8- (bpimg.at<uchar>(i+1,j)+
bpimg.at<uchar>(i-1,j)+
bpimg.at<uchar>(i+1,j-1)+
bpimg.at<uchar>(i-1,j-1)+
bpimg.at<uchar>(i+1,j+1)+
bpimg.at<uchar>(i-1,j+1)+
bpimg.at<uchar>(i,j+1)+
bpimg.at<uchar>(i,j-1));
int sum = (1-bpimg.at<uchar>(i+1,j))*img.at<ushort>(i+1,j)+
(1-bpimg.at<uchar>(i-1,j))*img.at<ushort>(i-1,j)+
(1-bpimg.at<uchar>(i+1,j+1))*img.at<ushort>(i+1,j+1)+
(1-bpimg.at<uchar>(i-1,j+1))*img.at<ushort>(i-1,j+1)+
(1-bpimg.at<uchar>(i+1,j-1))*img.at<ushort>(i+1,j-1)+
(1-bpimg.at<uchar>(i-1,j-1))*img.at<ushort>(i-1,j-1)+
(1-bpimg.at<uchar>(i,j+1))*img.at<ushort>(i,j+1)+
(1-bpimg.at<uchar>(i,j-1))*img.at<ushort>(i,j-1);
if(n>0)
img.at<ushort>(i,j) = sum/n;
else img.at<ushort>(i,j) = 0;
}
}
}
}
if(b_stat ){
if(img.type() == CV_16UC1)
@ -953,6 +984,11 @@ void MainWindow::on_spinBox_valueChanged(int arg1) @@ -953,6 +984,11 @@ void MainWindow::on_spinBox_valueChanged(int arg1)
ui->scrollAreaWidgetContents->setMinimumHeight(rows+20);
ui->label->resize(cols,rows);
m_mp->setparas(rows,cols);
bpimg = cv::Mat(rows,cols,CV_8UC1);
memset(bpimg.data,0,rows*cols);
}
@ -962,6 +998,53 @@ void MainWindow::on_spinBox_2_valueChanged(int arg1) @@ -962,6 +998,53 @@ void MainWindow::on_spinBox_2_valueChanged(int arg1)
ui->scrollAreaWidgetContents->setMinimumWidth(cols+20);
ui->label->resize(cols,rows);
m_mp->setparas(rows,cols);
bpimg = cv::Mat(rows,cols,CV_8UC1);
memset(bpimg.data,0,rows*cols);
}
void MainWindow::on_pushButton_4_clicked()//标记为盲元
{
if( imageX>=0 && imageX<cols && imageY>=0 && imageY< rows){
bpimg.at<uchar>(imageY,imageX) = 1 ;
}
}
void MainWindow::on_pushButton_5_clicked() //取消标记
{
if( imageX>=0 && imageX<cols && imageY>=0 && imageY< rows){
bpimg.at<uchar>(imageY,imageX) = 0 ;
}
}
void MainWindow::on_pushButton_6_clicked() //打开盲元替换
{
b_bp = true;
}
void MainWindow::on_pushButton_7_clicked() //关闭盲元替换
{
b_bp = false;
}
void MainWindow::on_pushButton_8_clicked()
{
QFile f(path+ QString::fromLocal8Bit("/盲元表.txt"));
f.open(QIODevice::ReadWrite);
for(int i = 0;i<rows;i++){
for(int j = 0;j< cols; j++){
if(bpimg.at<uchar>(i,j) == 1){
QString msg = "rows:"+ QString::number(i)+",cols"+QString::number(j)+"\n";
f.write(msg.toUtf8());
}
}
}
f.close();
}

15
mainwindow.h

@ -74,6 +74,16 @@ private slots: @@ -74,6 +74,16 @@ private slots:
void on_pushButton_4_clicked();
void on_pushButton_5_clicked();
void on_pushButton_6_clicked();
void on_pushButton_7_clicked();
void on_pushButton_8_clicked();
private:
void initIns();
void initUI();
@ -162,5 +172,10 @@ private: @@ -162,5 +172,10 @@ private:
double d_it;// 积分时间
QString deviceid;
cv::Mat bpimg;//盲元点
bool b_bp;//盲元替换
};
#endif // MAINWINDOW_H

145
mainwindow.ui

@ -6,7 +6,7 @@ @@ -6,7 +6,7 @@
<rect>
<x>0</x>
<y>0</y>
<width>1386</width>
<width>1388</width>
<height>648</height>
</rect>
</property>
@ -63,7 +63,7 @@ @@ -63,7 +63,7 @@
<x>0</x>
<y>0</y>
<width>658</width>
<height>559</height>
<height>567</height>
</rect>
</property>
<widget class="QLabel" name="label">
@ -95,36 +95,30 @@ @@ -95,36 +95,30 @@
</size>
</property>
<layout class="QGridLayout" name="gridLayout">
<item row="0" column="0" colspan="2">
<widget class="TogglePushButton" name="pushButton_3">
<item row="2" column="0">
<widget class="QLabel" name="label_4">
<property name="text">
<string>暂停统计</string>
<string>中心点横坐标</string>
</property>
</widget>
</item>
<item row="1" column="0" colspan="2">
<widget class="QTableWidget" name="tableWidget"/>
</item>
<item row="2" column="0">
<widget class="QLabel" name="label_4">
<item row="5" column="0">
<widget class="QLabel" name="label_7">
<property name="text">
<string>中心点横坐标</string>
<string>区域均方差</string>
</property>
</widget>
</item>
<item row="2" column="1">
<widget class="QLineEdit" name="lineEdit"/>
<item row="13" column="2">
<widget class="QLineEdit" name="lineEdit_7"/>
</item>
<item row="3" column="0">
<widget class="QLabel" name="label_5">
<item row="14" column="0">
<widget class="QLabel" name="label_11">
<property name="text">
<string>中心点纵坐标</string>
<string>全局均方差</string>
</property>
</widget>
</item>
<item row="3" column="1">
<widget class="QLineEdit" name="lineEdit_2"/>
</item>
<item row="4" column="0">
<widget class="QLabel" name="label_6">
<property name="text">
@ -132,73 +126,114 @@ @@ -132,73 +126,114 @@
</property>
</widget>
</item>
<item row="4" column="1">
<widget class="QLineEdit" name="lineEdit_3"/>
<item row="15" column="0" colspan="3">
<widget class="QTextBrowser" name="textBrowser">
<property name="maximumSize">
<size>
<width>400</width>
<height>16777215</height>
</size>
</property>
</widget>
</item>
<item row="5" column="0">
<widget class="QLabel" name="label_7">
<item row="14" column="2">
<widget class="QLineEdit" name="lineEdit_8"/>
</item>
<item row="6" column="0">
<widget class="QPushButton" name="pushButton_4">
<property name="text">
<string>区域均方差</string>
<string>标记为盲元</string>
</property>
</widget>
</item>
<item row="5" column="1">
<widget class="QLineEdit" name="lineEdit_4"/>
</item>
<item row="6" column="0" colspan="2">
<widget class="Line" name="line">
<property name="orientation">
<enum>Qt::Horizontal</enum>
<item row="3" column="0">
<widget class="QLabel" name="label_5">
<property name="text">
<string>中心点纵坐标</string>
</property>
</widget>
</item>
<item row="7" column="0">
<item row="11" column="0">
<widget class="QLabel" name="label_8">
<property name="text">
<string>截止点数</string>
</property>
</widget>
</item>
<item row="7" column="1">
<widget class="QLineEdit" name="lineEdit_5"/>
</item>
<item row="8" column="0">
<widget class="QLabel" name="label_9">
<property name="text">
<string>溢出点数</string>
<item row="10" column="0" colspan="3">
<widget class="Line" name="line">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
</widget>
</item>
<item row="8" column="1">
<item row="4" column="2">
<widget class="QLineEdit" name="lineEdit_3"/>
</item>
<item row="1" column="0" colspan="3">
<widget class="QTableWidget" name="tableWidget"/>
</item>
<item row="3" column="2">
<widget class="QLineEdit" name="lineEdit_2"/>
</item>
<item row="2" column="2">
<widget class="QLineEdit" name="lineEdit"/>
</item>
<item row="12" column="2">
<widget class="QLineEdit" name="lineEdit_6"/>
</item>
<item row="9" column="0">
<item row="11" column="2">
<widget class="QLineEdit" name="lineEdit_5"/>
</item>
<item row="13" column="0">
<widget class="QLabel" name="label_10">
<property name="text">
<string>全局平均值</string>
</property>
</widget>
</item>
<item row="9" column="1">
<widget class="QLineEdit" name="lineEdit_7"/>
<item row="5" column="2">
<widget class="QLineEdit" name="lineEdit_4"/>
</item>
<item row="10" column="0">
<widget class="QLabel" name="label_11">
<item row="0" column="0" colspan="3">
<widget class="TogglePushButton" name="pushButton_3">
<property name="text">
<string>全局均方差</string>
<string>暂停统计</string>
</property>
</widget>
</item>
<item row="10" column="1">
<widget class="QLineEdit" name="lineEdit_8"/>
<item row="6" column="2">
<widget class="QPushButton" name="pushButton_5">
<property name="text">
<string>取消标记</string>
</property>
</widget>
</item>
<item row="11" column="0" colspan="2">
<widget class="QTextBrowser" name="textBrowser">
<property name="maximumSize">
<size>
<width>400</width>
<height>16777215</height>
</size>
<item row="12" column="0">
<widget class="QLabel" name="label_9">
<property name="text">
<string>溢出点数</string>
</property>
</widget>
</item>
<item row="7" column="0">
<widget class="QPushButton" name="pushButton_6">
<property name="text">
<string>打开盲元替换</string>
</property>
</widget>
</item>
<item row="7" column="2">
<widget class="QPushButton" name="pushButton_7">
<property name="text">
<string>关闭替换</string>
</property>
</widget>
</item>
<item row="8" column="0">
<widget class="QPushButton" name="pushButton_8">
<property name="text">
<string>输出盲元表</string>
</property>
</widget>
</item>

12
multipoint.cpp

@ -15,6 +15,7 @@ MultiPoint::MultiPoint(QObject *parent) @@ -15,6 +15,7 @@ MultiPoint::MultiPoint(QObject *parent)
n_save = 0;
stagecount =0;
ittime = 5;
enable = false;
}
void MultiPoint::saveData(cv::Mat img)
@ -123,6 +124,7 @@ void MultiPoint::calcData(QVector<double> vct) @@ -123,6 +124,7 @@ void MultiPoint::calcData(QVector<double> vct)
ready = true;
enable = true;
}
@ -131,7 +133,7 @@ void MultiPoint::runData(cv::Mat img) @@ -131,7 +133,7 @@ void MultiPoint::runData(cv::Mat img)
if(b_save)
meanmat(img);
if(ready){
if(ready && enable){
cv::Mat dst(img.rows,img.cols,img.type());
@ -209,7 +211,7 @@ void MultiPoint::loaddata() @@ -209,7 +211,7 @@ void MultiPoint::loaddata()
{
QDir d;
qDebug()<<__FILE__<<__LINE__<<deviceid<<ittime;
if(!d.exists("datas/"+deviceid) || deviceid=="." || deviceid==".." || deviceid==""){
emit signalLog( u8"没有这个设备号的数据");
ready = false;
@ -238,13 +240,13 @@ void MultiPoint::loaddata() @@ -238,13 +240,13 @@ void MultiPoint::loaddata()
memcpy(bstages,data.data()+2*sizeof(double)*rows*cols*(stagecount+1),sizeof(double)*(stagecount+1));
qDebug()<<"stagecount"<<stagecount;
// qDebug()<<"stagecount"<<stagecount;
ready = true;
}
void MultiPoint::off()
{
ready= false;
enable = false;
}
void MultiPoint::setparas(int _row, int _col)
@ -256,11 +258,13 @@ void MultiPoint::setparas(int _row, int _col) @@ -256,11 +258,13 @@ void MultiPoint::setparas(int _row, int _col)
void MultiPoint::setdevice(QString id)
{
deviceid = id;
if(enable)
loaddata();
}
void MultiPoint::setit(double it)
{
ittime = it;
if(enable)
loaddata();
}

2
multipoint.h

@ -16,6 +16,7 @@ class MultiPoint : public QObject @@ -16,6 +16,7 @@ class MultiPoint : public QObject
public:
explicit MultiPoint(QObject *parent = nullptr);
bool enable;
public slots:
void saveData(cv::Mat );
@ -71,6 +72,7 @@ private: @@ -71,6 +72,7 @@ private:
double ittime;
};
#endif // MULTIPOINT_H

530
translations/zxrcClient.ts

@ -0,0 +1,530 @@ @@ -0,0 +1,530 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.1" language="en_US" sourcelanguage="zh_CN">
<context>
<name>MainWindow</name>
<message>
<location filename="../mainwindow.ui" line="14"/>
<source>MainWindow</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.ui" line="79"/>
<source>TextLabel</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.ui" line="101"/>
<source></source>
<translation type="unfinished">Pause Statistics</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="111"/>
<source></source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.ui" line="121"/>
<source></source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.ui" line="131"/>
<source></source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.ui" line="141"/>
<source></source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.ui" line="158"/>
<source></source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.ui" line="168"/>
<source></source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.ui" line="178"/>
<source></source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.ui" line="188"/>
<source></source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.ui" line="225"/>
<source> </source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.ui" line="232"/>
<source> </source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.ui" line="239"/>
<source></source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.ui" line="246"/>
<source></source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.ui" line="255"/>
<source>toolBar</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>devicelist</name>
<message>
<location filename="../devicelist.ui" line="14"/>
<source>Dialog</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>idpath</name>
<message>
<location filename="../idpath.ui" line="14"/>
<source></source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>menu1</name>
<message>
<location filename="../menu1.ui" line="14"/>
<source>Form</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../menu1.ui" line="20"/>
<source>TEC</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../menu1.ui" line="27"/>
<source>14Bit</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../menu1.ui" line="34"/>
<source>K值</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../menu1.ui" line="51"/>
<source>GPOL(mv)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../menu1.ui" line="71"/>
<source></source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../menu1.ui" line="78"/>
<source></source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../menu1.ui" line="85"/>
<source>(ms)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../menu1.ui" line="92"/>
<source>K值</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../menu1.ui" line="99"/>
<source></source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../menu1.ui" line="106"/>
<source>B值</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../menu1.ui" line="113"/>
<source>K值</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../menu1.ui" line="120"/>
<source>K值</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../menu1.ui" line="127"/>
<source>B值</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../menu1.ui" line="134"/>
<source>B值</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>menu2</name>
<message>
<location filename="../menu2.ui" line="14"/>
<source>Form</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../menu2.ui" line="20"/>
<source></source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../menu2.ui" line="27"/>
<source>DDE增益</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../menu2.ui" line="44"/>
<source></source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../menu2.ui" line="61"/>
<source></source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../menu2.ui" line="68"/>
<source></source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../menu2.ui" line="75"/>
<source></source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../menu2.ui" line="95"/>
<source></source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../menu2.ui" line="109"/>
<source></source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>menu3</name>
<message>
<location filename="../menu3.ui" line="14"/>
<source>Form</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../menu3.ui" line="20"/>
<source></source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../menu3.ui" line="26"/>
<source></source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../menu3.ui" line="33"/>
<source></source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../menu3.ui" line="40"/>
<source>90°</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../menu3.ui" line="47"/>
<source></source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../menu3.ui" line="57"/>
<source>90°</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../menu3.ui" line="67"/>
<source></source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../menu3.ui" line="73"/>
<source></source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../menu3.ui" line="83"/>
<source></source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../menu3.ui" line="93"/>
<source></source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>menu4</name>
<message>
<location filename="../menu4.ui" line="14"/>
<source>Form</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../menu4.ui" line="33"/>
<source></source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../menu4.ui" line="40"/>
<source></source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../menu4.ui" line="47"/>
<source></source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../menu4.ui" line="54"/>
<source></source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../menu4.ui" line="61"/>
<source></source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../menu4.ui" line="68"/>
<source></source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>menu5</name>
<message>
<location filename="../menu5.ui" line="14"/>
<source>Form</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../menu5.ui" line="20"/>
<source></source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../menu5.ui" line="27"/>
<source>32</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../menu5.ui" line="34"/>
<source></source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../menu5.ui" line="41"/>
<source></source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../menu5.ui" line="55"/>
<source></source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../menu5.ui" line="60"/>
<source></source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../menu5.ui" line="68"/>
<source></source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../menu5.ui" line="75"/>
<source></source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>menu5_1</name>
<message>
<location filename="../menu5_1.ui" line="14"/>
<source>Form</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../menu5_1.ui" line="20"/>
<source></source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../menu5_1.ui" line="27"/>
<source></source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../menu5_1.ui" line="34"/>
<source></source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../menu5_1.ui" line="53"/>
<source>1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../menu5_1.ui" line="60"/>
<source>2</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../menu5_1.ui" line="67"/>
<source>3</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../menu5_1.ui" line="74"/>
<source>4</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../menu5_1.ui" line="81"/>
<source>5</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../menu5_1.ui" line="90"/>
<source></source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../menu5_1.ui" line="97"/>
<source></source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../menu5_1.ui" line="104"/>
<source></source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../menu5_1.ui" line="111"/>
<source></source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>menu6</name>
<message>
<location filename="../menu6.ui" line="14"/>
<source>Form</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../menu6.ui" line="20"/>
<source></source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../menu6.ui" line="34"/>
<source></source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../menu6.ui" line="44"/>
<source></source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../menu6.ui" line="61"/>
<source></source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../menu6.ui" line="68"/>
<source>GroupBox</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../menu6.ui" line="74"/>
<source></source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../menu6.ui" line="81"/>
<source></source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>passwd</name>
<message>
<location filename="../passwd.ui" line="14"/>
<source></source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../passwd.ui" line="20"/>
<source></source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../passwd.ui" line="34"/>
<source></source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../passwd.ui" line="41"/>
<source></source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>player</name>
<message>
<location filename="../player.ui" line="14"/>
<source>MainWindow</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../player.ui" line="21"/>
<source>TextLabel</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../player.ui" line="32"/>
<source></source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../player.ui" line="42"/>
<source></source>
<translation type="unfinished"></translation>
</message>
</context>
</TS>

1
uCIrQg.json

@ -0,0 +1 @@ @@ -0,0 +1 @@
[{"excluded":[],"includePaths":["C:/Qt/5.15.2/winrt_x64_msvc2019/include","C:/Qt/5.15.2/winrt_x64_msvc2019/include/QtGui","C:/Qt/5.15.2/winrt_x64_msvc2019/include/QtANGLE","C:/Qt/5.15.2/winrt_x64_msvc2019/include/QtCore","D:/WorkSpace/zxrcClientNew/zxrcClient"],"projectFile":"D:/WorkSpace/zxrcClientNew/zxrcClient/zxrcClient.pro","sources":["D:/WorkSpace/zxrcClientNew/zxrcClient/datathread.cpp","D:/WorkSpace/zxrcClientNew/zxrcClient/datathread.h","D:/WorkSpace/zxrcClientNew/zxrcClient/devicelist.cpp","D:/WorkSpace/zxrcClientNew/zxrcClient/devicelist.h","D:/WorkSpace/zxrcClientNew/zxrcClient/devicelist.ui","D:/WorkSpace/zxrcClientNew/zxrcClient/idpath.cpp","D:/WorkSpace/zxrcClientNew/zxrcClient/idpath.h","D:/WorkSpace/zxrcClientNew/zxrcClient/idpath.ui","D:/WorkSpace/zxrcClientNew/zxrcClient/main.cpp","D:/WorkSpace/zxrcClientNew/zxrcClient/mainwindow.cpp","D:/WorkSpace/zxrcClientNew/zxrcClient/mainwindow.h","D:/WorkSpace/zxrcClientNew/zxrcClient/mainwindow.ui","D:/WorkSpace/zxrcClientNew/zxrcClient/menu1.cpp","D:/WorkSpace/zxrcClientNew/zxrcClient/menu1.h","D:/WorkSpace/zxrcClientNew/zxrcClient/menu1.ui","D:/WorkSpace/zxrcClientNew/zxrcClient/menu2.cpp","D:/WorkSpace/zxrcClientNew/zxrcClient/menu2.h","D:/WorkSpace/zxrcClientNew/zxrcClient/menu2.ui","D:/WorkSpace/zxrcClientNew/zxrcClient/menu3.cpp","D:/WorkSpace/zxrcClientNew/zxrcClient/menu3.h","D:/WorkSpace/zxrcClientNew/zxrcClient/menu3.ui","D:/WorkSpace/zxrcClientNew/zxrcClient/menu4.cpp","D:/WorkSpace/zxrcClientNew/zxrcClient/menu4.h","D:/WorkSpace/zxrcClientNew/zxrcClient/menu4.ui","D:/WorkSpace/zxrcClientNew/zxrcClient/menu5.cpp","D:/WorkSpace/zxrcClientNew/zxrcClient/menu5.h","D:/WorkSpace/zxrcClientNew/zxrcClient/menu5.ui","D:/WorkSpace/zxrcClientNew/zxrcClient/menu5_1.cpp","D:/WorkSpace/zxrcClientNew/zxrcClient/menu5_1.h","D:/WorkSpace/zxrcClientNew/zxrcClient/menu5_1.ui","D:/WorkSpace/zxrcClientNew/zxrcClient/menu6.cpp","D:/WorkSpace/zxrcClientNew/zxrcClient/menu6.h","D:/WorkSpace/zxrcClientNew/zxrcClient/menu6.ui","D:/WorkSpace/zxrcClientNew/zxrcClient/multipoint.cpp","D:/WorkSpace/zxrcClientNew/zxrcClient/multipoint.h","D:/WorkSpace/zxrcClientNew/zxrcClient/passwd.cpp","D:/WorkSpace/zxrcClientNew/zxrcClient/passwd.h","D:/WorkSpace/zxrcClientNew/zxrcClient/passwd.ui","D:/WorkSpace/zxrcClientNew/zxrcClient/player.cpp","D:/WorkSpace/zxrcClientNew/zxrcClient/player.h","D:/WorkSpace/zxrcClientNew/zxrcClient/player.ui","D:/WorkSpace/zxrcClientNew/zxrcClient/usbcontrol.cpp","D:/WorkSpace/zxrcClientNew/zxrcClient/usbcontrol.h","D:/WorkSpace/zxrcClientNew/zxrcClient/usbthread.cpp","D:/WorkSpace/zxrcClientNew/zxrcClient/usbthread.h"]}]

13
zxrcClient.pro

@ -0,0 +1,13 @@ @@ -0,0 +1,13 @@
QT += core gui
SOURCES += main.cpp mainwindow.cpp menu1.cpp menu2.cpp menu3.cpp menu4.cpp menu5.cpp menu5_1.cpp menu6.cpp usbcontrol.cpp usbthread.cpp datathread.cpp multipoint.cpp idpath.cpp player.cpp passwd.cpp devicelist.cpp
HEADERS += mainwindow.h menu1.h menu2.h menu3.h menu4.h menu5.h menu5_1.h menu6.h usbcontrol.h usbthread.h datathread.h multipoint.h idpath.h player.h passwd.h devicelist.h
HEADERS += mainwindow.ui menu1.ui menu2.ui menu3.ui menu4.ui menu5.ui menu5_1.ui menu6.ui idpath.ui player.ui passwd.ui devicelist.ui
TARGET = zxrcClient
TEMPLATE = app
CONFIG += c++11

BIN
多点校正(下位机中实现).docx

Binary file not shown.

BIN
多点校正使用说明.docx

Binary file not shown.
Loading…
Cancel
Save