Files
qt5-legatus-legacy/Lts/Services/EffectShowManagement/object_effect_show_vehicle_status.cpp
T
2026-08-13 18:33:10 +02:00

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