121 lines
4.0 KiB
C++
Executable File
121 lines
4.0 KiB
C++
Executable File
/**
|
|
* Handler for the HMI language
|
|
* $Id$
|
|
* $HeadURL$
|
|
* $Author$
|
|
*/
|
|
|
|
#include "object_effect_show_vehicle_status.h"
|
|
|
|
#include "initialization.h"
|
|
|
|
namespace EffectShowManagement
|
|
{
|
|
|
|
ObjectEffectShowVehicleStatus::ObjectEffectShowVehicleStatus(Initialization *mainHandler)
|
|
: m_mainHandler(mainHandler)
|
|
, m_logger(getLogger("ObjectEffectShowVehicleStatus"))
|
|
{
|
|
}
|
|
|
|
ObjectEffectShowVehicleStatus::~ObjectEffectShowVehicleStatus()
|
|
{
|
|
if (m_data.esmParticipantId > 0)
|
|
m_mainHandler->dds()->dts()->removeEffectShowActorRelocationByKey(m_data.esmParticipantId);
|
|
}
|
|
|
|
|
|
void ObjectEffectShowVehicleStatus::set(const ConvertFromTab::VehicleStatus_t &vehicleStatus)
|
|
{
|
|
m_data.esmParticipantId = m_mainHandler->dds()->dtcPpm()->participantIdByEquipmentNumber( vehicleStatus.equipmentNumber);
|
|
m_data.timestamp = vehicleStatus.timestamp;
|
|
m_data.airSpeedMeterFail = vehicleStatus.airSpeedMeterFail;
|
|
m_data.ammunitionAvailable = vehicleStatus.ammunitionAvailable;
|
|
m_data.ammunitionMagazine = vehicleStatus.ammunitionMagazine;
|
|
m_data.controlComputerFail = vehicleStatus.controlComputerFail;
|
|
m_data.feature = vehicleStatus.feature;
|
|
m_data.inclinationSensorFail = vehicleStatus.inclinationSensorFail;
|
|
m_data.magazineFail = vehicleStatus.magazineFail;
|
|
m_data.navigationFail = vehicleStatus.navigationFail;
|
|
m_data.operational = vehicleStatus.operational;
|
|
}
|
|
|
|
void ObjectEffectShowVehicleStatus::set(const HandlerPpmData::Participant_t &participant)
|
|
{
|
|
m_data.esmParticipantId = participant.id;
|
|
m_data.nameEffectShowActor = participant.name;
|
|
}
|
|
|
|
void ObjectEffectShowVehicleStatus::set(const Database::EsmEffectShowVehicleStatus &data)
|
|
{
|
|
m_data = data;
|
|
}
|
|
|
|
void ObjectEffectShowVehicleStatus::createObject()
|
|
{
|
|
if (!m_mainHandler->db()->insert(m_data))
|
|
{
|
|
ERROR_LOG(m_logger) << "Error inserting EsmEffectShowVehicleStatus into database. esmParticipantId" << m_data.esmParticipantId;
|
|
return;
|
|
}
|
|
|
|
DEBUG_LOG(m_logger) << "New Effect Show Vehicle Status esmParticipantId: " << m_data.esmParticipantId;
|
|
|
|
// Publish Data via DTS
|
|
onPublishData();
|
|
}
|
|
|
|
void ObjectEffectShowVehicleStatus::updateObject()
|
|
{
|
|
if (m_data.esmParticipantId <= 0)
|
|
{
|
|
ERROR_LOG(m_logger) << "Update object illegal esmParticipantId: " << m_data.esmParticipantId;
|
|
return;
|
|
}
|
|
|
|
if (!m_mainHandler->db()->update(m_data))
|
|
{
|
|
ERROR_LOG(m_logger) << "Error updating EsmEffectShowVehicleStatus into database esmParticipantId: " << m_data.esmParticipantId;
|
|
return;
|
|
}
|
|
|
|
DEBUG_LOG(m_logger) << "Data changed for EsmEffectShowVehicleStatus esmParticipantId: " << m_data.esmParticipantId;
|
|
|
|
// Publish Data via DTS
|
|
onPublishData();
|
|
}
|
|
|
|
void ObjectEffectShowVehicleStatus::removeObject()
|
|
{
|
|
if (!m_mainHandler->db()->removeEsmEffectShowVehicleStatus(m_data.esmParticipantId))
|
|
{
|
|
ERROR_LOG(m_logger) << "EsmEffectShowVehicleStatus can not be removed eqpNum: " << m_data.esmParticipantId;
|
|
return;
|
|
}
|
|
}
|
|
|
|
void ObjectEffectShowVehicleStatus::onPublishData()
|
|
{
|
|
|
|
EffectShowManagement::EffectShowVehicleStatus ddsData;
|
|
|
|
//ddsData.equipmentNumber(m_data.equipmentNumber);
|
|
ddsData.airSpeedMeterFail(m_data.airSpeedMeterFail);
|
|
ddsData.ammunitionAvailable(m_data.ammunitionAvailable);
|
|
ddsData.ammunitionMagazine(m_data.ammunitionMagazine);
|
|
ddsData.controlComputerFail(m_data.controlComputerFail);
|
|
ddsData.feature(EffectShowManagement::Feature_e_def::type(m_data.feature));
|
|
ddsData.esmParticipantId(m_data.esmParticipantId);
|
|
ddsData.inclinationSensorFail(m_data.inclinationSensorFail);
|
|
ddsData.magazineFail(m_data.magazineFail);
|
|
ddsData.nameEffectShowActor(m_data.nameEffectShowActor.toStdString());
|
|
ddsData.operational(m_data.operational);
|
|
ddsData.sampleTime(m_data.timestamp);
|
|
INFO_LOG(m_logger) << "Publish EsmEffectShowVehicleStatus-data to dds (" << m_data.esmParticipantId << ") ...";
|
|
|
|
if (!m_mainHandler->dds()->dts()->publish(ddsData))
|
|
ERROR_LOG(m_logger) << "Error publishing EsmEffectShowVehicleStatus-data to dds";
|
|
}
|
|
|
|
} // Namespace EffectShowManagement
|