#include "PouManager.h"
#include "Pou.h"
#include "WindowAppPouScene.h"
PouManager::PouManager()
{
m_pHardwarePou = nullptr;
}
///
/// 注册Pou信息
///
///
void PouManager::registerPou(POU* pPou)
{
Q_ASSERT(pPou != nullptr);
m_Pous.insert(pPou->pouName(), pPou);
}
///
/// 注册硬件Pou
///
///
void PouManager::registerHdwPou(POU* pPou)
{
m_pHardwarePou = pPou;
}
///
/// 获取Pou数据结构
///
///
QMap& PouManager::getAllPous()
{
return m_Pous;
}
///
/// 获取Hardware Pou
///
///
POU* PouManager::getHdwPou()
{
return m_pHardwarePou;
}
///
/// 根据名字获取指定的Pou
///
///
///
POU* PouManager::getPouByName(const QString& strName)
{
return m_Pous.value(strName);
}
///
/// 2022-6-12,获取指定Pou的Scene指针
///
///
///
WindowAppPouScene* PouManager::getPouSceneByName(const QString& strName)
{
return (m_Pous.value(strName))->parentScene();
}
///
/// 移除指定的Pou
///
///
void PouManager::RemovePou(const QString& strName)
{
m_Pous.remove(strName);
}
///
/// 重置所有Pou数据结构
///
void PouManager::resetAllPous()
{
// m_Pous.clear();
// 2022-2-24 重置过程需要跳过硬件组态
for (QMap::iterator it = m_Pous.begin(); it != m_Pous.end();)
{
if (it.key() != GROUP_NAME_HARDWARE)
{
it = m_Pous.erase(it);
}
else
{
it++;
}
}
}
///
/// 是否本分组是否Pou中的一个
///
///
///
bool PouManager::isPou(const QString& strName)
{
return m_Pous.contains(strName);
}