Browse Source

update

master
zhaohe 1 year ago
parent
commit
dbea964a23
  1. 1
      CMakeLists.txt
  2. 34
      libzqt/zui/z_reg_table_list_box.cpp
  3. 1
      libzqt/zui/z_reg_table_list_box.hpp
  4. 68
      src/tab/a8k_opt_tab.cpp
  5. 45
      src/tab/a8k_opt_tab.hpp
  6. 2
      src/tab/step_motor_ctrl_tab.cpp

1
CMakeLists.txt

@ -73,6 +73,7 @@ set(PROJECT_SOURCES
src/basic/format_memory.cpp
src/basic/smtp2_constant.cpp
src/basic/a8k_id_card_writer.cpp
src/tab/a8k_opt_tab.cpp
app.rc

34
libzqt/zui/z_reg_table_list_box.cpp

@ -75,7 +75,8 @@ ZRegTableList::ZRegTableList(QWidget *parent, const QString &title) //
// funcBox
{
m_funcBox = new ZQFunctionListBox(this, "", 4);
m_funcBox->newFunc("读全部", {}, [this](int argn, const char **args) { readAll(); });
m_funcBox->newSubButton("读全部", [this](int argn, const char **args) { readAll(); });
m_funcBox->newSubButton("写全部", [this](int argn, const char **args) { writeAll(); });
}
// RegBox
{
@ -105,9 +106,7 @@ ZRegTableList::ZRegTableList(QWidget *parent, const QString &title) //
m_layout->addWidget(m_regBox);
parent->layout()->addWidget(this);
}
void ZRegTableList::addSpacer() {
m_regBoxLayoutL2->addItem(new QSpacerItem(20, 1, QSizePolicy::Minimum, QSizePolicy::Expanding));
}
void ZRegTableList::addSpacer() { m_regBoxLayoutL2->addItem(new QSpacerItem(20, 1, QSizePolicy::Minimum, QSizePolicy::Expanding)); }
void ZRegTableList::addReg(QString title, int addr, uint32_t flag) {
ZRegItem *item = new ZRegItem(m_arWidget, title, addr, flag);
@ -187,6 +186,33 @@ void ZRegTableList::readAll() {
}
}
void ZRegTableList::writeAll() {
ZQUI::ins()->instructionPreviewClear();
for (auto it = m_regMap.begin(); it != m_regMap.end(); it++) {
ZRegItem *item = it.value();
int32_t val;
string outputinfo;
bool readsuc = false;
try {
QString displayval = item->m_val->text();
int32_t val = reformatRegVal(displayval, item->m_flag);
m_writereg_fn(item->m_addr, val);
readsuc = true;
} catch (std::zexception &e) {
ZQUI::ins()->doinui([item]() {
// item->hide();
});
readsuc = false;
}
if (readsuc) {
ZQUI::ins()->ishow("write reg:%-50s(%-8d) :%10d", it.key().toStdString().c_str(), item->m_addr, val);
} else {
ZQUI::ins()->ishow("write reg:%-50s(%-8d) :fail", it.key().toStdString().c_str());
}
}
}
void ZRegTableList::initializeRegOperation(write_reg_func_t write_reg_fn, read_reg_func_t read_reg_fn) {
m_writereg_fn = write_reg_fn;
m_readreg_fn = read_reg_fn;

1
libzqt/zui/z_reg_table_list_box.hpp

@ -134,6 +134,7 @@ class ZRegTableList : public QGroupBox {
private:
void readAll();
void writeAll();
QString formatRegVal(int32_t val, uint32_t flag);
int32_t reformatRegVal(QString valstr, uint32_t flag);
};

68
src/tab/a8k_opt_tab.cpp

@ -0,0 +1,68 @@
#include "a8k_opt_tab.hpp"
#include "iflytop_canbus/iflytop_canbus_master.hpp"
#include "logger.hpp"
#include "qt_serial_datachannel.hpp"
#include "zexception.hpp"
#include "zui/z_function_list_box.hpp"
#include "zui/z_reg_table_list_box.hpp"
#include "zui/zq_vtab_page.hpp"
//
#include <QFileDialog>
#include "../basic/format_memory.hpp"
#include "../basic/stm32_pin.hpp"
#include "./mainwindow.h"
#include "zui\zqui.hpp"
//
using namespace iflytop;
using namespace std;
extern Ui::MainWindow *main_ui;
extern int getDeviceId();
#define EEPROM_MAX_ADD (2 * 1024)
A8kOptTab *A8kOptTab::inst() {
static A8kOptTab *ins = new A8kOptTab();
return ins;
}
// 巴迪泰复位风险
// 1.转盘清空板夹。(因为需要拆设备,只能自动化清理)
// 2.板夹仓推杆推到一半,光学模组拉杆拉到一半。(因为需要拆设备,只能自动化清理)
// 3.脱帽盖帽摇匀处理到一半。(只能人工清理)
//--------------------------------------------------------------------------------------------
//++++++++++++++++++++++++++++++++++++++++
//硬件测试测试
//打开t光学激光(激光增益,扫描增益)
//读即时取扫描结果()
//打开f光学激光(激光增益,扫描增益)
//读即时取扫描结果
//++++++++++++++++++++++++++++++++++++++++
//单独模块测试
//钩爪复位,光学模组复位
//板夹仓-推杆复位,板夹仓-平移复位
//转盘复位
//入板准备
//T光学开始扫描:(激光增益,扫描增益,扫描启动位置,扫描方向,扫描点数)
//F光学开始扫描:(激光增益,扫描增益,扫描启动位置,扫描方向,扫描点数)
//读取扫描结果
//分析存储扫描结果
//丢板
void A8kOptTab::construct(QTabWidget *fathertab) {
}

45
src/tab/a8k_opt_tab.hpp

@ -0,0 +1,45 @@
#pragma once
#include <QDateTime>
#include <QMainWindow>
#include <QMessageBox>
#include <QObject>
#include <QtConcurrent>
#include <QtCore/QVariant>
#include <QtSerialPort/QSerialPort>
#include <QtSerialPort/QSerialPortInfo>
#include <QtWidgets/QAction>
#include <QtWidgets/QApplication>
#include <QtWidgets/QComboBox>
#include <QtWidgets/QFormLayout>
#include <QtWidgets/QGridLayout>
#include <QtWidgets/QGroupBox>
#include <QtWidgets/QHBoxLayout>
#include <QtWidgets/QLabel>
#include <QtWidgets/QLineEdit>
#include <QtWidgets/QMainWindow>
#include <QtWidgets/QMenu>
#include <QtWidgets/QMenuBar>
#include <QtWidgets/QPushButton>
#include <QtWidgets/QSpacerItem>
#include <QtWidgets/QStatusBar>
#include <QtWidgets/QTabWidget>
#include <QtWidgets/QTextBrowser>
#include <QtWidgets/QTextEdit>
#include <QtWidgets/QVBoxLayout>
#include <QtWidgets/QWidget>
//
#include <functional>
namespace iflytop {
using namespace std;
class A8kOptTab {
QTabWidget *m_fathertab;
public:
static A8kOptTab *inst();
void construct(QTabWidget *fathertab);
};
} // namespace iflytop

2
src/tab/step_motor_ctrl_tab.cpp

@ -111,7 +111,7 @@ void StepMotorCtrlTab::construct(QTabWidget *fathertab) {
tableBox->addReg("pos", kreg_step_motor_pos, ZRegItem::krw | ZRegItem::kdec);
tableBox->addReg("dpos", kreg_step_motor_dpos, ZRegItem::krw | ZRegItem::kdec);
tableBox->addReg("shift", kreg_step_motor_shift, ZRegItem::krw | ZRegItem::kdec);
// tableBox->addReg("shift", kreg_step_motor_shift, ZRegItem::krw | ZRegItem::kdec);
tableBox->addReg("shaft", kreg_step_motor_shaft, ZRegItem::krw | ZRegItem::kdec);
tableBox->addReg("one_circle_pulse", kreg_step_motor_one_circle_pulse, ZRegItem::krw | ZRegItem::kdec);
tableBox->addReg("one_circle_pulse_denominator", kreg_step_motor_one_circle_pulse_denominator, ZRegItem::krw | ZRegItem::kdec);

Loading…
Cancel
Save