GrpcPrint/PrintS/job/FileProcessor.h
2024-06-05 17:02:17 +08:00

78 lines
2.1 KiB
C++

#pragma once
#include "MetaData.h"
#include <string>
#include "../log/Jobbean.h"
class FileProcessor
{
public:
typedef enum
{
FT_BP,
FT_CLI,
FT_H3D,
} FileType;
enum SetParamType {
SingleParam = 0,
SameParam,
AllParam
};
public:
FileProcessor();
virtual ~FileProcessor();
virtual int Process(string jobfile) = 0;
virtual int GetCurrentLayerIndex(void) = 0;
virtual int GetPreviewLayerIndex(void) = 0;
virtual MetaData* GetMetaData() = 0; //传
virtual string GetJobTitle() = 0; //传
virtual string GetMaterialName() = 0;
virtual double GetLayerThickness() = 0;
virtual unsigned int GetLayerCount() = 0; //传
virtual int GetComponentCount() = 0; //传
virtual MetaData::Layer* GetLayer(unsigned int index) = 0; //传
virtual int GetLayerIndex(MetaData::Layer* layer) = 0;
virtual string GetJobUid() = 0; //传
virtual FileType GetFileType() = 0;
virtual void UpdateFile(){}
string GetJobFileName() { return m_job_file_name; } //传
bool IsLayerInherit(void) { return m_LayerInherit; } //传
void SetLayerInherit(bool layer_inherit) { m_LayerInherit = layer_inherit; } //传
unsigned int GetStartIndex() { return m_StartIndex; } //传
virtual void SetStartIndex(unsigned int index) { m_StartIndex = index; }
bool IsFinished() { return m_IsFinished; }
void SetFinished(bool isf) { m_IsFinished = isf; if (isf) SetStartIndex(0); }
long GetCurrentLogJobID(void) { return m_CurrentLogJobID; }
void SetCurrentLogJobID(long id) { m_CurrentLogJobID = id; }
void SetJobbean(JobBean bean);
JobBean* GetJobbean();
//void UpdateJobBean();
void UpdateJobBeanWhenStart();
void UpdateJobBeanWhenStop();
bool JudgePowder(double powderPos, unsigned int layerindex, unsigned int &level);
float GetJobPrintHigh();
public:
bool m_IsOpen;
uint64_t m_FirstStartTime;
uint64_t m_BeginPrintTime; //打印停歇时间判断
uint64_t m_AutoPauseTime; //自动停打时间判断
bool m_IsAutoCtrl;
int m_SetParamType;
bool m_AutoHeatingScanner;
string m_TaskId;
protected:
string m_job_file_name;
bool m_LayerInherit;
unsigned int m_StartIndex;
bool m_IsFinished;
long m_CurrentLogJobID;
JobBean m_Jobbean;
};