| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091 | #pragma once#include <string>#include <map>#include <list>#include <vector>class CMonitorObject{public:	CMonitorObject();	virtual ~CMonitorObject();public:	std::string id;	std::string name;	std::string type;	std::string up;	std::list<CMonitorObject*> m_lstMo;	//如果type为mo.mp的, 可能存在报警参数	//报警参数};class CMonitorObjectMng{	CMonitorObjectMng();	virtual ~CMonitorObjectMng();public:	static CMonitorObjectMng* Instance()	{ return &obj; };	BOOL	LoadMonitorTree();	BOOL	LoadHistoryData();	//获取战场站点名	bool	GetStationNameByMomP(const std::string& momp, std::string& station, std::string& momp_name);	bool	GetStationNameByMomP(const std::string& mo, const std::string& mp, std::string& station, std::string& momp_name);	//获取测力曲线名称	bool	GetNameByMoMp(const std::string& momp, std::string& name1, std::string& name2, std::string& name3);	bool	GetNameByMoMp(const std::string& momp, std::string& name1, std::string& name2, std::string& name3, std::string& out_name, std::string& in_name);	//设置测力曲线名称	void	SetNameByMoMp(const std::string& momp, std::string& name1, std::string& name2, std::string& name3);	//获取转换阻力方向名称	bool	GetDirectByMoMp(const std::string& momp, std::string& direct1, std::string& direct2);	//设置转换阻力方向名称	void	SetDirectByMoMp(const std::string& momp, std::string& direct1, std::string& direct2);	static bool	spiltByPoint(std::string&src, std::string& dst1, std::string& dst2);	std::string concatStringByPoint(const std::string& src1, const std::string& src2);	//通过ID来获取树节点	CMonitorObject* GetTreeByID(string& id);		static bool    ReNameMO(string id, string name);	static bool    AddMO(string id, string name, string type, string up);	static bool    AddMO2(string id, string name, string type, string up);private:	static CMonitorObject* GetTreeByID(CMonitorObject* p, string& id);	void	GetChild(std::list<CMonitorObject*>& lst, std::list<CMonitorObject*>& child, const std::string& id);	bool	GetStationNameByMomP(CMonitorObject* pInfo, const std::string& momp, std::string& station, std::string& momp_name);	void	Clear();	CMonitorObject*	m_treeroot = nullptr;//整棵树	std::map<std::string, std::string> m_mapImeiIdxMoMp;//设备号对应momp	std::map<std::string, std::string> m_mapMoMpImeiIdx;	std::map<std::string, std::vector<string>> m_mapMoMpName;  //mo, mp 对应三个测力曲线的名称	std::map<std::string, std::vector<string>> m_mapMoMpDirect;	//mo, mp 对应的两个阻力转换方向名称private:	static CMonitorObjectMng obj;};
 |