#pragma once #include "../stdafx.h" #include #include #include "LogBean.h" #include "Jobbean.h" #include "LogImage.h" #include "HistoryAlarm.h" //#include "../UI/UIBean.h" #include "../external/SQLiteCpp/SQLiteCpp.h" #include "PartAddition.h" #include "AxisLog.h" #include "ScannerStatus.h" //#include "../ScannerCtrl/IntelliScanState.h" #include "ScannerPowerLog.h" #include "FocusStatus.h" #include "PartPosBean.h" using namespace std; class LogDao { public: LogDao(); ~LogDao(); void Init(); void GetLogs(struct tm &begin, struct tm &end); void AddLog(string prefix, string content); bool GetCheckJob(string uid, JobBean& bean); void UpdateJobInvalid(long jid); void LogJobStart(JobBean* job); void UpdateJobPauseTime(JobBean* job); void UpdateJobAfterPrintLayer(JobBean* job); void GetJobsByTaskId(string taskid, vector& jobs); void GetJobsByTime(struct tm& begin, struct tm& end, vector& jobs); void GetJobs(struct tm &begin, struct tm &end); //void GetJobMaximun(JobBean* jobbean); void LogLayerStatus(LayerStatus& status); //void GetLayerStatusTable(LogAssist& la, bool isRemote = false); //void GetLayerStatusByLayer(LogAssist& la, bool isRemote = false); //void GetLayerStatusByTime(LogAssist& la, bool isRemote = false); //void GetLayerStatus(LogAssist& la, bool isRemote = false); //void GetLayerStatusByLevel(LogAssist& la, bool isRemote = false); void GetAlarms(struct tm &begin, struct tm &end, bool isRemote = false); void AddHistoryAlarm(string jobname, int type, string code); //void DeleteImageAfterPrint(); void AddImage(LogImage& image); void FindImageInfo(bool isRemote = false); bool FindImage(unsigned int layerindex, unsigned char** image, unsigned long* imagesize, bool isRemote = false); //void LogImageBeforePrint(int jobid, bool iscontinue); bool DelJobImage(string str); void ResetImageDB(); void AddPartAddition(PartAddition& pa); void UpdatePartAdditionOffset(string jid, int partid, float x, float y, float rotate); void DeletePartAddition(string jid, int partid); void FindPartAddition(string jid, vector& vec); void AddAxisLog(AxisLog* axisLog); void FindAxisLogInfo(bool isRemote = false); void FindAxisLogData(AxisLog* axisLog, bool isRemote = false); //void StartExport(string path, LogAssist& assist); void StopExport(); bool IsExportFinished(); string GetExportInfo() { return m_ExportInfo; } float GetExportProgress() { return m_ExportProgress; } void LogScannerStatus(vector& scannerStatus); void FindScanState(); void LogFocusStatus(vector& focusStatus); void FindFocusState(); void SaveScannerPower(ScannerPowerLog* log); void FindScannerPowerInfo(); void FindScannerPowerData(ScannerPowerLog* spl); void AddPartPos(string jid, vector& pids); void FindPartPos(string jid, vector& partPos); void UpdatePartPos(string jid, int partid, float x, float y, float rotate); void FindRecordByJob(); bool IsFindingRecord() { bool rel = true; EnterCriticalSection(&m_FindRecordCS); rel = m_IsFindingRecord; LeaveCriticalSection(&m_FindRecordCS); return rel; } void SetIsFindingRecord(bool bvalue) { EnterCriticalSection(&m_FindRecordCS); m_IsFindingRecord = bvalue; LeaveCriticalSection(&m_FindRecordCS); } private: //static DWORD WINAPI DeleteImageProc(LogDao* _this); //void DeleteImageRun(); static DWORD WINAPI ExportProc(LogDao* _this); //void ExportRun(); static DWORD WINAPI FindRecordProc(LogDao* _this); void FindRecordRun(); public: CRITICAL_SECTION m_LogCs; vector m_Logs; CRITICAL_SECTION m_JobCs; vector m_JobBaens; CRITICAL_SECTION m_StatusCs; vector m_LayerStatus; CRITICAL_SECTION m_LogImageCs; vector m_LogImages; vector m_Alarms; CRITICAL_SECTION m_AlarmCs; CRITICAL_SECTION m_ScannerStatusCS; vector m_ScannerStatus; CRITICAL_SECTION m_FocusStatusCS; vector m_FocusStatus; vector m_AxisLogs; CRITICAL_SECTION m_AxisLogCs; AxisLog* m_ShowAxisLog; JobBean* m_CurrentShowJob; vector m_ScannerPower; ScannerPowerLog* m_ShowScannerPower; CRITICAL_SECTION m_RemoteJobCs; vector m_RemoteJobBaens; CRITICAL_SECTION m_RemoteStatusCs; vector m_RemoteLayerStatus; CRITICAL_SECTION m_RemoteLogImageCs; vector m_RemoteLogImages; vector m_RemoteAlarms; CRITICAL_SECTION m_RemoteAlarmCs; vector m_RemoteAxisLogs; CRITICAL_SECTION m_RemoteAxisLogCs; JobBean* m_RemoteCurrentShowJob; //LogAssist m_LogAssist; private: HANDLE m_ImageThread; bool m_ImageFlag; SQLite::Database* m_pDB; std::map m_DBMap; //SQLite::Database* m_pImgDB; //std::map m_ImgDBMap; SQLite::Database* m_LogImageDB; SQLite::Database* m_ShowImageDB; CRITICAL_SECTION m_ImgDbCs; string m_RootPath; CRITICAL_SECTION m_DbCs; string m_ImagePath; HANDLE m_ExportThread; float m_ExportProgress; bool m_ExportFlag; string m_ExportPath; string m_ExportInfo; bool m_IsExportData; bool m_IsExportAxisData; bool m_IsExportImage; bool m_IsExportScanData; CRITICAL_SECTION m_FindRecordCS; bool m_IsFindingRecord; };