Initial commit
This commit is contained in:
commit
b7d90b9afe
16245 files changed
+3396666
No files matched your search
@@ -0,0 +1,265 @@
|
||||
/**
|
||||
* Write XDR telegrams to a directory
|
||||
* $Id$
|
||||
* $HeadURL$
|
||||
* $Author$
|
||||
* Created by Christian Ehrlicher, SLSE, 2016-04-14
|
||||
*/
|
||||
|
||||
#include "nmea_handler_tx.h"
|
||||
#include <QJsonDocument>
|
||||
#include <QJsonObject>
|
||||
|
||||
namespace Nmea
|
||||
{
|
||||
NmeaHandlerTx::NmeaHandlerTx()
|
||||
: QObject()
|
||||
, SendToTab()
|
||||
, m_udpSocket(nullptr)
|
||||
, m_nmeaHost(QStringLiteral("localhost"))
|
||||
, m_nmeaPort(10110)
|
||||
, m_logger(getLogger("NmeaHandlerTx"))
|
||||
{
|
||||
resetSendCounter();
|
||||
}
|
||||
|
||||
TrainingAreaBase::SendToTab::HandleState NmeaHandlerTx::canHandleTelegram(int equipmentNumber, int telegramId) const
|
||||
{
|
||||
if(equipmentNumber != 1) // 1 is ComMaster
|
||||
return HandleState::No;
|
||||
|
||||
if (!m_udpSocket)
|
||||
return HandleState::No;
|
||||
|
||||
using namespace TrainingAreaBase::TetraIcd;
|
||||
if (telegramId == Constraints<SetDevicePowerRequest>::id())
|
||||
return HandleState::YesConsume;
|
||||
|
||||
return HandleState::No;
|
||||
}
|
||||
|
||||
void NmeaHandlerTx::resetSendCounter()
|
||||
{
|
||||
m_sendCounter = 1; // start at 1
|
||||
}
|
||||
|
||||
|
||||
void NmeaHandlerTx::onUdpSocketConnected(QUdpSocket *udpSocket, int nmeaPort, QString nmeaHost)
|
||||
{
|
||||
m_udpSocket = udpSocket;
|
||||
m_nmeaPort = nmeaPort;
|
||||
m_nmeaHost = nmeaHost;
|
||||
}
|
||||
|
||||
bool NmeaHandlerTx::txData(const TrainingAreaBase::TetraIcd::SetDevicePowerRequest &data)
|
||||
{
|
||||
return sendToTx(&data);
|
||||
}
|
||||
|
||||
bool NmeaHandlerTx::txData(const TrainingAreaBase::TetraIcd::UAVPerformMission &data)
|
||||
{
|
||||
Q_UNUSED(data);
|
||||
return false;
|
||||
}
|
||||
|
||||
bool NmeaHandlerTx::txData(const TrainingAreaBase::TetraIcd::Acknowledge &data)
|
||||
{
|
||||
Q_UNUSED(data)
|
||||
return false;
|
||||
}
|
||||
|
||||
bool NmeaHandlerTx::txData(const TrainingAreaBase::TetraIcd::DemandBite &data)
|
||||
{
|
||||
Q_UNUSED(data)
|
||||
return false;}
|
||||
|
||||
bool NmeaHandlerTx::txData(const TrainingAreaBase::TetraIcd::Init &data)
|
||||
{
|
||||
Q_UNUSED(data)
|
||||
return false;}
|
||||
|
||||
bool NmeaHandlerTx::txData(const TrainingAreaBase::TetraIcd::SetVulnerabilityModel &data)
|
||||
{
|
||||
Q_UNUSED(data)
|
||||
return false;}
|
||||
|
||||
bool NmeaHandlerTx::txData(const TrainingAreaBase::TetraIcd::DemandEquipmentConfigurationReport &data)
|
||||
{
|
||||
Q_UNUSED(data)
|
||||
return false;}
|
||||
|
||||
bool NmeaHandlerTx::txData(const TrainingAreaBase::TetraIcd::DemandVulnerabilityStateChange &data)
|
||||
{
|
||||
Q_UNUSED(data)
|
||||
return false;}
|
||||
|
||||
bool NmeaHandlerTx::txData(const TrainingAreaBase::TetraIcd::LanguageSelection &data)
|
||||
{
|
||||
Q_UNUSED(data)
|
||||
return false;}
|
||||
|
||||
bool NmeaHandlerTx::txData(const TrainingAreaBase::TetraIcd::EquipmentMessage &data)
|
||||
{
|
||||
Q_UNUSED(data)
|
||||
return false;}
|
||||
|
||||
bool NmeaHandlerTx::txData(const TrainingAreaBase::TetraIcd::EquipmentMessageOC &data)
|
||||
{
|
||||
Q_UNUSED(data)
|
||||
return false;}
|
||||
|
||||
bool NmeaHandlerTx::txData(const TrainingAreaBase::TetraIcd::CreateSingleExplosion &data)
|
||||
{
|
||||
Q_UNUSED(data)
|
||||
return false;}
|
||||
|
||||
bool NmeaHandlerTx::txData(const TrainingAreaBase::TetraIcd::CreateAreaExplosion &data)
|
||||
{
|
||||
Q_UNUSED(data)
|
||||
return false;}
|
||||
|
||||
bool NmeaHandlerTx::txData(const TrainingAreaBase::TetraIcd::CreateMineArea &data)
|
||||
{
|
||||
Q_UNUSED(data)
|
||||
return false;}
|
||||
|
||||
bool NmeaHandlerTx::txData(const TrainingAreaBase::TetraIcd::MineAreaSingleMineState &data)
|
||||
{
|
||||
Q_UNUSED(data)
|
||||
return false;}
|
||||
|
||||
bool NmeaHandlerTx::txData(const TrainingAreaBase::TetraIcd::CreateNContamination &data)
|
||||
{
|
||||
Q_UNUSED(data)
|
||||
return false;}
|
||||
|
||||
bool NmeaHandlerTx::txData(const TrainingAreaBase::TetraIcd::CreateCContamination &data)
|
||||
{
|
||||
Q_UNUSED(data)
|
||||
return false;}
|
||||
|
||||
bool NmeaHandlerTx::txData(const TrainingAreaBase::TetraIcd::DeactivateEffectSimulation &data)
|
||||
{
|
||||
Q_UNUSED(data)
|
||||
return false;}
|
||||
|
||||
bool NmeaHandlerTx::txData(const TrainingAreaBase::TetraIcd::ModifyAreaEffectSimulationName &data)
|
||||
{
|
||||
Q_UNUSED(data)
|
||||
return false;}
|
||||
|
||||
bool NmeaHandlerTx::txData(const TrainingAreaBase::TetraIcd::PauseEffectSimulation &data)
|
||||
{
|
||||
Q_UNUSED(data)
|
||||
return false;}
|
||||
|
||||
bool NmeaHandlerTx::txData(const TrainingAreaBase::TetraIcd::ResumeEffectSimulation &data)
|
||||
{
|
||||
Q_UNUSED(data)
|
||||
return false;}
|
||||
|
||||
bool NmeaHandlerTx::txData(const TrainingAreaBase::TetraIcd::MineTriggered &data)
|
||||
{
|
||||
Q_UNUSED(data)
|
||||
return false;}
|
||||
|
||||
bool NmeaHandlerTx::txData(const TrainingAreaBase::TetraIcd::DusMineReactivation &data)
|
||||
{
|
||||
Q_UNUSED(data)
|
||||
return false;}
|
||||
|
||||
bool NmeaHandlerTx::txData(const TrainingAreaBase::TetraIcd::CreateFunctionalArea &data)
|
||||
{
|
||||
Q_UNUSED(data)
|
||||
return false;}
|
||||
|
||||
bool NmeaHandlerTx::txData(const TrainingAreaBase::TetraIcd::CreateDusSingleMine &data)
|
||||
{
|
||||
Q_UNUSED(data)
|
||||
return false;}
|
||||
|
||||
bool NmeaHandlerTx::txData(const TrainingAreaBase::TetraIcd::ExerciseEnvironmentData &data)
|
||||
{
|
||||
Q_UNUSED(data)
|
||||
return false;}
|
||||
|
||||
bool NmeaHandlerTx::txData(const TrainingAreaBase::TetraIcd::ExerciseStateData &data)
|
||||
{
|
||||
Q_UNUSED(data)
|
||||
return false;}
|
||||
|
||||
bool NmeaHandlerTx::txData(const TrainingAreaBase::TetraIcd::ParticipantSwVersionsRequest &data)
|
||||
{
|
||||
Q_UNUSED(data)
|
||||
return false;}
|
||||
|
||||
bool NmeaHandlerTx::txData(const TrainingAreaBase::TetraIcd::OpaquePayloadDataOut &data)
|
||||
{
|
||||
Q_UNUSED(data)
|
||||
return false;}
|
||||
|
||||
bool NmeaHandlerTx::txData(const TrainingAreaBase::TetraIcd::TechnicalArea &data)
|
||||
{
|
||||
Q_UNUSED(data)
|
||||
return false;}
|
||||
|
||||
bool NmeaHandlerTx::txData(const TrainingAreaBase::TetraIcd::CesHitInformation &data)
|
||||
{
|
||||
Q_UNUSED(data)
|
||||
return false;}
|
||||
|
||||
bool NmeaHandlerTx::txData(const TrainingAreaBase::TetraIcd::CesHitRequest &data)
|
||||
{
|
||||
Q_UNUSED(data)
|
||||
return false;}
|
||||
|
||||
bool NmeaHandlerTx::txData(const TrainingAreaBase::TetraIcd::ParticipantMode &data)
|
||||
{
|
||||
Q_UNUSED(data)
|
||||
return false;}
|
||||
|
||||
bool NmeaHandlerTx::txData(const TrainingAreaBase::TetraIcd::DemandParticipantMode &data)
|
||||
{
|
||||
Q_UNUSED(data)
|
||||
return false;}
|
||||
|
||||
bool NmeaHandlerTx::txData(const TrainingAreaBase::TetraIcd::ParticipantConfiguration &data)
|
||||
{
|
||||
Q_UNUSED(data)
|
||||
return false;}
|
||||
|
||||
bool NmeaHandlerTx::txData(const TrainingAreaBase::TetraIcd::DemandParticipantConfiguration &data)
|
||||
{
|
||||
Q_UNUSED(data)
|
||||
return false;}
|
||||
|
||||
bool NmeaHandlerTx::txData(const TrainingAreaBase::TetraIcd::ExerciseEquipmentAssignmentComplete &data)
|
||||
{
|
||||
Q_UNUSED(data)
|
||||
return false;}
|
||||
|
||||
bool NmeaHandlerTx::txData(const TrainingAreaBase::TetraIcd::Sanitation &data)
|
||||
{
|
||||
Q_UNUSED(data)
|
||||
return false;}
|
||||
|
||||
bool NmeaHandlerTx::txData(const TrainingAreaBase::TetraIcd::SelectiveReammunition &data)
|
||||
{
|
||||
Q_UNUSED(data)
|
||||
return false;}
|
||||
|
||||
bool NmeaHandlerTx::sendToTx(const TrainingAreaBase::TetraIcd::TrainingAreaTelegram *data)
|
||||
{
|
||||
if(data->toJson().value(QStringLiteral("powerType")).toInt() != static_cast<int>(TrainingAreaBase::TetraIcd::PowerMethod::PowerOff))
|
||||
return false;
|
||||
if (!m_udpSocket)
|
||||
return false;
|
||||
QByteArray shutdownTelegram ("$IIXDR,S,1,,SERVICE_CONTROL_PRESHUTDOWN*79");
|
||||
qDebug() << shutdownTelegram;
|
||||
m_udpSocket->writeDatagram(shutdownTelegram, QHostAddress(m_nmeaHost), m_nmeaPort);
|
||||
return true;
|
||||
}
|
||||
|
||||
} // namespace NmeaTabPlugin
|
||||
|
||||
|
||||
Reference in new issue
Block a user