#pragma once #include "MetaData.h" #include #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; };