/** * 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