抽离printsettings前的暂存

This commit is contained in:
2026-06-26 15:29:45 +08:00
parent 864b60020e
commit 7c25953cef
7 changed files with 478 additions and 155 deletions
+82 -4
View File
@@ -4,12 +4,87 @@
#include <QWidget>
#include <QPushButton>
#include <QXmlStreamWriter>
#include "PulseNumFix.h"
namespace Ui {
class PrintSetting;
}
#pragma pack(1)
/**
* @brief 从sysPara中提取的某些用于跟随工作文件保存的打印设置
*
*
* @remark
* 字段声明位置按照类型长度降序排列,用于在紧凑内存对齐的状态下尽量提升性能
* 所以看声明顺序有点奇怪
* 使用紧凑内存对齐的原因是为了方便直接映射为字符串,方便保存
*/
struct PrintSettingModel
{
int timeTriggerPrintMode = 0; // 间隔模式, 0: 行末-> 行首 1: 行首对行首 ,韩国人要求只保留一个,所以应该固定为 0
/**
* 触发间隔。
* 时延模式,指间隔多久打印一次。单位ms,
* 电眼 + 同步器模式: 根据 eleEyeRepeatCnt 设定的重复次数,确定重复间隔,单位长度mm
* 电眼模式:根据 eleEyeRepeatCnt 设定的重复次数,确定重复间隔,单位是时间 ms
* 同步器模式:重复间隔,单位长度 mm
* */
unsigned triggerInterval = 0;
unsigned eleEyeRepeatCnt = 1; // 电眼触发时,打印内容的次数,也就是重复数
unsigned triggerMode = 0; // 触发模式
float encoderPulsePerMm = 40; // 编码器的每毫米脉冲数
unsigned printColDelay = 6; // 打印列延迟,(字宽)
unsigned short volParaIndex = 0; // 喷印模式的索引, 决定选择哪组电压参数
unsigned short eleEyeTriggerPrintDelay = 0; // 0x38 电眼 + 同步器模式下,电眼触发后,同步打印延迟时间,单位:毫秒
unsigned short altMirrorGap = 0; // 镜像交替间隔, 单位:喷印个数
unsigned short eleMaskTime = 0; // 电眼封锁时间或距离 单位ms或mm
/**
* 同步器的正反转模式
* 0:正反转打印
* 1:只正转打印
* 2:只反转打印
* 3:带补偿的正转打印
* 4:带补偿的反转打印
*/
unsigned char syncTriggerMode = 0;
unsigned char mode0211 = 1; // 0211模式
unsigned char highVoltageAmplitude = 75; // 界面显示 字高,但是名字叫 高压振幅? 谁解释一下
unsigned char altMirrorType = 0; // 镜像交替模式
bool leftRightInverse = false; // 信息左右颠倒
bool upDownInverse = false; // 信息上下颠倒
bool eleEyeTriggerSynPrintEn = false;
static void loadFromXml(PrintSettingModel& model, const QXmlStreamAttributes& attrs);
static void saveToXml(const PrintSettingModel& model, QXmlStreamWriter& writer);
static void applyToSysPara(const PrintSettingModel& model, SysPara* sysPara);
static PrintSettingModel fromSysPara(SysPara* sysPara);
static QString toString(const PrintSettingModel& model);
};
#pragma pack()
class PrintSetting : public QWidget
{
Q_OBJECT
@@ -41,6 +116,12 @@ public:
void setEnableSynTriggerSetting(bool);
void applyPrintSettingsToSysPara(bool showTip = true);
PrintSettingModel model();
void setModel(const PrintSettingModel& model);
private slots:
void buttonClickedSlot();
@@ -87,12 +168,9 @@ private:
void init();
void applyStyleSheet(); // 应用样式表
signals:
void sendButtonClickedSignal(int index);
};
#endif // PRINTSETTING_H
#endif // PRINTSETTING_H