Initial commit
This commit is contained in:
commit
b7d90b9afe
16245 files changed
+3396666
No files matched your search
Executable
+122
@@ -0,0 +1,122 @@
|
||||
// **************************************************************************
|
||||
//
|
||||
// (C) Copyright 2009 Swiss SIMTEC AG
|
||||
//
|
||||
// **************************************************************************
|
||||
//
|
||||
// $HeadURL$
|
||||
// $LastChangedBy$
|
||||
// $LastChangedDate$
|
||||
// $LastChangedRevision$
|
||||
//
|
||||
// **************************************************************************
|
||||
|
||||
// manual class headers
|
||||
#include "GeoPairingDataFireReport.hpp"
|
||||
|
||||
namespace N_GeoPairingImpl
|
||||
{
|
||||
|
||||
GeoPairingDataFireReport::GeoPairingDataFireReport()
|
||||
: GeoPairingDataBase("GeoPairingDataFireReport")
|
||||
{
|
||||
m_Size = 18;
|
||||
}
|
||||
|
||||
// ---------------------------------------------------------------
|
||||
bool GeoPairingDataFireReport::parse(const QByteArray& a_transparentData)
|
||||
{
|
||||
|
||||
if (!GeoPairingDataBase::parse(a_transparentData))
|
||||
{
|
||||
ERROR_LOG(m_logger) << "Couldn't parse Header";
|
||||
return false;
|
||||
}
|
||||
|
||||
//char *l_Buffer = (char *) a_transparentData;
|
||||
const char *l_Buffer = a_transparentData.constData();
|
||||
int l_StreamPosition = 2;
|
||||
|
||||
memcpy(&m_TimerTick, l_Buffer + l_StreamPosition, sizeof(m_TimerTick));
|
||||
l_StreamPosition += sizeof(m_TimerTick);
|
||||
INFO_LOG(m_logger) << "Stream -> TimerTick : " << (int) m_TimerTick;
|
||||
|
||||
memcpy(&m_Ammunition, l_Buffer + l_StreamPosition, sizeof(m_Ammunition));
|
||||
l_StreamPosition += sizeof(m_Ammunition);
|
||||
INFO_LOG(m_logger) << "Stream -> Ammunition : " << (int) m_Ammunition;
|
||||
|
||||
memcpy(&m_Pitch, l_Buffer + l_StreamPosition, sizeof(m_Pitch));
|
||||
memcpy(&m_PitchMin, l_Buffer + l_StreamPosition, sizeof(m_PitchMin));
|
||||
memcpy(&m_PitchMax, l_Buffer + l_StreamPosition + sizeof(m_PitchMin), sizeof(m_PitchMax));
|
||||
l_StreamPosition += sizeof(m_Pitch);
|
||||
INFO_LOG(m_logger) << "Stream -> Elevation : " << (int) m_Pitch;
|
||||
|
||||
memcpy(&m_Heading, l_Buffer + l_StreamPosition, sizeof(m_Heading));
|
||||
memcpy(&m_HeadingMin, l_Buffer + l_StreamPosition, sizeof(m_HeadingMin));
|
||||
memcpy(&m_HeadingMax, l_Buffer + l_StreamPosition + sizeof(m_HeadingMin), sizeof(m_HeadingMax));
|
||||
l_StreamPosition += sizeof(m_Heading);
|
||||
INFO_LOG(m_logger) << "Stream -> Azimuth : " << (int) m_Heading;
|
||||
|
||||
memcpy(&m_Temperature, l_Buffer + l_StreamPosition, sizeof(m_Temperature));
|
||||
l_StreamPosition += sizeof(m_Temperature);
|
||||
INFO_LOG(m_logger) << "Stream -> Temperature : " << (int) m_Temperature;
|
||||
|
||||
memcpy(&m_TimeToDetonate, l_Buffer + l_StreamPosition, sizeof(m_TimeToDetonate));
|
||||
l_StreamPosition += sizeof(m_TimeToDetonate);
|
||||
INFO_LOG(m_logger) << "Stream -> TimeToDetonate : " << (int) m_TimeToDetonate;
|
||||
|
||||
UInt8 l_WeaponSpecific = 0;
|
||||
memcpy(&l_WeaponSpecific, l_Buffer + l_StreamPosition, sizeof(l_WeaponSpecific));
|
||||
l_StreamPosition += sizeof(l_WeaponSpecific);
|
||||
INFO_LOG(m_logger) << "Stream -> WeaponSpecific : " << (int) l_WeaponSpecific;
|
||||
|
||||
switch (m_DeviceID)
|
||||
{
|
||||
case PAN_GP_REPORT_MK19:
|
||||
{
|
||||
m_MK19NbrRounds = l_WeaponSpecific;
|
||||
m_Pitch = m_PitchMin;
|
||||
m_Heading = m_HeadingMin;
|
||||
m_UseMinMax = true;
|
||||
INFO_LOG(m_logger) << "--> MK19NbrRounds : " << (int) m_MK19NbrRounds;
|
||||
INFO_LOG(m_logger) << "--> Pitch (avg) : " << (int) m_Pitch;
|
||||
INFO_LOG(m_logger) << "--> PitchMin : " << (int) m_PitchMin;
|
||||
INFO_LOG(m_logger) << "--> PitchMax : " << (int) m_PitchMax;
|
||||
INFO_LOG(m_logger) << "--> Heading (avg) : " << (int) m_Heading;
|
||||
INFO_LOG(m_logger) << "--> HeadingMin : " << (int) m_HeadingMin;
|
||||
INFO_LOG(m_logger) << "--> HeadingMax : " << (int) m_HeadingMax;
|
||||
break;
|
||||
}
|
||||
case PAN_GP_REPORT_IGLA:
|
||||
case PAN_GP_REQUEST_IGLA:
|
||||
{
|
||||
m_IGLAModeAuto = l_WeaponSpecific & PAN_GP_IGLA_MODE_MASK;
|
||||
INFO_LOG(m_logger) << "--> IGLAModeAuto : " << m_IGLAModeAuto;
|
||||
|
||||
m_IGLAChangeOverPressed = l_WeaponSpecific & PAN_GP_IGLA_CHANGEOVER_MASK;
|
||||
INFO_LOG(m_logger) << "--> IGLAChangeOverPressed : " << m_IGLAChangeOverPressed;
|
||||
|
||||
m_IGLARequestNbr = l_WeaponSpecific >> 2;
|
||||
INFO_LOG(m_logger) << "--> IGLARequestNbr : " << (int) m_IGLARequestNbr;
|
||||
break;
|
||||
}
|
||||
case PAN_GP_REPORT_MORTAR:
|
||||
case PAN_GP_REPORT_G5_G6:
|
||||
case PAN_GP_REPORT_M109:
|
||||
break;
|
||||
default:
|
||||
{
|
||||
ERROR_LOG(m_logger) << "--> Weapon with id " << m_DeviceID << " not implemented yet !";
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
UInt8 l_Reserved = 0;
|
||||
memcpy(&l_Reserved, l_Buffer + l_StreamPosition, sizeof(l_Reserved));
|
||||
INFO_LOG(m_logger) << "Stream -> Reserved : " << (int) l_Reserved;
|
||||
//l_StreamPosition += sizeof(l_Reserved);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
} // namespace N_GeoPairingImpl
|
||||
Reference in new issue
Block a user