You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Cigarette/Cigarette/dialogsetup.cpp

697 lines
23 KiB
C++

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

#include "dialogsetup.hpp"
#include <qprocess.h>
#include <thread>
#include <qmessagebox.h>
#include <QCryptographicHash>
#include <QIntValidator>
#include "common.h"
#include <iostream>
#include <fstream>
#include <QFileDialog>
#include <QInputDialog>
#include "basecamera.h"
#include <windows.h> //用于显示桌面
#include <shldisp.h> //用于显示桌面
#include <QThread>
#include "Cleanthread.h"
extern SysConf g_sys_conf; //系统配置参数
extern QString g_admin_pswd; //管理员密码
extern QString g_op_pswd; //操作员密码
void task_osk()
{
system("start /b C:\\Windows\\system32\\osk.exe");
}
DialogSetup::DialogSetup(QWidget * parent) : QDialog(parent) {
ui.setupUi(this);
InitPtrMat();
//this->setWindowFlags(Qt::FramelessWindowHint);//窗口可移动
for(int i=0;i<NumberOfSupportedCameras;i++)
{
lineEdit_expo_mat[i]->setValidator(new QIntValidator(0, 1000000, this));
lineEdit_expo_mat[i]->setText(QString::number(g_sys_conf.expo[i]));
lineEdit_gain_mat[i]->setValidator(new QIntValidator(0, 64, this));
lineEdit_gain_mat[i]->setText(QString::number(g_sys_conf.gain[i]));
lineEdit_filter_mat[i]->setValidator(new QIntValidator(0, 1000000, this));
lineEdit_filter_mat[i]->setText(QString::number(g_sys_conf.filter[i]));
}
if (g_sys_conf.auto_open == 1)
{
ui.checkBox_auto_open->setChecked(true);
}
else {
ui.checkBox_auto_open->setChecked(false);
}
if (g_sys_conf.auto_work == 1)
{
ui.checkBox_auto_work->setChecked(true);
}
else {
ui.checkBox_auto_work->setChecked(false);
}
if (!g_sys_conf.path_model.isEmpty()) {
// 如果曾经选择过模型文件夹
// 查看dir_path路径下文件夹详情
QDir* dirinfo = new QDir(g_sys_conf.path_model);
if (!dirinfo->exists())
delete dirinfo, dirinfo = nullptr;
dirinfo->setNameFilters(QStringList("*.weights")); // 设置过滤器
QStringList fileList = dirinfo->entryList(QDir::Files);
fileList.removeOne(".");
fileList.removeOne("..");
ui.comboBox->clear();
ui.comboBox->addItems(fileList);
if (!g_sys_conf.model_name.isEmpty()) {
// 如果曾选择过模型则在comboBox显示选择模型的文件名
ui.comboBox->setCurrentText(g_sys_conf.model_name);
}
// 更换模型事件
connect(ui.comboBox, SIGNAL(currentIndexChanged(int)), this, SLOT(onComboBoxSelect(int)));
delete dirinfo, dirinfo = nullptr;
}
else {
// 如果未曾选择过模型文件夹
if (!g_sys_conf.model_name.isEmpty()) {
// 如果曾经选择过模型文件
ui.comboBox->addItem(g_sys_conf.model_name);
}
}
switch (g_sys_conf.save)
{
case 0:
ui.radioButton_none->setChecked(true);
break;
case 1:
ui.radioButton_ng->setChecked(true);
break;
case 2:
ui.radioButton_all->setChecked(true);
break;
default:
break;
}
//
#ifndef __DEBUG
ui.pushButton_testimg->setVisible(false);
ui.pushButton_testimgs->setVisible(false);
#endif
}
DialogSetup::~DialogSetup() {
}
void DialogSetup::onComboBoxSelect(int index) {
// 获取comboBox当前内容
QString ct = ui.comboBox->currentText();
/// QMessageBox::information(this, QStringLiteral("提示"), QStringLiteral("您选择的项为")+ct, NULL);
// 保存到配置文件中
g_sys_conf.model_name = ct;
}
void DialogSetup::on_toolButton_keyboard_released()
{
std::thread osk_thread = std::thread(task_osk);
osk_thread.detach();
}
void DialogSetup::on_pushButton_exit_released()
{
if (QMessageBox::Yes == QMessageBox::critical(NULL, QStringLiteral("退出系统"), QStringLiteral("确定退出系统?"), QMessageBox::Yes | QMessageBox::No, QMessageBox::Yes))
{
emit system_exit();
this->close();
}
}
void DialogSetup::on_pushButton_desktop_released()
{
CoInitialize(0);
IShellDispatch4 * pdisp = NULL;
CoCreateInstance(CLSID_Shell, NULL, CLSCTX_ALL, __uuidof(IShellDispatch4), (void **)&pdisp);
pdisp->ToggleDesktop(); // 这句是用来切换桌面的
pdisp->Release();
CoUninitialize();
}
void DialogSetup::on_pushButton_expo_released()
{
for(int i=0;i<NumberOfSupportedCameras;i++)
{
g_sys_conf.expo[i] = (lineEdit_expo_mat[i]->text()).toInt();
g_sys_conf.gain[i] = (lineEdit_gain_mat[i]->text()).toInt();
}
QMessageBox::information(NULL, QStringLiteral("提示"), QStringLiteral("设置成功"), QMessageBox::Ok);
}
void DialogSetup::on_checkBox_auto_open_clicked(bool checked)
{
if (checked)
{
g_sys_conf.auto_open = 1;
}
else
{
g_sys_conf.auto_open = 0;
}
}
void DialogSetup::on_checkBox_auto_work_clicked(bool checked)
{
if (checked)
{
g_sys_conf.auto_work = 1;
}
else
{
g_sys_conf.auto_work = 0;
}
}
void DialogSetup::on_pushButton_filter_released()
{
for(int i=0;i<NumberOfSupportedCameras;i++)
{
g_sys_conf.filter[i] = (lineEdit_filter_mat[i]->text()).toInt();
}
QMessageBox::information(NULL, QStringLiteral("提示"), QStringLiteral("设置成功"), QMessageBox::Ok);
}
void DialogSetup::on_pushButton_image_released()
{
if (ui.radioButton_none->isChecked())
{
g_sys_conf.save = 0;
}
if (ui.radioButton_ng->isChecked())
{
g_sys_conf.save = 1;
}
if (ui.radioButton_all->isChecked())
{
g_sys_conf.save = 2;
}
QMessageBox::information(NULL, QStringLiteral("提示"), QStringLiteral("设置成功"), QMessageBox::Ok);
}
void DialogSetup::on_pushButton_pswd_released()
{
QString md5Str = QCryptographicHash::hash((ui.lineEdit_old->text()).toLatin1(), QCryptographicHash::Md5).toHex();
if (md5Str.compare(g_admin_pswd, Qt::CaseInsensitive) == 0)
{
QString pswd_new = ui.lineEdit_new->text();
QString pswd_confirm = ui.lineEdit_confirm->text();
if (pswd_new.compare(pswd_confirm, Qt::CaseInsensitive) == 0)
{
g_admin_pswd = QCryptographicHash::hash(pswd_new.toLatin1(), QCryptographicHash::Md5).toHex();
write_pswd();
QMessageBox::information(NULL, QStringLiteral("提示"), QStringLiteral("管理员密码修改成功"), QMessageBox::Ok);
}
else {
QMessageBox::information(NULL, QStringLiteral("提示消息"), QStringLiteral("新密码两次输入不一致,请重新输入"), QMessageBox::Ok);
}
}
else {
QMessageBox::information(NULL, QStringLiteral("提示消息"), QStringLiteral("原密码错误,请重新输入"), QMessageBox::Ok);
}
}
void DialogSetup::on_pushButton_pswd_op_released()
{
QString md5Str = QCryptographicHash::hash((ui.lineEdit_old_op->text()).toLatin1(), QCryptographicHash::Md5).toHex();
if (md5Str.compare(g_op_pswd, Qt::CaseInsensitive) == 0)
{
QString pswd_new = ui.lineEdit_new_op->text();
QString pswd_confirm = ui.lineEdit_confirm_op->text();
if (pswd_new.compare(pswd_confirm, Qt::CaseInsensitive) == 0)
{
g_op_pswd = QCryptographicHash::hash(pswd_new.toLatin1(), QCryptographicHash::Md5).toHex();
write_pswd_op();
QMessageBox::information(NULL, QStringLiteral("提示"), QStringLiteral("操作员密码修改成功"), QMessageBox::Ok);
}
else {
QMessageBox::information(NULL, QStringLiteral("提示消息"), QStringLiteral("新密码两次输入不一致,请重新输入"), QMessageBox::Ok);
}
}
else {
QMessageBox::information(NULL, QStringLiteral("提示消息"), QStringLiteral("原密码错误,请重新输入"), QMessageBox::Ok);
}
}
void DialogSetup::on_pushButton_save_released()
{
//存图设置
if (ui.radioButton_none->isChecked())
{
g_sys_conf.save = 0;
}
if (ui.radioButton_ng->isChecked())
{
g_sys_conf.save = 1;
}
if (ui.radioButton_all->isChecked())
{
g_sys_conf.save = 2;
}
for(int i=0;i<NumberOfSupportedCameras;i++)
{
g_sys_conf.expo[i] = (lineEdit_expo_mat[i]->text()).toInt();
g_sys_conf.gain[i] = (lineEdit_gain_mat[i]->text()).toInt();
g_sys_conf.filter[i] = (lineEdit_filter_mat[i]->text()).toInt();
}
write_config();
QMessageBox::information(NULL, QStringLiteral("提示"), QStringLiteral("保存参数成功,部分配置需要重启程序后生效"), QMessageBox::Ok);
}
void DialogSetup::on_pushButton_close_released()
{
this->close();
}
void DialogSetup::on_pushButton_clear_pic_released()
{
QThread* handleThread = new QThread();
CleanWorkThread* cleanWorkThread = new CleanWorkThread();
cleanWorkThread->moveToThread(handleThread);
connect(handleThread, &QThread::started, cleanWorkThread, &CleanWorkThread::startWork);
connect(cleanWorkThread, &CleanWorkThread::workStart, cleanWorkThread, &CleanWorkThread::setSel);
connect(cleanWorkThread, &CleanWorkThread::workFinished, cleanWorkThread, &CleanWorkThread::deleteLater);
connect(cleanWorkThread, &CleanWorkThread::destroyed, handleThread, &QThread::quit);
connect(handleThread, &QThread::finished, handleThread, &QThread::deleteLater);
handleThread->start();
}
void DialogSetup::on_toolButton_choose_path_released() {
// 点击浏览文件按钮后触发的事件
QString dirName = QFileDialog::getExistingDirectory(this, QStringLiteral("请选择模型所在文件夹"), "./");
//std::cout << "dirName is " << dirName.toStdString().c_str() << std::endl;
//std::cout << "g_sys_conf.dir_path is " << g_sys_conf.dir_path.toStdString().c_str() << std::endl;
//std::cout << "g_sys_conf.model_name is " << g_sys_conf.model_name.toStdString().c_str() << std::endl;
if (dirName.isEmpty()) {
dirName = g_sys_conf.path_model;
ui.comboBox->setCurrentText(g_sys_conf.model_name);
return;
}
QDir* dirinfo = new QDir(dirName);
if (!dirinfo->exists()) {
delete dirinfo, dirinfo = nullptr;
}
dirinfo->setNameFilters(QStringList("*.weights"));
QStringList fileList = dirinfo->entryList(QDir::Files);
if (fileList.count() == 0)
g_sys_conf.path_model = "D:/model";
else
g_sys_conf.path_model = dirName;
fileList.removeOne(".");
fileList.removeOne("..");
ui.comboBox->clear();
ui.comboBox->addItems(fileList);
delete dirinfo, dirinfo = nullptr;
}
void DialogSetup::on_toolButton_choose_path_jpg_released() {
QString JpgPath = QFileDialog::getOpenFileName(this, "选择jpg文件", "/", "jpg files(*.jpg)");
if (JpgPath.isEmpty()) {
return;
}
else {
if (ui.comboBox_2->findText(JpgPath) == -1) {
ui.comboBox_2->addItem(JpgPath); // 在comboBox中显示文件路径
g_sys_conf.path_jpg = JpgPath; // 将选择的路径写入conf配置文件中
}
}
}
void DialogSetup::write_pswd()
{
std::fstream cfg_file;
cfg_file.open("D:/Release/pswd.txt", std::ios::out | std::ios::trunc);
if (cfg_file.good())
{
char buf[256];
memset(buf, 0, 256);
sprintf(buf, "%s", g_admin_pswd.toStdString().c_str());
cfg_file.write(buf, strlen(buf));
}
cfg_file.close();
}
void DialogSetup::write_pswd_op()
{
std::fstream cfg_file;
cfg_file.open("D:/Release/pswd_op.txt", std::ios::out | std::ios::trunc);
if (cfg_file.good())
{
char buf[256];
memset(buf, 0, 256);
sprintf(buf, "%s", g_op_pswd.toStdString().c_str());
cfg_file.write(buf, strlen(buf));
}
cfg_file.close();
}
void DialogSetup::write_config()
{
std::fstream cfg_file;
cfg_file.open("D:/conf/conf.txt", std::ios::out | std::ios::trunc);
if (cfg_file.good())
{
char buf[256];
memset(buf, 0, 256);
sprintf(buf, "SAVE=%d\n", g_sys_conf.save);
cfg_file.write(buf, strlen(buf));
memset(buf, 0, 256);
sprintf(buf, "MISMATCHACT=%d\n", g_sys_conf.MisMatchAct);
cfg_file.write(buf, strlen(buf));
memset(buf, 0, 256);///
sprintf(buf, "SAVE_DAYS=%d\n", g_sys_conf.save_days);
cfg_file.write(buf, strlen(buf));
memset(buf, 0, 256);///
sprintf(buf, "FREESIZE=%d\n", g_sys_conf.freesize);
cfg_file.write(buf, strlen(buf));
memset(buf, 0, 256);///
sprintf(buf, "ComPort=%s\n", g_sys_conf.ComPort);
cfg_file.write(buf, strlen(buf));
memset(buf, 0, 256);///
sprintf(buf, "CONFTHRESHOLD=%d\n", g_sys_conf.ConfThreshold);
cfg_file.write(buf, strlen(buf));
memset(buf, 0, 256);
sprintf(buf, "AUTO_OPEN=%d\n", g_sys_conf.auto_open);
cfg_file.write(buf, strlen(buf));
memset(buf, 0, 256);
sprintf(buf, "AUTO_WORK=%d\n", g_sys_conf.auto_work);
cfg_file.write(buf, strlen(buf));
memset(buf, 0, 256);
sprintf(buf, "AUTO_SHIFT=%d\n", g_sys_conf.auto_shift);
cfg_file.write(buf, strlen(buf));
memset(buf, 0, 256);
sprintf(buf, "TIMING_SHIFT=%d\n", g_sys_conf.timing_shift);
cfg_file.write(buf, strlen(buf));
memset(buf, 0, 256);
sprintf(buf, "SHIFT_BYHAND=%d\n", g_sys_conf.shift_byhand);
cfg_file.write(buf, strlen(buf));
memset(buf, 0, 256);
sprintf(buf, "SHIFT_A=%d|%d\n", g_sys_conf.shiftA.hour(), g_sys_conf.shiftA.minute());
cfg_file.write(buf, strlen(buf));
memset(buf, 0, 256);
sprintf(buf, "SHIFT_B=%d|%d\n", g_sys_conf.shiftB.hour(), g_sys_conf.shiftB.minute());
cfg_file.write(buf, strlen(buf));
memset(buf, 0, 256);
sprintf(buf, "SHIFT_C=%d|%d\n", g_sys_conf.shiftC.hour(), g_sys_conf.shiftC.minute());
cfg_file.write(buf, strlen(buf));
memset(buf, 0, 256);
sprintf(buf, "LOCATION=%s\n", g_sys_conf.location.toStdString().c_str());
cfg_file.write(buf, strlen(buf));
memset(buf, 0, 256);
sprintf(buf, "MODELPATH=%s\n", g_sys_conf.path_model.toStdString().c_str());
cfg_file.write(buf, strlen(buf));
memset(buf, 0, 256);
sprintf(buf, "MODELNAME=%s\n", g_sys_conf.model_name.toStdString().c_str());
cfg_file.write(buf, strlen(buf));
memset(buf, 0, 256);
sprintf(buf, "JPGPATH=%s\n", g_sys_conf.path_jpg.toStdString().c_str());
cfg_file.write(buf, strlen(buf));
memset(buf, 0, 256);
sprintf(buf, "*****************************************\n");
cfg_file.write(buf, strlen(buf));
#if defined(NumberOfSupportedCameras) && (NumberOfSupportedCameras>0)
memset(buf, 0, 256);
sprintf(buf, "EXPO1=%d\n", g_sys_conf.expo[0]);
cfg_file.write(buf, strlen(buf));
memset(buf, 0, 256);
sprintf(buf, "GAIN1=%d\n", g_sys_conf.gain[0]);
cfg_file.write(buf, strlen(buf));
sprintf(buf, "FILTER1=%d\n", g_sys_conf.filter[0]);
cfg_file.write(buf, strlen(buf));
memset(buf, 0, 256);
sprintf(buf, "USERID1=%d\n", g_sys_conf.UserID[0]);
cfg_file.write(buf, strlen(buf));
memset(buf, 0, 256);
sprintf(buf, "NO1=%d|%d|%d\n", g_sys_conf.no[0][0],g_sys_conf.no[0][1],g_sys_conf.no[0][2]);
cfg_file.write(buf, strlen(buf));
memset(buf, 0, 256);
sprintf(buf, "SHOOT1=%d\n", g_sys_conf.shoot[0]);
cfg_file.write(buf, strlen(buf));
memset(buf, 0, 256);
sprintf(buf, "*****************************************\n");
cfg_file.write(buf, strlen(buf));
#endif
#if defined(NumberOfSupportedCameras) && (NumberOfSupportedCameras>1)
memset(buf, 0, 256);
sprintf(buf, "EXPO2=%d\n", g_sys_conf.expo[1]);
cfg_file.write(buf, strlen(buf));
memset(buf, 0, 256);
sprintf(buf, "GAIN2=%d\n", g_sys_conf.gain[1]);
cfg_file.write(buf, strlen(buf));
memset(buf, 0, 256);
sprintf(buf, "FILTER2=%d\n", g_sys_conf.filter[1]);
cfg_file.write(buf, strlen(buf));
sprintf(buf, "USERID2=%d\n", g_sys_conf.UserID[1]);
cfg_file.write(buf, strlen(buf));
memset(buf, 0, 256);
sprintf(buf, "NO2=%d|%d|%d\n", g_sys_conf.no[1][0],g_sys_conf.no[1][1],g_sys_conf.no[1][2]);
cfg_file.write(buf, strlen(buf));
memset(buf, 0, 256);
sprintf(buf, "SHOOT2=%d\n", g_sys_conf.shoot[1]);
cfg_file.write(buf, strlen(buf));
memset(buf, 0, 256);
sprintf(buf, "*****************************************\n");
cfg_file.write(buf, strlen(buf));
#endif
#if defined(NumberOfSupportedCameras) && (NumberOfSupportedCameras>2)
memset(buf, 0, 256);
sprintf(buf, "EXPO3=%d\n", g_sys_conf.expo[2]);
cfg_file.write(buf, strlen(buf));
memset(buf, 0, 256);
sprintf(buf, "GAIN3=%d\n", g_sys_conf.gain[2]);
cfg_file.write(buf, strlen(buf));
memset(buf, 0, 256);
sprintf(buf, "FILTER3=%d\n", g_sys_conf.filter[2]);
cfg_file.write(buf, strlen(buf));
sprintf(buf, "USERID3=%d\n", g_sys_conf.UserID[2]);
cfg_file.write(buf, strlen(buf));
memset(buf, 0, 256);
sprintf(buf, "NO3=%d|%d|%d\n", g_sys_conf.no[2][0],g_sys_conf.no[2][1],g_sys_conf.no[2][2]);
cfg_file.write(buf, strlen(buf));
memset(buf, 0, 256);
sprintf(buf, "SHOOT3=%d\n", g_sys_conf.shoot[2]);
cfg_file.write(buf, strlen(buf));
memset(buf, 0, 256);
sprintf(buf, "*****************************************\n");
cfg_file.write(buf, strlen(buf));
#endif
#if defined(NumberOfSupportedCameras) && (NumberOfSupportedCameras>3)
memset(buf, 0, 256);
sprintf(buf, "EXPO4=%d\n", g_sys_conf.expo[3]);
cfg_file.write(buf, strlen(buf));
memset(buf, 0, 256);
sprintf(buf, "GAIN4=%d\n", g_sys_conf.gain[3]);
cfg_file.write(buf, strlen(buf));
memset(buf, 0, 256);
sprintf(buf, "FILTER4=%d\n", g_sys_conf.filter[3]);
cfg_file.write(buf, strlen(buf));
sprintf(buf, "USERID4=%d\n", g_sys_conf.UserID[3]);
cfg_file.write(buf, strlen(buf));
memset(buf, 0, 256);
sprintf(buf, "NO4=%d|%d|%d\n", g_sys_conf.no[3][0],g_sys_conf.no[3][1],g_sys_conf.no[3][2]);
cfg_file.write(buf, strlen(buf));
memset(buf, 0, 256);
sprintf(buf, "SHOOT4=%d\n", g_sys_conf.shoot[3]);
cfg_file.write(buf, strlen(buf));
memset(buf, 0, 256);
sprintf(buf, "*****************************************\n");
cfg_file.write(buf, strlen(buf));
#endif
#if defined(NumberOfSupportedCameras) && (NumberOfSupportedCameras>4)
memset(buf, 0, 256);
sprintf(buf, "EXPO5=%d\n", g_sys_conf.expo[4]);
cfg_file.write(buf, strlen(buf));
memset(buf, 0, 256);
sprintf(buf, "GAIN5=%d\n", g_sys_conf.gain[4]);
cfg_file.write(buf, strlen(buf));
sprintf(buf, "FILTER5=%d\n", g_sys_conf.filter[4]);
cfg_file.write(buf, strlen(buf));
memset(buf, 0, 256);
sprintf(buf, "USERID5=%d\n", g_sys_conf.UserID[4]);
cfg_file.write(buf, strlen(buf));
memset(buf, 0, 256);
sprintf(buf, "NO5=%d|%d|%d\n", g_sys_conf.no[4][0],g_sys_conf.no[4][1],g_sys_conf.no[4][2]);
cfg_file.write(buf, strlen(buf));
memset(buf, 0, 256);
sprintf(buf, "SHOOT5=%d\n", g_sys_conf.shoot[4]);
cfg_file.write(buf, strlen(buf));
memset(buf, 0, 256);
sprintf(buf, "*****************************************\n");
cfg_file.write(buf, strlen(buf));
#endif
#if defined(NumberOfSupportedCameras) && (NumberOfSupportedCameras>5)
memset(buf, 0, 256);
sprintf(buf, "EXPO6=%d\n", g_sys_conf.expo[5]);
cfg_file.write(buf, strlen(buf));
memset(buf, 0, 256);
sprintf(buf, "GAIN6=%d\n", g_sys_conf.gain[5]);
cfg_file.write(buf, strlen(buf));
memset(buf, 0, 256);
sprintf(buf, "FILTER6=%d\n", g_sys_conf.filter[5]);
cfg_file.write(buf, strlen(buf));
sprintf(buf, "USERID6=%d\n", g_sys_conf.UserID[5]);
cfg_file.write(buf, strlen(buf));
memset(buf, 0, 256);
sprintf(buf, "NO6=%d|%d|%d\n", g_sys_conf.no[5][0],g_sys_conf.no[5][1],g_sys_conf.no[5][2]);
cfg_file.write(buf, strlen(buf));
memset(buf, 0, 256);
sprintf(buf, "SHOOT6=%d\n", g_sys_conf.shoot[5]);
cfg_file.write(buf, strlen(buf));
memset(buf, 0, 256);
sprintf(buf, "*****************************************\n");
cfg_file.write(buf, strlen(buf));
#endif
#if defined(NumberOfSupportedCameras) && (NumberOfSupportedCameras>6)
memset(buf, 0, 256);
sprintf(buf, "EXPO7=%d\n", g_sys_conf.expo[6]);
cfg_file.write(buf, strlen(buf));
memset(buf, 0, 256);
sprintf(buf, "GAIN7=%d\n", g_sys_conf.gain[6]);
cfg_file.write(buf, strlen(buf));
memset(buf, 0, 256);
sprintf(buf, "FILTER7=%d\n", g_sys_conf.filter[6]);
cfg_file.write(buf, strlen(buf));
sprintf(buf, "USERID7=%d\n", g_sys_conf.UserID[6]);
cfg_file.write(buf, strlen(buf));
memset(buf, 0, 256);
sprintf(buf, "NO7=%d|%d|%d\n", g_sys_conf.no[6][0],g_sys_conf.no[6][1],g_sys_conf.no[6][2]);
cfg_file.write(buf, strlen(buf));
memset(buf, 0, 256);
sprintf(buf, "SHOOT7=%d\n", g_sys_conf.shoot[6]);
cfg_file.write(buf, strlen(buf));
memset(buf, 0, 256);
sprintf(buf, "*****************************************\n");
cfg_file.write(buf, strlen(buf));
#endif
#if defined(NumberOfSupportedCameras) && (NumberOfSupportedCameras>7)
memset(buf, 0, 256);
sprintf(buf, "EXPO8=%d\n", g_sys_conf.expo[7]);
cfg_file.write(buf, strlen(buf));
memset(buf, 0, 256);
sprintf(buf, "GAIN8=%d\n", g_sys_conf.gain[7]);
cfg_file.write(buf, strlen(buf));
memset(buf, 0, 256);
sprintf(buf, "FILTER8=%d\n", g_sys_conf.filter[7]);
cfg_file.write(buf, strlen(buf));
sprintf(buf, "USERID8=%d\n", g_sys_conf.UserID[7]);
cfg_file.write(buf, strlen(buf));
memset(buf, 0, 256);
sprintf(buf, "NO8=%d|%d|%d\n", g_sys_conf.no[7][0],g_sys_conf.no[7][1],g_sys_conf.no[7][2]);
cfg_file.write(buf, strlen(buf));
memset(buf, 0, 256);
sprintf(buf, "SHOOT8=%d\n", g_sys_conf.shoot[7]);
cfg_file.write(buf, strlen(buf));
memset(buf, 0, 256);
sprintf(buf, "*****************************************\n");
cfg_file.write(buf, strlen(buf));
#endif
memset(buf, 0, 256);
sprintf(buf, "MonitorIP=%s\n", g_sys_conf.MonitorIP.c_str());
cfg_file.write(buf, strlen(buf));
memset(buf, 0, 256);
cfg_file.write(buf, strlen(buf));
sprintf(buf, "MonitorPort=%d\n", g_sys_conf.MonitorPort);
cfg_file.write(buf, strlen(buf));
}
cfg_file.close();
}
#define InitPtrMatDef(a,b)\
lineEdit_expo_mat[a]=ui.lineEdit_expo_##b; \
lineEdit_gain_mat[a]=ui.lineEdit_gain_##b; \
lineEdit_filter_mat[a]=ui.lineEdit_filter_##b;
void DialogSetup::InitPtrMat()
{
#if defined(NumberOfSupportedCameras) && (NumberOfSupportedCameras>0)
InitPtrMatDef(0, 1);
#endif
#if defined(NumberOfSupportedCameras) && (NumberOfSupportedCameras>1)
InitPtrMatDef(1, 2);
#endif
#if defined(NumberOfSupportedCameras) && (NumberOfSupportedCameras>2)
InitPtrMatDef(2, 3);
#endif
#if defined(NumberOfSupportedCameras) && (NumberOfSupportedCameras>3)
InitPtrMatDef(3, 4);
#endif
#if defined(NumberOfSupportedCameras) && (NumberOfSupportedCameras>4)
InitPtrMatDef(4, 5);
#endif
#if defined(NumberOfSupportedCameras) && (NumberOfSupportedCameras>5)
InitPtrMatDef(5, 6);
#endif
#if defined(NumberOfSupportedCameras) && (NumberOfSupportedCameras>6)
InitPtrMatDef(6, 7);
#endif
#if defined(NumberOfSupportedCameras) && (NumberOfSupportedCameras>7)
InitPtrMatDef(7, 8);
#endif
}
void DialogSetup::on_pushButton_config_released()
{
if (m_camera_glue)delete m_camera_glue;
m_camera_glue = new camera_glue(this);
connect(m_camera_glue, &camera_glue::sendMsgToDialogSetup,this, &DialogSetup::recMsgFromDialogConfig);
connect(this, &DialogSetup::sendMsgToConfig,m_camera_glue, &camera_glue::recMsgFromDialogSetup);
m_camera_glue->show();
m_camera_glue->move(this->geometry().center() - m_camera_glue->rect().center());//移动父窗口中心位置
emit sendMsgToConfig(g_sys_conf.no);
}
void DialogSetup::recMsgFromDialogConfig(int ptr[][3])
{
for(int i=0;i<NumberOfSupportedCameras;i++)
for(int j=0;j<3;j++)
g_sys_conf.no[i][j]=ptr[i][j];
}
void DialogSetup::on_pushButton_change_released()
{
if (m_change_shift)delete m_change_shift;
m_change_shift = new change_shift(this);
connect(m_change_shift, &change_shift::sendMsgToDialogSetup, this, &DialogSetup::recMsgFromChangeShift);
connect(this, &DialogSetup::sendMsgToShift, m_change_shift, &change_shift::recMsgFromDialogSetup);
m_change_shift->show();
m_change_shift->move(this->geometry().center() - m_change_shift->rect().center());
emit sendMsgToShift(g_sys_conf.shiftA, g_sys_conf.shiftB, g_sys_conf.shiftC);
}
void DialogSetup::on_pushButton_statistic_released()
{
if (m_output_statistic)delete m_output_statistic;
m_output_statistic = new output_statistic(this);
connect(this, &DialogSetup::sendMsgToOutput, m_output_statistic, &output_statistic::recMsgFromDialogSetup);
m_output_statistic->show();
m_output_statistic->move(this->geometry().center() - m_output_statistic->rect().center());
emit sendMsgToOutput();
}
void DialogSetup::recMsgFromChangeShift(QTime timeA, QTime timeB, QTime timeC)
{
g_sys_conf.shiftA.setHMS(timeA.hour(), timeA.minute(), 0);
g_sys_conf.shiftB.setHMS(timeB.hour(), timeB.minute(), 0);
g_sys_conf.shiftC.setHMS(timeC.hour(), timeC.minute(), 0);
}
#ifdef __DEBUG
void DialogSetup::on_pushButton_testimg_released()
{
emit _testimg();
}
void DialogSetup::on_pushButton_testimgs_released()
{
emit _testimgs();
}
#endif