#pragma once #include "../stdafx.h" #include #include #include "../Job/JobController.h" using namespace std; class BaseCtrl { public: enum PrintState { STANDBY = 0, //就绪 STANDBY_PAUSE, //暂停后就绪 STANDBY_STOP, //停止后就绪 PREPRINT, //打印前准备 PRINTING, //打印中 FINISH, //打印完成 PAUSE, //暂停 STOP //停止 }; enum PreRunState { NonePre = 0, CheckIO, Purifying, WaitBlowback, WaitBlowbackCancelConfirm, WaitBlowbackSummitConfirm, Dedusting, WaitConfirm, CancelConfirm, SummitConfirm, AutoHeatingScanner, PreFinished, }; enum PauseState { NoPause = 0, ManualPause, PrintRestPause, AlarmPause, AlarmAutoPause }; BaseCtrl(); ~BaseCtrl(); public: static void SInit(); static void SUninit(); virtual bool Init() = 0; virtual bool BeginWork() = 0; virtual bool PauseWork()=0; virtual bool StopWork()=0; virtual void ModelScan(int partId, string scanType, float power, float speed) {} static PrintState GetState(); static PreRunState GetPreState(); static PauseState GetPauseState(); static void SetPauseState(PauseState ps); static void SetState(PrintState ps); static void SetPreState(PreRunState rs); static void SetStandBy(); static void SetFinish(); static bool IsStart(); static bool IsPause(); static bool IsStop(); static bool IsStandBy(); static bool IsFinish(); static bool IsPrePrint(); static bool IsPauseStanBy(); static bool IsHeatingScanner(); static void SendToClients(); void SetJobController(JobController* job_controller); protected: JobController* m_job_controller; static vector m_InitErrorInfos; private: static PrintState m_print_state; static PreRunState m_PreRunState; static PauseState m_PauseState; static CRITICAL_SECTION m_CS; };