#pragma once #include "CppSQLite3.h" #include "dt.h" #include "CProduct.h" #include "CMachineSetup.h" #include "CHardware.h" #include "CModuleConfig.h" #include "CMachineCalibration.h" #include "CSecurity.h" #include "CStatisticCounters.h" #include "CCalibrationConfig.h" #include #include #include using namespace std; namespace ns_db { const static std::map g_mapDatabaseList = { {MODULECONFIG_DATABASE_NAME , BONDHEAD_CONFIG_TABLE_NAME}, {MODULECONFIG_DATABASE_NAME , WAFERHEAD_CONFIG_TABLE_NAME}, {MODULECONFIG_DATABASE_NAME , WAFFLEHEAD_CONFIG_TABLE_NAME}, {MODULECONFIG_DATABASE_NAME , EJECTOR_CONFIG_TABLE_NAME}, {MODULECONFIG_DATABASE_NAME , WAFERTABLE_CONFIG_TABLE_NAME}, {MODULECONFIG_DATABASE_NAME , WAFER_CALIB_TABLE_CONFIG_TABLE_NAME}, {MODULECONFIG_DATABASE_NAME , WAFFLE_CALIB_TABLE_CONFIG_TABLE_NAME }, {MODULECONFIG_DATABASE_NAME , BOND_TABLE_CONFIG_TABLE_NAME}, {MODULECONFIG_DATABASE_NAME , NOZZLE_TABLE_CONFIG_TABLE_NAME}, {MODULECONFIG_DATABASE_NAME , HARDWARE_SWICH_TABLE_NAME}, {MODULECONFIG_DATABASE_NAME , ULTRAHEAD_TABLE_NAME }, {MODULECONFIG_DATABASE_NAME , ULTRAHEAD_DIAGNOSIS_TABLE_NAME}, {CALIBCONFIG_DATABASE_NAME , CALIB_CTD_TABLE_NAME}, {CALIBCONFIG_DATABASE_NAME , CALIB_XY_TABLE_NAME}, {CALIBCONFIG_DATABASE_NAME , CALIB_R_TABLE_NAME }, {CALIBCONFIG_DATABASE_NAME , CALIB_STEP_R_RESULT_TABLE_NAME}, {CALIBCONFIG_DATABASE_NAME , FORCE_CONTROL_TABLE_NAME }, {CALIBCONFIG_DATABASE_NAME , HORIZONTAL_MEASURE_TABLE_NAME }, {CALIBCONFIG_DATABASE_NAME , VERTICAL_MEASURE_TABLE_NAME}, {CALIBCONFIG_DATABASE_NAME , CALIB_TIP_RESULT} }; class __declspec(dllexport) CManageDB { public: static CManageDB* GetInstance(); vector GetAllDataBase(); LONG LoadAllDataBase(); LONG SaveAllDataBase(); string GetCurrentProductPath() { return m_strCurrentProgramPath; }; CHardware* GetCHardware() { return m_pCHardware; }; CModuleConfig* GetCModuleConfig() { return m_pCModuleConfig; }; CStatisticCounters* GetCStatisticCounters() { return m_pCStatisticCounters; }; CProduct* GetCProduct() { return m_pCProduct; }; CMachineSetup* GetCMachineSetup() { return m_pCMachineSetup; }; CMachineCalibration* GetCMachineCalibration() { return m_pCMachineCalibration; }; CSecurity* GetCSecurity() { return m_pCSecurity; }; CCalibrationConfig* GetCCalibrationConfig() { return m_pCCalibrationConfig; }; std::string GetDbNameByTableName(std::string strTableName); private: static vector m_vecDataBase; CHardware* m_pCHardware = nullptr; CSecurity* m_pCSecurity = nullptr; CStatisticCounters* m_pCStatisticCounters = nullptr; CProduct* m_pCProduct = nullptr; CMachineSetup* m_pCMachineSetup = nullptr; CModuleConfig* m_pCModuleConfig = nullptr; CMachineCalibration* m_pCMachineCalibration = nullptr; CCalibrationConfig* m_pCCalibrationConfig = nullptr; string m_strCurrentProgramPath; static CManageDB* m_pInstance; static std::mutex m_Mutex; }; }