Browse Source

init .

master
zhaohe 1 year ago
parent
commit
19c6637650
  1. 2
      src/app/main.cpp
  2. 77
      src/zqtui/mainpage/mainwindow.cpp
  3. 0
      src/zqui/base/QFunction.cpp
  4. 0
      src/zqui/base/QFunction.hpp
  5. 0
      src/zqui/base/logger.cpp
  6. 0
      src/zqui/base/logger.hpp
  7. 0
      src/zqui/base/zexception.hpp
  8. 0
      src/zqui/base/zqthread.cpp
  9. 0
      src/zqui/base/zqthread.hpp
  10. 0
      src/zqui/base/zworkqueue.cpp
  11. 0
      src/zqui/base/zworkqueue.hpp
  12. 0
      src/zqui/channelmgr/channelmgr.cpp
  13. 38
      src/zqui/channelmgr/channelmgr.hpp
  14. 6
      src/zqui/channelmgr/qt_serial_datachannel.cpp
  15. 14
      src/zqui/channelmgr/qt_serial_datachannel.hpp
  16. 93
      src/zqui/mainpage/mainwindow.cpp
  17. 11
      src/zqui/mainpage/mainwindow.h
  18. 31
      src/zqui/mainpage/mainwindow.ui
  19. 0
      src/zqui/version.h

2
src/app/main.cpp

@ -18,7 +18,7 @@
#include <string>
#include <vector>
#include "zqtui/mainpage/mainwindow.h"
#include "zqui/mainpage/mainwindow.h"
//
#include <winsock2.h>
//

77
src/zqtui/mainpage/mainwindow.cpp

@ -1,77 +0,0 @@
#include "mainwindow.h"
#include <QDateTime>
#include <QMessageBox>
#include <QtConcurrent>
#include <QtSerialPort/QSerialPort>
#include <QtSerialPort/QSerialPortInfo>
#include "./ui_mainwindow.h"
// #include "app/syncbox16ch.h"
// #include "version.h"
//syncbox16ch *app;
MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) {
ui->setupUi(this);
// app = new syncbox16ch(ui->app_content);
// app->show();
}
void MainWindow::constructChannel() {
// /**
// * @brief 指令串口UI
// */
// {
// const auto infos = QSerialPortInfo::availablePorts();
// for (const QSerialPortInfo &info : infos) {
// ui->serialPortCB->addItem(info.portName());
// }
// }
// ui->serialBaudrateCB->addItem("2000000");
// ui->serialBaudrateCB->setCurrentIndex(0);
// connect(ui->serialPortRefreshKey, &QPushButton::clicked, this, [this](bool check) {
// ui->serialPortCB->clear();
// const auto infos = QSerialPortInfo::availablePorts();
// for (const QSerialPortInfo &info : infos) {
// ui->serialPortCB->addItem(info.portName());
// }
// });
// connect(ui->serialOpenKey, &QPushButton::clicked, this, [=](bool check) {
// // 打开串口
// if (ui->serialOpenKey->text() == "打开") {
// G_QTDataChannel.setPortName(ui->serialPortCB->currentText().toStdString());
// G_QTDataChannel.setBaudRate(ui->serialBaudrateCB->currentText().toInt());
// G_QTDataChannel.setDataBits(QSerialPort::Data8);
// G_QTDataChannel.setParity(QSerialPort::NoParity);
// G_QTDataChannel.setFlowControl(QSerialPort::NoFlowControl);
// G_QTDataChannel.setStopBits(QSerialPort::OneStop);
// /**
// * @brief 串口打开时,初始化相应参数
// */
// if (!G_QTDataChannel.open()) {
// QMessageBox::about(NULL, "提示", "串口无法打开,串口不存在或已被占??");
// return;
// }
// ui->serialOpenKey->setText("关闭");
// // 下拉菜单控件使能
// ui->serialBaudrateCB->setEnabled(false);
// ui->serialPortCB->setEnabled(false);
// ui->serialPortRefreshKey->setEnabled(false);
// IflytopCanbusMaster::ins()->updateChannelConfig();
// } else {
// G_QTDataChannel.close();
// ui->serialOpenKey->setText("打开");
// ui->serialBaudrateCB->setEnabled(true);
// ui->serialPortCB->setEnabled(true);
// ui->serialPortRefreshKey->setEnabled(true);
// }
// });
}

0
src/zqtui/base/QFunction.cpp → src/zqui/base/QFunction.cpp

0
src/zqtui/base/QFunction.hpp → src/zqui/base/QFunction.hpp

0
src/zqtui/base/logger.cpp → src/zqui/base/logger.cpp

0
src/zqtui/base/logger.hpp → src/zqui/base/logger.hpp

0
src/zqtui/base/zexception.hpp → src/zqui/base/zexception.hpp

0
src/zqtui/base/zqthread.cpp → src/zqui/base/zqthread.cpp

0
src/zqtui/base/zqthread.hpp → src/zqui/base/zqthread.hpp

0
src/zqtui/base/zworkqueue.cpp → src/zqui/base/zworkqueue.cpp

0
src/zqtui/base/zworkqueue.hpp → src/zqui/base/zworkqueue.hpp

0
src/zqui/channelmgr/channelmgr.cpp

38
src/zqui/channelmgr/channelmgr.hpp

@ -0,0 +1,38 @@
#pragma once
#include <fstream>
#include <functional>
#include <iostream>
#include <list>
#include <map>
#include <memory>
#include <mutex>
#include <set>
#include <sstream>
#include <string>
#include <vector>
//
#include <winsock2.h>
//
#include <Windows.h>
//
#include "qt_serial_datachannel.hpp"
#define SDK_VERSION 1
namespace iflytop {
using namespace std;
class ChannelMgr {
public:
QTSerialChannel serialCh;
public:
static ChannelMgr* ins() {
static ChannelMgr chmgr;
return &chmgr;
}
};
} // namespace iflytop

6
src/zqtui/channelmgr/qt_serial_datachannel.cpp → src/zqui/channelmgr/qt_serial_datachannel.cpp

@ -7,11 +7,11 @@
#pragma comment(lib, "ws2_32.lib")
#include "zqtui/base/logger.hpp"
#include "zqui/base/logger.hpp"
using namespace iflytop;
using namespace std;
using namespace clst;
#define TAG "QTDataChannel"
@ -131,7 +131,7 @@ bool QTSerialChannel::send(const uint8_t *data, size_t len) {
dwBytesWrite, // 要发送的数据字节数
&dwBytesWrite, // DWORD*,用来接收返回成功发送的数据字节数
NULL); // NULL为同步发送,OVERLAPPED*为异步发送
return dwBytesWrite;
return dwBytesWrite == len;
}
void QTSerialChannel::regRxListener(function<void(uint8_t *data, size_t len)> cb) { m_rxcb = cb; }

14
src/zqtui/channelmgr/qt_serial_datachannel.hpp → src/zqui/channelmgr/qt_serial_datachannel.hpp

@ -20,12 +20,11 @@
#include <QtSerialPort/QSerialPort>
#include <QtSerialPort/QSerialPortInfo>
//
#include "zqtui\base\zqthread.hpp"
#include "zqui\base\zqthread.hpp"
#define SDK_VERSION 1
namespace iflytop {
namespace clst {
using namespace std;
// QT_CHARTS_USE_NAMESPACE
@ -58,11 +57,11 @@ class QTSerialChannel {
bool setBaudRate(qint32 baudRate) { m_baudRate = baudRate; }
qint32 baudRate() const { return m_baudRate; }
bool setPortName(string name) { m_name = name; }
bool setDataBits(QSerialPort::DataBits dataBits) { m_dataBits = dataBits; }
bool setParity(QSerialPort::Parity parity) { m_parity = parity; }
bool setStopBits(QSerialPort::StopBits stopBits) { m_stopBits = stopBits; }
bool setFlowControl(QSerialPort::FlowControl flowControl) { m_flowControl = flowControl; }
void setPortName(string name) { m_name = name; }
void setDataBits(QSerialPort::DataBits dataBits) { m_dataBits = dataBits; }
void setParity(QSerialPort::Parity parity) { m_parity = parity; }
void setStopBits(QSerialPort::StopBits stopBits) { m_stopBits = stopBits; }
void setFlowControl(QSerialPort::FlowControl flowControl) { m_flowControl = flowControl; }
QSerialPort::DataBits dataBits() const { return m_dataBits; }
QSerialPort::Parity parity() const { return m_parity; }
@ -72,5 +71,4 @@ class QTSerialChannel {
private:
int com_receive(uint8_t *rxbuf, int rxbufsize);
};
} // namespace clst
} // namespace iflytop

93
src/zqui/mainpage/mainwindow.cpp

@ -0,0 +1,93 @@
#include "mainwindow.h"
#include <QDateTime>
#include <QMessageBox>
#include <QtConcurrent>
#include <QtSerialPort/QSerialPort>
#include <QtSerialPort/QSerialPortInfo>
#include "./ui_mainwindow.h"
#include "zqui/channelmgr/channelmgr.hpp"
// #include "app/syncbox16ch.h"
// #include "version.h"
using namespace iflytop;
MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) {
ui->setupUi(this);
buildUI();
ui->serialPortCB->installEventFilter(this);
startTimer(1000);
}
void MainWindow::buildUI() {
QTSerialChannel *serialch = &ChannelMgr::ins()->serialCh;
/**
* @brief UI
*/
{ fillinSerialPort(); }
ui->serialBaudrateCB->addItem("115200");
ui->serialBaudrateCB->addItem("500000");
ui->serialBaudrateCB->addItem("2000000");
ui->serialBaudrateCB->setCurrentIndex(0);
connect(ui->serialOpenKey, &QPushButton::clicked, this, [=](bool check) {
// 打开串口
if (ui->serialOpenKey->text() == "打开") {
serialch->setPortName(ui->serialPortCB->currentText().toStdString());
serialch->setBaudRate(ui->serialBaudrateCB->currentText().toInt());
serialch->setDataBits(QSerialPort::Data8);
serialch->setParity(QSerialPort::NoParity);
serialch->setFlowControl(QSerialPort::NoFlowControl);
serialch->setStopBits(QSerialPort::OneStop);
/**
* @brief
*/
if (!serialch->open()) {
QMessageBox::about(NULL, "提示", "串口无法打开,串口不存在或已被占??");
return;
}
ui->serialOpenKey->setText("关闭");
// 下拉菜单控件使能
ui->serialBaudrateCB->setEnabled(false);
ui->serialPortCB->setEnabled(false);
} else {
serialch->close();
ui->serialOpenKey->setText("打开");
ui->serialBaudrateCB->setEnabled(true);
ui->serialPortCB->setEnabled(true);
}
});
}
void MainWindow::on_serialPortCB_customContextMenuRequested(const QPoint &pos) {}
void MainWindow::fillinSerialPort() {
// int curIndex = ui->serialPortCB->currentIndex();
ui->serialPortCB->clear();
const auto infos = QSerialPortInfo::availablePorts();
for (const QSerialPortInfo &info : infos) {
if (info.isBusy()) continue;
ui->serialPortCB->addItem(info.portName());
}
}
#if 1
bool MainWindow::eventFilter(QObject *watched, QEvent *event) {
if (event->type() == QEvent::MouseButtonPress) {
if (watched == ui->serialPortCB) {
fillinSerialPort();
}
}
return QMainWindow::eventFilter(watched, event);
}
#endif
void MainWindow::timerEvent(QTimerEvent *event) {
// if (ui->serialOpenKey->text() == "打开") {
// fillinSerialPort();
// }
}

11
src/zqtui/mainpage/mainwindow.h → src/zqui/mainpage/mainwindow.h

@ -45,7 +45,16 @@ class MainWindow : public QMainWindow {
MainWindow(QWidget *parent = nullptr);
~MainWindow() {};
private slots:
void on_serialPortCB_customContextMenuRequested(const QPoint &pos);
bool eventFilter(QObject *watched, QEvent *event);
private:
void buildUI();
void fillinSerialPort();
private:
void constructChannel();
void timerEvent(QTimerEvent *event) override;
};
#endif // MAINWINDOW_H

31
src/zqtui/mainpage/mainwindow.ui → src/zqui/mainpage/mainwindow.ui

@ -667,16 +667,6 @@ QGroupBox:title {
<string>端口</string>
</property>
<layout class="QGridLayout" name="gridLayout">
<item row="1" column="1">
<widget class="QComboBox" name="serialBaudrateCB"/>
</item>
<item row="0" column="0">
<widget class="QLabel" name="serialPortLable">
<property name="text">
<string>串口号</string>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QLabel" name="serialBaudrateLable">
<property name="text">
@ -684,20 +674,27 @@ QGroupBox:title {
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QComboBox" name="serialPortCB"/>
<item row="0" column="0">
<widget class="QLabel" name="serialPortLable">
<property name="text">
<string>串口号</string>
</property>
</widget>
</item>
<item row="3" column="0" colspan="2">
<item row="2" column="0" colspan="2">
<widget class="QPushButton" name="serialOpenKey">
<property name="text">
<string>打开</string>
</property>
</widget>
</item>
<item row="2" column="0" colspan="2">
<widget class="QPushButton" name="serialPortRefreshKey">
<property name="text">
<string>刷新</string>
<item row="1" column="1">
<widget class="QComboBox" name="serialBaudrateCB"/>
</item>
<item row="0" column="1">
<widget class="QComboBox" name="serialPortCB">
<property name="sizeAdjustPolicy">
<enum>QComboBox::AdjustToContents</enum>
</property>
</widget>
</item>

0
src/zqtui/version.h → src/zqui/version.h

Loading…
Cancel
Save