GrpcPrint/PrintS/job/FileProcessor.cpp
2024-03-26 10:33:00 +08:00

83 lines
1.7 KiB
C++

#include "FileProcessor.h"
FileProcessor::FileProcessor()
:m_StartIndex(0)
, m_IsFinished(false)
, m_IsOpen(true)
, m_FirstStartTime(0L)
, m_BeginPrintTime(0L)
, m_AutoPauseTime(0L)
, m_IsAutoCtrl(false)
,m_SetParamType(SingleParam)
, m_AutoHeatingScanner(false)
{
}
FileProcessor::~FileProcessor()
{
}
void FileProcessor::SetJobbean(JobBean bean)
{
m_Jobbean = bean;
}
JobBean* FileProcessor::GetJobbean()
{
return &m_Jobbean;
}
void FileProcessor::UpdateJobBeanWhenStart()
{
if (m_Jobbean.m_IsContinue) {
time(&m_Jobbean.m_StartTime);
}
else
{
time(&m_Jobbean.m_InsertTime);
m_Jobbean.m_StartTime = m_Jobbean.m_InsertTime;
m_Jobbean.m_Uid = GetJobUid();
m_Jobbean.m_Name = GetJobTitle();
m_Jobbean.m_PrintedLayerIndex = m_StartIndex;
}
}
bool FileProcessor::JudgePowder(double powderPos,unsigned int layer,unsigned int& level )
{
vector<MetaData::Layer*> layers= GetMetaData()->GetLayersVec();
bool rel = true;
double need = 0.0;
for (size_t layerindex = layer; layerindex < layers.size(); ++layerindex) {
MetaData::Layer* layer = layers[layerindex];
need = need + layer->powder;
if (need>powderPos) {
level = layerindex;
rel = false;
break;
}
}
return rel;
}
float FileProcessor::GetJobPrintHigh()
{
uint32_t high = 0;
vector<MetaData::Layer*> layers = GetMetaData()->GetLayersVec();
for (size_t layerindex = m_StartIndex; layerindex < layers.size(); ++layerindex) {
MetaData::Layer* layer = layers[layerindex];
high += layer->layer_thickness;
}
float fh = (float)high / 1000.0f;
return fh;
}
void FileProcessor::UpdateJobBeanWhenStop()
{
m_Jobbean.m_IsContinue = false;
m_Jobbean.m_PrintedLayerIndex = 0;
m_Jobbean.m_LastPauseTime = 0;
m_FirstStartTime = 0;
m_Jobbean.m_PrintSecond = 0;
}