57 lines
1.4 KiB
C++
Executable File
57 lines
1.4 KiB
C++
Executable File
/**
|
|
* Convert internal gear and charge id to and from tas ids
|
|
* $Id$
|
|
* $HeadURL$
|
|
* $Author$
|
|
* Created by Christian Ehrlicher, SLSE, 2016-04-14
|
|
*/
|
|
|
|
#include "pdm_handler.h"
|
|
#include "main_handler.h"
|
|
#include <ProjectDataManagement/pdm_dtc.h>
|
|
|
|
namespace Buildings
|
|
{
|
|
PdmHandler::PdmHandler(MainHandler *mainHandler)
|
|
: m_mainHandler(mainHandler)
|
|
, m_bPdmInitialized(false)
|
|
, m_logger(getLogger("PdmHandler"))
|
|
{}
|
|
|
|
PdmHandler::~PdmHandler()
|
|
{}
|
|
void PdmHandler::initializePdm()
|
|
{
|
|
if (m_bPdmInitialized)
|
|
return;
|
|
|
|
m_bPdmInitialized = true;
|
|
auto dtcPdm = ProjectDataManagement::Interface::Dtc::create(m_mainHandler->ddsHandler()->ddsConnector());
|
|
if (!dtcPdm->enableChargeType() ||
|
|
!dtcPdm->enableBuildingChargeEffect() ||
|
|
!dtcPdm->waitForHistoricalDataChargeType(20000) ||
|
|
!dtcPdm->waitForHistoricalDataBuildingChargeEffect(20000)) // 20s - more to load
|
|
{
|
|
ERROR_LOG(m_logger) << "Can not read charge/gear types from PDM";
|
|
m_bPdmInitialized = false;
|
|
return;
|
|
}
|
|
m_buildingChargeEffects = dtcPdm->buildingChargeEffects();
|
|
m_chargeTypes = dtcPdm->chargeTypes();
|
|
}
|
|
|
|
QMap<int, ProjectDataManagement::BuildingChargeEffect> PdmHandler::buildingChargeEffects()
|
|
{
|
|
initializePdm();
|
|
return m_buildingChargeEffects;
|
|
}
|
|
|
|
QMap<int, ProjectDataManagement::ChargeType> PdmHandler::chargeTypes()
|
|
{
|
|
initializePdm();
|
|
return m_chargeTypes;
|
|
}
|
|
|
|
|
|
} // namespace Buildings
|