PlotterHMI/machine/printinfo/mcfiles.h
huahaiyan 3ce55cebbd 20240308
1、梳理代码,修改绘制会绘制两次的bug;
2、增加正向旋转功能,线宽设置功能;
3、测试压缩算法,完成;
2024-03-08 16:33:05 +08:00

243 lines
7.8 KiB
C++
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#ifndef MCFILES_H
#define MCFILES_H
#include <QString>
#include <QPicture>
#include <QBitmap>
#include "machine/comm/protocol.h"
#include "datafile/hpgl/marker.h"
//连接状态
enum ConnectState
{
InitConnect = 0,//初始值
NoConnect = 1, //未连接
Connectting = 2, //连接中
Connected = 3 //已连接
};
//工作状态
enum WorkState
{
NotBusy = 0,//空闲中
Busying = 1 //工作中
};
//打印状态
enum PrintState
{
Waitting = 0,//等待打印
Printting = 1, //打印中
Pause = 2, //暂停打印
Complete = 3//打印完成
};
class McFilesInfo
{
public:
s16 m_creatDataFlag;//是否已经生成数据的标志
s16 m_creatBmpFlag;//是否已经生成bmp的标志
QString m_fileName;//文件名称
QString m_filePath;//文件路径
s16 m_fileType;//文件类型
QRect m_fileRect;//图形被包络的矩形区域
s16 m_printNum;//打印份数
s16 m_startPoint;//打印起始点
s16 m_printState;//打印状态
QPicture m_pic;//文件-发送的图片-实际笔宽绘制的pic
QPainterPath m_drawPath;//文件-数据绘图路径-用MyGraphicsItem画图时如果笔宽不为1直接画QPicture时线条会很轻所以用m_drawPath绘制
QBitmap m_pixmap;//图片-图片
s16 m_totalBlocks;//总块数
s16 m_curPrintBlock;//当前打印块数
s16 m_printedBlockNum;//已打印块数
s16 m_leaveBlockNum;//剩余打印块数
s16 m_selectBlockNum;//当前选择块数
Marker m_marker;//数据
void clear()
{
QPicture pic;
QPainterPath path;
m_creatDataFlag = -1;
m_creatBmpFlag = -1;//是否已经生成bmp的标志
m_fileName.clear();//文件名称
m_filePath.clear();//文件路径
m_fileType = 0;//文件类型
m_printNum = 0;//打印份数
m_startPoint = 0;//打印起始点
m_printState = Waitting;//打印状态
m_pic = pic;
m_drawPath = path;
m_pixmap.clear();
m_totalBlocks = 0;//总块数
m_curPrintBlock = 0;//当前打印块数
m_printedBlockNum = 0;//已打印块数
m_leaveBlockNum = 0;//剩余打印块数
m_selectBlockNum = 0;//当前选择块数
m_marker.Initialize();
}
McFilesInfo()
{
m_creatDataFlag = -1;
m_creatBmpFlag = -1;//是否已经生成bmp的标志
m_fileName.clear();//文件名称
m_filePath.clear();//文件路径
m_fileType = 0;//文件类型
m_printNum = 0;//打印份数
m_startPoint = 0;//打印起始点
m_printState = Waitting;//打印状态
m_totalBlocks = 0;//总块数
m_curPrintBlock = 0;//当前打印块数
m_printedBlockNum = 0;//已打印块数
m_leaveBlockNum = 0;//剩余打印块数
m_selectBlockNum = 0;//当前选择块数
m_marker.Initialize();
}
McFilesInfo(const McFilesInfo &item)
{
m_creatDataFlag = item.m_creatDataFlag;//是否已经生成数据的标志
m_creatBmpFlag = item.m_creatBmpFlag;//是否已经生成bmp的标志
m_fileName = item.m_fileName;//文件名称
m_filePath = item.m_filePath;//文件路径
m_fileType = item.m_fileType;//文件类型
m_fileRect = item.m_fileRect;//图形被包络的矩形区域
m_printNum = item.m_printNum;//打印份数
m_startPoint = item.m_startPoint;//打印起始点
m_printState = item.m_printState;//打印状态
m_pic = item.m_pic;
m_drawPath = item.m_drawPath;
m_pixmap = item.m_pixmap;
m_totalBlocks = item.m_totalBlocks;//总块数
m_curPrintBlock = item.m_curPrintBlock;//当前打印块数
m_printedBlockNum = item.m_printedBlockNum;//已打印块数
m_leaveBlockNum = item.m_leaveBlockNum;//剩余打印块数
m_selectBlockNum = item.m_selectBlockNum;//当前选择块数
m_marker = item.m_marker;
}
~McFilesInfo() {}
McFilesInfo & operator=(const McFilesInfo &item)
{
m_creatDataFlag = item.m_creatDataFlag;//是否已经生成数据的标志
m_creatBmpFlag = item.m_creatBmpFlag;//是否已经生成bmp的标志
m_fileName = item.m_fileName;//文件名称
m_filePath = item.m_filePath;//文件路径
m_fileType = item.m_fileType;//文件类型
m_fileRect = item.m_fileRect;//图形被包络的矩形区域
m_printNum = item.m_printNum;//打印份数
m_startPoint = item.m_startPoint;//打印起始点
m_printState = item.m_printState;//打印状态
m_pic = item.m_pic;
m_drawPath = item.m_drawPath;
m_pixmap = item.m_pixmap;
m_totalBlocks = item.m_totalBlocks;//总块数
m_curPrintBlock = item.m_curPrintBlock;//当前打印块数
m_printedBlockNum = item.m_printedBlockNum;//已打印块数
m_leaveBlockNum = item.m_leaveBlockNum;//剩余打印块数
m_selectBlockNum = item.m_selectBlockNum;//当前选择块数
m_marker = item.m_marker;
return *this;
}
};
Q_DECLARE_METATYPE(McFilesInfo)
class McPrintInfo
{
public:
s16 m_mcNum;//机器号
s16 m_loadFileFinishFlag;//自动加载文件完成标志(包括自动绘图目录和上次未打印完的)
QString m_mcName;//机器名称
int m_mcConnState;//机器连接状态
int m_mcWorkState;//机器工作状态
double m_mcSendProgress;//机器打印进度
int m_totalNums;//要发送的总块数
int m_sendedlNums;//已发送的总块数
QString m_ip;//机器ip
s16 m_port;//机器端口
s16 m_fileNums;//文件数量
long long m_fileTotalLength;//文件总长度
QList<McFilesInfo> m_filesList;//图片列表
void clear()
{
m_mcNum = 0;
m_loadFileFinishFlag = -1;
m_mcName.clear();
m_mcConnState = InitConnect;
m_mcWorkState = NotBusy;
m_mcSendProgress = 0;
m_totalNums = 0;
m_sendedlNums = 0;
m_ip.clear();
m_port = 0;
m_fileNums = 0;
m_fileTotalLength = 0;
for(int i = 0; i < m_filesList.size(); i++)
{
m_filesList[i].clear();
}
m_filesList.clear();
}
McPrintInfo()
{
m_mcNum = 0;
m_loadFileFinishFlag = -1;
m_mcName.clear();
m_mcConnState = InitConnect;
m_mcWorkState = NotBusy;
m_mcSendProgress = 0;
m_mcSendProgress = 0;
m_totalNums = 0;
m_sendedlNums = 0;
m_ip.clear();
m_port = 0;
m_fileNums = 0;
m_fileTotalLength = 0;
m_filesList.clear();
}
McPrintInfo(const McPrintInfo &item)
{
m_mcNum = item.m_mcNum;
m_loadFileFinishFlag = item.m_loadFileFinishFlag;
m_mcName = item.m_mcName;
m_mcConnState = item.m_mcConnState;
m_mcWorkState = item.m_mcWorkState;
m_mcSendProgress = item.m_mcSendProgress;
m_totalNums = item.m_totalNums;
m_sendedlNums = item.m_sendedlNums;
m_ip = item.m_ip;
m_port = item.m_port;
m_fileNums = item.m_fileNums;
m_fileTotalLength = item.m_fileTotalLength;
m_filesList = item.m_filesList;
}
~McPrintInfo() {}
McPrintInfo & operator=(const McPrintInfo &item)
{
m_mcNum = item.m_mcNum;
m_loadFileFinishFlag = item.m_loadFileFinishFlag;
m_mcName = item.m_mcName;
m_mcConnState = item.m_mcConnState;
m_mcWorkState = item.m_mcWorkState;
m_mcSendProgress = item.m_mcSendProgress;
m_totalNums = item.m_totalNums;
m_sendedlNums = item.m_sendedlNums;
m_ip = item.m_ip;
m_port = item.m_port;
m_fileNums = item.m_fileNums;
m_fileTotalLength = item.m_fileTotalLength;
m_filesList = item.m_filesList;
return *this;
}
};
Q_DECLARE_METATYPE(McPrintInfo)
#endif // MCFILES_H