GrpcPrint/PrintS/Config/ConfigManager.h
2024-05-06 10:49:15 +08:00

195 lines
6.8 KiB
C++

#pragma once
#include "../external/SQLiteCpp/SQLiteCpp.h"
#include "dao/HbdLanguageDao.h"
#include "dao/MachineCfgDao.h"
#include "dao/BaseConfigDao.h"
#include "dao/AxisCfgDao.h"
#include "dao/IOCfgDao.h"
#include "dao/ScanCfgDao.h"
#include "dao/InfoTextDao.h"
#include "dao/PowerCompensateDao.h"
#include "dao/AlarmCfgDao.h"
#include "dao/SystemBaseDao.h"
#include "dao/ParamSetCfgDao.h"
#include "dao/CommunicationCfgDao.h"
#include "dao/PrepareJobCfgDao.h"
#include "dao/IOVersionDao.h"
#include "dao/ScannerControlCfgDao.h"
#include <map>
#include <string>
#include "bean/HbdLanguage.h"
#include "bean/CoverCfg.h"
#include "bean/ExtCfg.h"
#include "bean/AxisCfg.h"
#include "bean/ScanParamCfg.h"
#include "bean/ScanTestCfg.h"
#include "bean/CorrectParamCfg.h"
#include "bean/AlarmCfg.h"
#include "bean/SystemBase.h"
#include "../Machine/Machine.h"
#include "bean/ParamSetCfg.h"
#include "bean/FavoriteCfg.h"
#include "../Communication/ConnectInterface.h"
#include "bean/CameraCalibrationCfg.h"
#include "../global.h"
using namespace std;
class ConfigManager
{
public:
static ConfigManager* GetInstance();
void PreInit();
void Init();
bool InitFromSetup(void);
void SaveConfig();
void SaveExtConfig() { m_pBaseConfigDao->SaveExtCfg(m_ExtCfg); }
void SaveMachineConfig() { m_pMachineCfgDao->Save(m_MachineCfg); }
void SaveParamSetCfg() { m_pParamSetCfgDao->Save(m_ParamSetCfg); }
void Export(string file_path);
void Import(string file_path);
void ExportPC(string file_path);
void ImportPC(string file_path);
void ExportParamSet(string file_path);
void ImportParamSet(string file_path);
map<short, AxisCfg*>* GetAxisSetting() { return &m_AxisCfgs; }
AxisCfg* GetArmCfg();
AxisCfg* GetMoldCfg();
AxisCfg* GetLoadCfg();
AxisCfg* GetSupplyCfg();
AxisCfg* GetCleanCfg() { return m_CleanCfg; }
AxisCfg* GetEleCfg() { return m_EleCfg; }
CoverCfg* GetCoverCfg() { return &m_CoverCfg; }
ExtCfg* GetExtCfg() { return &m_ExtCfg; }
RunCfg* GetRunCfg() { return &m_RunCfg; }
IOCfgWrapper* GetIoCfgWrapper() { return m_IOCfgWrapper; }
void DeleteMachineIO();
vector<IOVersion*>* GetIOVersions(int machineid);
PowderEstimateCfg* GetPowderEstimateCfg() { return &m_PowderEstimateCfg; }
map<string, CommunicationCfg*>* GetCommunicationCfg() { return m_pCommunicationCfgDao->GetCommunicationCfg(); }
/*ScanParamCfg* GetScanParamCfg(int laserid) { return &m_pLaserCfgDao->m_LaserCfgMap[laserid]->m_ScanCfgWrapper.m_ScanParamCfg; }
CorrectParamCfg* GetCorrectParamCfg(int laserid) {
return &m_pLaserCfgDao->m_LaserCfgMap[laserid]->m_ScanCfgWrapper.m_CorrectParamCfg;
}
ScanTestCfg* GetScanTestCfg(int laserid) {
return &m_pLaserCfgDao->m_LaserCfgMap[laserid]->m_ScanCfgWrapper.m_ScanTestCfg;
}
PowerCompensateCfg* GetPowerCompensateCfg(int laserid) {
return &m_pLaserCfgDao->m_LaserCfgMap[laserid]->m_ScanCfgWrapper.m_PowerCompensateCfg;
}
SkyWritingCfg* GetSkyWritingCfg(int laserid) {
return &m_pLaserCfgDao->m_LaserCfgMap[laserid]->m_ScanCfgWrapper.m_SkyWritingCfg;
}*/
ParamLimitCfg* GetParamLimitCfg() { return &m_ParamLimitCfg; }
MachineCfg* GetMachineCfg() { return &m_MachineCfg; }
Machine* GetMachine() { return m_Machine; }
AlarmCfgWrapper* GetAlarmCfg() { return m_AlarmCfgWrapper; }
RecoatCheckCfg* GetRecoatCheckCfg() { return &m_RecoatCheckCfg; }
HbdLanguage* GetLanguage(int id);
void GetDefaultText(map<string,string>& textmap);
ParamSetCfg* GetParamSetCfg() { return &m_ParamSetCfg; }
//map<int, LaserCfg*>* GetLaserCfgMap() { return &m_pLaserCfgDao->m_LaserCfgMap; }
//vector<LaserCfg*>* GetLaserCfgs() { return &m_pLaserCfgDao->m_LaserCfgs; }
map<int, ScannerControlCfg*>* GetScannerControlCfg() { return &m_ScannerControlCfgDao->m_ScannerControlCfgMap; }
vector<ScannerControlCfg*>* GetScannerControlCfgs() { return &m_ScannerControlCfgDao->m_ScannerControlCfgs; }
vector<ScannerControlCfg*>* GetMatchScannerControlCfg() { return &m_ScannerControlCfgDao->m_MatchCfg; }
ScannerControlCfgDao* GetScannerControlCfgDao() { return m_ScannerControlCfgDao; }
//vector<LaserCfg*> *GetMatchLaser() { return &m_pLaserCfgDao->m_MatchLaser; }
//LaserCfgDao* GetLaserCfgDao() { return m_pLaserCfgDao; }
FavoriteCfg* GetFavoriteCfg() { return &m_FavoriteCfg; }
FixPointDao* GetFixPointDao() { return m_ScannerControlCfgDao->GetFixPointDao(); }
CameraCalibrationCfg* GetCameraCalibrationCfg() { return &m_CameraCalibrationCfg; }
void SaveCameraCalibrationCfg() {
SQLite::Transaction transaction(*m_pDB);
m_pBaseConfigDao->SaveCameraCalibrationCfg(m_CameraCalibrationCfg);
transaction.commit();
}
void AddComRefCfg(CommunicationCfg* cfg, IConnect* ic) { m_ComRefCfg[cfg] = ic; }
map<CommunicationCfg*, IConnect*>* GetComRefCfg() { return &m_ComRefCfg; }
// map<unsigned char, ServoCfg*>* GetMitsubishiCfg() { return &m_MitsubishiCfgMap; }
// map<unsigned char, ServoCfg*>* GetSanyoCfg() { return &m_SanyoCfgMap; }
// map<unsigned char, ServoCfg*>* GetSiemensCfg() { return &m_SiemensCfgMap; }
// map<string, ServoCfg*>* GetServoCfg() { return &m_ServoCfgMap; }
void UpdateZeroOffset(int id, long value);
map<int, bool>* GetPreJobParamCfg() { return &m_PrepareJobCfgs; }
void SavePreJobParamCfg() { m_PrepareJobCfgDao->Save(m_MachineCfg.m_MachineType, m_PrepareJobCfgs); }
void SendCfgToClients();
void UpdateCfg(const ReadData& rd);
private:
ConfigManager(const ConfigManager&) {};
ConfigManager& operator=(const ConfigManager&) {};
ConfigManager();
~ConfigManager();
void GenerateTable();
void ReadConfig();
void Export(string &content, string file_path);
void Import(string &content, string file_path);
private:
SQLite::Database* m_pDB;
HbdLanguageDao* m_pHbdLanguageDao;
MachineCfgDao* m_pMachineCfgDao;
BaseConfigDao* m_pBaseConfigDao;
AxisCfgDao* m_pAxisConfigDao;
IOCfgDao* m_pIOCfgDao;
CommunicationCfgDao* m_pCommunicationCfgDao;
InfoTextDao* m_pInfoTextDao;
AlarmCfgDao* m_pAlarmCfgDao;
SystemBaseDao* m_pSystemBaseDao;
ParamSetCfgDao* m_pParamSetCfgDao;
//LaserCfgDao* m_pLaserCfgDao;
PrepareJobCfgDao* m_PrepareJobCfgDao;
IOVersionDao* m_IOVersionDao;
ScannerControlCfgDao* m_ScannerControlCfgDao;
SystemBaseCfg m_SystemBaseCfg;
map<int,HbdLanguage*> m_LanguageMap;
MachineCfg m_MachineCfg;
ExtCfg m_ExtCfg;
ExtCfgNew m_ExtCfgNew;
map<short, AxisCfg*> m_AxisCfgs;
AxisCfg* m_MoldCfg;
AxisCfg* m_LoadCfg;
AxisCfg* m_ArmCfg;
AxisCfg* m_SupplyCfg;
AxisCfg* m_CleanCfg;
AxisCfg* m_EleCfg;
CoverCfg m_CoverCfg;
RunCfg m_RunCfg;
//map <int,LaserCfg*> m_LaserCfgs;
FavoriteCfg m_FavoriteCfg;
ParamLimitCfg m_ParamLimitCfg;
ParamLimitCfgNew m_ParamLimitCfgNew;
IOCfgWrapper* m_IOCfgWrapper;
map<int, vector<IOVersion*>*> m_IOVersions;
map<CommunicationCfg*, IConnect*> m_ComRefCfg;
CameraCalibrationCfg m_CameraCalibrationCfg;
PowderEstimateCfg m_PowderEstimateCfg;
ParamSetCfg m_ParamSetCfg;
AlarmCfgWrapper* m_AlarmCfgWrapper;
Machine* m_Machine;
RecoatCheckCfg m_RecoatCheckCfg;
map<int, bool> m_PrepareJobCfgs;
};