压力调节第一版

This commit is contained in:
2026-07-30 11:24:14 +08:00
parent dea3229996
commit f9a4b25d7d
4 changed files with 260 additions and 152 deletions
+12 -10
View File
@@ -469,17 +469,17 @@ PicScene (QGraphicsScene) # 场景,管理所有图元
└─── 软解动态图元 (PicDateItem PicScheduleShiftItem PicCodeItem)
└── onPreviewScene() 与静态图元一样,进入onPreviewScene()
└── variableItemsUpdate() 动态检查图元是否发生变化,更新数据
└── SendPrintDataToFpga() 局部发送更新后的点阵数据至FPGA
└── SendPrintDataToFpga() 发送更新后的点阵数据至FPGA
```
**打印内容相关的几个重要的函数:**
[SendPrintDataToFpga()](../mainwidget.cpp#L935) 负责将打印数据、打印设置和变量控制通过串口发送给FPGA,FPGA接收后驱动喷头进行喷印。该函数被设计成支持全量更新与局部更新,静态图元在打印开始前一次性发送,而动态图元则在每次变化时局部更新。局部更新时,SendPrintDataToFpga不会发送打印设置和变量控制数据,只会按列为单位更新打印缓冲区的点阵数据。
[SendPrintDataToFpga()](../mainwidget.cpp#L935) 负责将打印数据、打印设置和变量控制通过串口发送给FPGA,FPGA接收后驱动喷头进行喷印。静态图元在打印开始前一次性发送,而动态图元则在每次变化时更新打印数据。更新打印数据时,SendPrintDataToFpga不会发送打印设置和变量控制数据,只会按列为单位更新打印缓冲区的点阵数据。
[imageToPrintData()](../mainwidget.cpp#L675) 将 QImage 转换为点阵数据,该函数可将图像填充至打印缓冲区的指定位置,随后由 SendPrintDataToFpga() 发送至FPGA。动态软解图元(如日期、计数器、二维码)在每次变化时调用该函数刷新打印缓冲区。
[onPreviewScene()](../mainwidget.cpp#L1888) 是场景预览的核心函数,负责将场景中的所有图元渲染为 QImage,并调用 imageToPrintData() 全量写入打印缓冲区。
[variableItemsUpdate()](../mainwidget.cpp#L1024) 动态检查图元是否发生变化,配合 imageToPrintData()、SendPrintDataToFpga() 实现局部更新打印数据。
[variableItemsUpdate()](../mainwidget.cpp#L1024) 动态检查图元是否发生变化,配合 imageToPrintData()、SendPrintDataToFpga() 实现更新打印数据。
### 7.2 从文件到打印的数据流向
@@ -546,7 +546,6 @@ RFIDManager::sig_showMsg ──→ InkJetPrinter::slt_showMsg()
```
---
## 8. RFID刷卡模块
@@ -560,7 +559,6 @@ RFIDManager::sig_showMsg ──→ InkJetPrinter::slt_showMsg()
**功能**:
- 墨水/溶剂添加验证(刷卡 + 物理添加)
- 保养卡识别与提醒
- 自动扣减卡内余额
- 卡片使用标记(防重复使用)
- 超级卡的识别与处理
@@ -588,7 +586,7 @@ RFIDManager::sig_showMsg ──→ InkJetPrinter::slt_showMsg()
**目标平台**:
- ARM Linux: `TARGET = QtUI`
- 交叉编译: 使用 `linux-arm-g++` mkspec
- 交叉编译: 使用 `linux-aarch64-gnu-g++` mkspec
- x86桌面: 使用 `linux-g++` mkspec,用于开发调试
### 9.2 模块依赖
@@ -598,17 +596,21 @@ QT += core gui network serialport virtualkeyboard sql xml
```
### 9.3 编译命令
下面给出 InkjetUbuntu-T1 环境下调试、发布的编译方式
```bash
# ARM交叉编译
qmake -spec /usr/local/Trolltech/QtEmbedded-4.6.3-arm/mkspecs/qws/linux-arm-g++ \
"DEFINES+=ARM" "DEFINES+=QTV3" "DEFINES+=VNLG"
cd /path_to_your_arm_build_dir/ && /home/inkjet/QtSDK/bin/qmake /path_to_your_sources_dir/QtUI.pro -spec linux-aarch64-gnu-g++ CONFIG+=release
make -j
# x86桌面编译(调试)
qmake "DEFINES+=X86TEST"
make
cd /path_to_your_x86_build_dir/ && /home/inkjet/QtSDKPC/bin/qmake /path_to_your_sources_dir/QtUI.pro -spec linux-g++ CONFIG+=debug CONFIG+=qml_debug
make -j
```
### 9.4 发行编译
VX5 Release编译发行.md 给出了如何发布带崩溃转储的程序的流程
---
## 10. 关键配置与宏定义