Browse Source

update

master
zhaohe 1 year ago
parent
commit
d962cec3d9
  1. 3
      .vscode/settings.json
  2. 10
      libzqt/zui/zqui.cpp
  3. 3
      libzqt/zui/zqui.hpp
  4. 43
      src/mainwindow.cpp
  5. 7
      src/mainwindow.h
  6. 108
      src/mainwindow.ui
  7. 2
      src/tab/board_ext_tab.cpp

3
.vscode/settings.json

@ -102,7 +102,8 @@
"qpushbutton": "cpp",
"qspaceritem": "cpp",
"xlocinfo": "cpp",
"xstring": "cpp"
"xstring": "cpp",
"xlocale": "cpp"
},
"files.autoGuessEncoding": false,
}

10
libzqt/zui/zqui.cpp

@ -35,15 +35,7 @@ void ZQUI::reportPreviewShow(const char *fmt, ...) {
if (m_reportPreviewShow) m_reportPreviewShow(text);
}
void ZQUI::blockDataUploadPreviewShow(const char *fmt, ...) {
va_list args;
va_start(args, fmt);
char buf[1024] = {0};
vsnprintf(buf, sizeof(buf), fmt, args);
va_end(args);
QString text(buf);
if (m_blockDataUploadPreviewShow) m_blockDataUploadPreviewShow(text);
}
void ZQUI::rawshow(const char *fmt, ...) {
va_list args;
va_start(args, fmt);

3
libzqt/zui/zqui.hpp

@ -43,7 +43,6 @@ class ZQUI : public QObject {
std::function<void(QString)> m_ishow;
std::function<void(QString)> m_reportPreviewShow;
std::function<void(QString)> m_blockDataUploadPreviewShow;
std::function<void(QString)> m_rawshow;
std::function<void()> m_instructionPreviewClear;
@ -55,13 +54,11 @@ class ZQUI : public QObject {
void ishow(const char *fmt, ...);
void reportPreviewShow(const char *fmt, ...);
void blockDataUploadPreviewShow(const char *fmt, ...);
void rawshow(const char *fmt, ...);
void instructionPreviewClear();
void setishow(std::function<void(QString)> func) { m_ishow = func; }
void setReportPreviewShow(std::function<void(QString)> func) { m_reportPreviewShow = func; }
void setBlockDataUploadPreviewShow(std::function<void(QString)> func) { m_blockDataUploadPreviewShow = func; }
void setrawshow(std::function<void(QString)> func) { m_rawshow = func; }
void setInstructionPreviewClear(std::function<void()> func) { m_instructionPreviewClear = func; }

43
src/mainwindow.cpp

@ -68,8 +68,8 @@ void MainWindow::doinui_slot(QFunction func) {
void MainWindow::ishow(QString text) {
QString info;
info.append(QDateTime::currentDateTime().toString("hh:mm:ss.zzz "));
info.append(" |");
info.append(QDateTime::currentDateTime().toString("hh:mm:ss"));
info.append("|");
info.append(text);
emit doinui_signal(QFunction([this, info]() { ui->instructionPreview->append(info); }));
}
@ -85,18 +85,7 @@ void MainWindow::reportPreviewShow(QString text) {
ui->reportPreview->append(info);
}));
}
void MainWindow::blockDataUploadPreviewShow(QString text) {
QString info;
info.append(QDateTime::currentDateTime().toString("hh:mm:ss.zzz "));
info.append(text);
emit doinui_signal(QFunction([this, info]() {
if (ui->uploadDataPreview->document()->lineCount() > 1000) {
ui->uploadDataPreview->document()->clear();
}
ui->uploadDataPreview->append(info);
}));
}
void MainWindow::rawshow(QString text) {
QString info;
@ -228,7 +217,6 @@ MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWi
qRegisterMetaType<QFunction>("QFunction");
connect(this, SIGNAL(doinui_signal(QFunction)), this, SLOT(doinui_slot(QFunction)));
ZQUI::ins()->initialize();
ZQUI::ins()->setBlockDataUploadPreviewShow([this](QString text) { blockDataUploadPreviewShow(text); });
ZQUI::ins()->setishow([this](QString text) { ishow(text); });
ZQUI::ins()->setReportPreviewShow([this](QString text) { reportPreviewShow(text); });
ZQUI::ins()->setrawshow([this](QString text) { rawshow(text); });
@ -299,6 +287,31 @@ void MainWindow::on_PublicState_DeviceID_textChanged() { PublicState_DeviceIDVal
void MainWindow::on_clearPreview_clicked() {
doinui_signal(QFunction([this]() { ui->instructionPreview->clear(); }));
doinui_signal(QFunction([this]() { ui->reportPreview->clear(); }));
doinui_signal(QFunction([this]() { ui->uploadDataPreview->clear(); }));
doinui_signal(QFunction([this]() { ui->rawDataPreview->clear(); }));
}
void MainWindow::on_dumpFuncListButton_clicked() {
zcr::cmdinfo_t *cmdtable = cmdid_get_table();
ui->instructionPreview->clear();
for (int i = 0; i < cmdid_get_table_size(); i++) {
ZQUI::ins()->ishow("%-50s %d", cmdtable[i].fnname, cmdtable[i].index);
}
}
void MainWindow::on_dumpErrorCodeButton_clicked() {
ui->instructionPreview->clear();
err::ecode_table_item_t *err_table = err::error_get_table();
for (int i = 0; i < err::error_get_table_size(); i++) {
ZQUI::ins()->ishow("%-50s %d", err_table[i].info, err_table[i].index);
}
}
void MainWindow::on_dumpRegListButton_clicked() {
ui->instructionPreview->clear();
reginfo_t *regtable = reg_get_table();
for (int i = 0; i < reg_get_table_size(); i++) {
ZQUI::ins()->ishow("%-50s %d", regtable[i].regname, regtable[i].index);
}
}

7
src/mainwindow.h

@ -94,6 +94,12 @@ class MainWindow : public QMainWindow {
void on_clearPreview_clicked();
void on_dumpFuncListButton_clicked();
void on_dumpErrorCodeButton_clicked();
void on_dumpRegListButton_clicked();
signals:
void doinui_signal(QFunction);
@ -103,7 +109,6 @@ signals:
void instructionPreviewClear();
void ishow(QString info);
void reportPreviewShow(QString info);
void blockDataUploadPreviewShow(QString info);
void rawshow(QString info);
void displayWave(int16_t wave1, int16_t wave2, int16_t wave3);

108
src/mainwindow.ui

@ -849,6 +849,63 @@ QScrollBar::add-page:vertical, QScrollBar::sub-page:vertical {
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="dumpRegListButton">
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Fixed">
<horstretch>1</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>0</width>
<height>30</height>
</size>
</property>
<property name="text">
<string>打印寄存器列表</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="dumpErrorCodeButton">
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Fixed">
<horstretch>1</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>0</width>
<height>30</height>
</size>
</property>
<property name="text">
<string>打印错误码</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="dumpFuncListButton">
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Fixed">
<horstretch>1</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>0</width>
<height>30</height>
</size>
</property>
<property name="text">
<string>打印方法列表</string>
</property>
</widget>
</item>
</layout>
</widget>
</item>
@ -927,7 +984,7 @@ QScrollBar::add-page:vertical, QScrollBar::sub-page:vertical {
<x>30</x>
<y>20</y>
<width>541</width>
<height>611</height>
<height>721</height>
</rect>
</property>
<property name="html">
@ -941,9 +998,9 @@ p, li { white-space: pre-wrap; }
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:'Consolas','Courier New','monospace'; font-size:11pt; color:#ff0000;&quot;&gt; 板夹仓平移电机(21)&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:'Consolas','Courier New','monospace'; font-size:11pt; color:#ff0000;&quot;&gt; 板夹枪推杆电机(22)&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:'Consolas','Courier New','monospace'; font-size:11pt; color:#ff0000;&quot;&gt;30  摇匀模组&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:'Consolas','Courier New','monospace'; font-size:11pt; color:#ff0000;&quot;&gt; 31:步进夹爪&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:'Consolas','Courier New','monospace'; font-size:11pt; color:#ff0000;&quot;&gt; 32:步进升降(正转向下,0.1mm)&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:'Consolas','Courier New','monospace'; font-size:11pt; color:#ff0000;&quot;&gt; 33:步进摇匀&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:'Consolas','Courier New','monospace'; font-size:11pt; color:#ff0000;&quot;&gt; 31:步进夹爪 (单位0.1mm,单边开合范围0-&amp;gt;9mm,打开为正方向)&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:'Consolas','Courier New','monospace'; font-size:11pt; color:#ff0000;&quot;&gt; 32:步进升降 (正转向下,0.1mm)&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:'Consolas','Courier New','monospace'; font-size:11pt; color:#ff0000;&quot;&gt; 33:步进摇匀 (360为1圈)&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:'Consolas','Courier New','monospace'; font-size:11pt; color:#ff0000;&quot;&gt; 34:舵机-试管帽夹爪-水平移动(舵机一圈3600,中点1800)&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:'Consolas','Courier New','monospace'; font-size:11pt; color:#ff0000;&quot;&gt; 35:舵机-试管帽夹爪(夹紧点为1800)&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:'Consolas','Courier New','monospace'; font-size:11pt; color:#ff0000;&quot;&gt; 36:舵机-试管扫码夹紧(舵机一圈3600)&lt;/span&gt;&lt;/p&gt;
@ -1000,6 +1057,12 @@ p, li { white-space: pre-wrap; }
<layout class="QVBoxLayout" name="verticalLayout_4">
<item>
<widget class="QGroupBox" name="instructionPreviewBox">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>2</verstretch>
</sizepolicy>
</property>
<property name="title">
<string>指令回执显示</string>
</property>
@ -1025,6 +1088,12 @@ p, li { white-space: pre-wrap; }
</item>
<item>
<widget class="QGroupBox" name="reportPreviewBox">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>1</verstretch>
</sizepolicy>
</property>
<property name="title">
<string>上报回执显示</string>
</property>
@ -1049,32 +1118,13 @@ p, li { white-space: pre-wrap; }
</widget>
</item>
<item>
<widget class="QGroupBox" name="uploadDataPreviewBox">
<property name="title">
<string>上传数据显示</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout_5">
<item>
<widget class="QTextBrowser" name="uploadDataPreview">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Expanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>0</width>
<height>0</height>
</size>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item>
<widget class="QGroupBox" name="uploadDataPreviewBox_2">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>1</verstretch>
</sizepolicy>
</property>
<property name="title">
<string>二进制</string>
</property>

2
src/tab/board_ext_tab.cpp

@ -37,7 +37,7 @@ void BoardExtTab::construct(QTabWidget *fathertab) {
ZQUI::ins()->ishow("Status:%d", ICM->getAck(0));
});
box->newFunc("写入IO", {"ioindex"}, [this](int argn, const char **args) { ICM->callcmd1(getDeviceId(), kboard_write_ext_io, atoi(args[0])); });
box->newFunc("写入IO", {"ioindex", "iostate"}, [this](int argn, const char **args) { ICM->callcmd1(getDeviceId(), kboard_write_ext_io, atoi(args[0]), atoi(args[1])); });
}
/***********************************************************************************************************************

Loading…
Cancel
Save