Initial commit
This commit is contained in:
commit
b7d90b9afe
16245 files changed
+3396666
No files matched your search
Executable
+77
@@ -0,0 +1,77 @@
|
||||
/**
|
||||
* Retrieve information about which exercise is using which radio group
|
||||
* $Id$
|
||||
* $HeadURL$
|
||||
* $Author$
|
||||
* Created by Christian Ehrlicher, SLSE, 2016-04-14
|
||||
*/
|
||||
|
||||
#include "exm_handler.h"
|
||||
#include "main_handler.h"
|
||||
|
||||
namespace TrainingAreaBase
|
||||
{
|
||||
|
||||
ExmHandler::ExmHandler(MainHandler *mainHandler)
|
||||
: m_mainHandler(mainHandler)
|
||||
, m_logger(getLogger("ExmHandler"))
|
||||
{}
|
||||
|
||||
bool ExmHandler::init()
|
||||
{
|
||||
m_exmDtc = ExerciseManagement::Interface::Dtc::create(m_mainHandler->ddsHandler()->ddsConnector());
|
||||
connect(m_exmDtc.get(), &ExerciseManagement::Interface::Dtc::exerciseChanged,
|
||||
this, &ExmHandler::onExerciseChanged);
|
||||
connect(m_exmDtc.get(), &ExerciseManagement::Interface::Dtc::exerciseChanged,
|
||||
this, &ExmHandler::exerciseChanged);
|
||||
if (!m_exmDtc->enableExercise())
|
||||
{
|
||||
ERROR_LOG(m_logger) << "Can not read equipment/exercise mappings from PPM";
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
ExerciseManagement::Exercise ExmHandler::exercise(int exerciseId)
|
||||
{
|
||||
m_exmDtc->waitForHistoricalDataExercise(10 * 1000);
|
||||
return m_exmDtc->exercise(exerciseId);
|
||||
}
|
||||
|
||||
|
||||
void ExmHandler::onExerciseChanged(const ExerciseManagement::Exercise &data, DataModification modType)
|
||||
{
|
||||
if (!data.radioGroupId().is_set() || data.radioGroupId().get() == 0)
|
||||
modType = DataModification::eRemoved;
|
||||
|
||||
bool bExercise2RadioGroupChanged = false;
|
||||
switch (modType)
|
||||
{
|
||||
case DataModification::eAdded:
|
||||
case DataModification::eModified:
|
||||
{
|
||||
auto &val = m_exercise2RadioGroup[data.id()];
|
||||
if (val != data.radioGroupId().get())
|
||||
{
|
||||
bExercise2RadioGroupChanged = true;
|
||||
val = data.radioGroupId().get();
|
||||
}
|
||||
break;
|
||||
}
|
||||
case DataModification::eRemoved:
|
||||
{
|
||||
auto it = m_exercise2RadioGroup.find(data.id());
|
||||
if (it != m_exercise2RadioGroup.end())
|
||||
{
|
||||
bExercise2RadioGroupChanged = true;
|
||||
m_exercise2RadioGroup.erase(it);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (bExercise2RadioGroupChanged)
|
||||
emit exercise2RadioGroupChanged();
|
||||
}
|
||||
|
||||
|
||||
} // namespace TrainingAreaBase
|
||||
Reference in new issue
Block a user