Initial commit
This commit is contained in:
commit
b7d90b9afe
16245 files changed
+3396666
No files matched your search
+198
@@ -0,0 +1,198 @@
|
||||
/**
|
||||
* @RDE_HEADER@
|
||||
* Class SidcBuilder
|
||||
* $Id$
|
||||
* $HeadURL$
|
||||
* $Author$
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
// Own
|
||||
#include "sidc_builder_base.h"
|
||||
#include "sidc_codec.h"
|
||||
#include "symbol_dictionary.h"
|
||||
|
||||
// Qt
|
||||
#include <QString>
|
||||
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
namespace AdvancedSymbology
|
||||
{
|
||||
|
||||
class ADVANCED_SYMBOLOGY_EXPORT SidcBuilder : SidcBuilderBase
|
||||
{
|
||||
public:
|
||||
|
||||
explicit SidcBuilder(AdvancedSymbology::SymbolDictionary *symbolDictionary = nullptr);
|
||||
|
||||
bool setSidc(const QString &sidc)
|
||||
{
|
||||
if (SidcCodec::isEncoded(sidc))
|
||||
{
|
||||
switch (SidcCodec::decodeSymbologyType(sidc))
|
||||
{
|
||||
case SymbologyType::APP6B : return initFromApp6B(sidc);
|
||||
case SymbologyType::APP6D : return initFromApp6D(sidc);
|
||||
case SymbologyType::MIL2525C : return false; // return initFromMil2525C(sidc);
|
||||
case SymbologyType::MIL2525D : return initFromMil2525D(sidc);
|
||||
case SymbologyType::None : return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (m_symbolDictionary)
|
||||
{
|
||||
switch (m_symbolDictionary->symbologyType())
|
||||
{
|
||||
case SymbologyType::APP6B : return initFromApp6B(SidcCodec::encodeComplete(SymbologyType::APP6B, sidc));
|
||||
case SymbologyType::APP6D : return initFromApp6D(SidcCodec::encodeComplete(SymbologyType::APP6D, sidc));
|
||||
case SymbologyType::MIL2525C : return false; // return initFromMil2525C(sidc);
|
||||
case SymbologyType::MIL2525D : return initFromMil2525D(SidcCodec::encodeComplete(SymbologyType::MIL2525D, sidc));
|
||||
case SymbologyType::None : return false;
|
||||
}
|
||||
}
|
||||
return initFromMil2525D(SidcCodec::encodeComplete(SymbologyType::MIL2525D, sidc));
|
||||
}
|
||||
return false;
|
||||
} // setSidc
|
||||
|
||||
bool initFromSymbologyType(SymbologyType symbologyType, const QString &sidc);
|
||||
bool initFromSymbologyTypeBaseSymbolCode(SymbologyType symbologyType, const QString &baseSymbolCode);
|
||||
|
||||
bool initFromMil2525D(const QString &sidcMil2525D);
|
||||
bool initFromMil2525DBaseSymbolCode(const QString &sidcMil2525D_baseSymbolCode);
|
||||
|
||||
bool initFromApp6B(const QString &sidcApp6B);
|
||||
bool initFromApp6BBaseSymbolCode(const QString &sidcApp6B_baseSymbolCode);
|
||||
|
||||
bool initFromApp6D(const QString &sidcAPP6D);
|
||||
bool initFromApp6DBaseSymbolCode(const QString &sidcAPP6D_baseSymbolCode);
|
||||
|
||||
~SidcBuilder() = default;
|
||||
|
||||
QString toSidc() const;
|
||||
QString toRawSidc() const;
|
||||
|
||||
|
||||
// !!! Attention: digit count starts with 1, not with 0!!!
|
||||
|
||||
//
|
||||
// Set A, digit 1,2
|
||||
//
|
||||
// Version
|
||||
|
||||
|
||||
//
|
||||
// Set A, digit 3,4
|
||||
//
|
||||
// StandardIdentity
|
||||
SidcDefinitions::StandardIdentity standardIdentity() const; // 1st and 2nd
|
||||
void setStandardIdentity(const SidcDefinitions::StandardIdentity &standardIdentity);
|
||||
|
||||
SidcDefinitions::Context context() const;
|
||||
void setContext(SidcDefinitions::Context context);
|
||||
|
||||
SidcDefinitions::Identity identity() const;
|
||||
void setIdentity(SidcDefinitions::Identity identity);
|
||||
|
||||
|
||||
bool isIdentityAssumed() const;
|
||||
|
||||
//
|
||||
// Set A, digit 5,6
|
||||
//
|
||||
// SymbolSet
|
||||
SidcDefinitions::SymbolSet symbolSet() const;
|
||||
void setSymbolSet(const SidcDefinitions::SymbolSet &symbolSet);
|
||||
|
||||
//
|
||||
// Set A, digit 7
|
||||
//
|
||||
// Status
|
||||
SidcDefinitions::Status status() const;
|
||||
void setStatus(const SidcDefinitions::Status &status);
|
||||
|
||||
//
|
||||
// Set A, digit 8
|
||||
//
|
||||
// HQTFDummy
|
||||
SidcDefinitions::HQTFDummy hqTfFd() const;
|
||||
uint hqTfFd_UInt() const;
|
||||
void setHqTfFd(const SidcDefinitions::HQTFDummy &hqTfFd);
|
||||
|
||||
bool headquarters() const;
|
||||
bool taskForce() const;
|
||||
bool feintDummy() const;
|
||||
|
||||
|
||||
//
|
||||
// Set A, digit 9, 10
|
||||
//
|
||||
SidcDefinitions::AmplifierGroup amplifierGroup() const; // digit 9
|
||||
void setAmplifierGroup(const SidcDefinitions::AmplifierGroup &lifierGroup);
|
||||
|
||||
unsigned int amplifier2ndDigit() const; // digit 10
|
||||
void setAmplifier2ndDigit(unsigned int amplifierSecondDigit);
|
||||
|
||||
//
|
||||
// Set B, digit 11 - 16
|
||||
//
|
||||
QString symbolEntityCode() const;
|
||||
void setSymbolEntityCode(const QString &);
|
||||
|
||||
|
||||
unsigned int sectorModifier1Digit(); // Set B, digit 17 - 18
|
||||
unsigned int sectorModifier2Digit(); // set B, digit 19 - 20
|
||||
|
||||
void setSectorModifier1Digit(unsigned int); // Set B, digit 17 - 18
|
||||
void setSectorModifier2Digit(unsigned int); // set B, digit 19 - 20
|
||||
|
||||
private:
|
||||
void init();
|
||||
void initAmplifier();
|
||||
|
||||
QString m_first10_mil2525D;
|
||||
QString m_second10_mil2525D;
|
||||
|
||||
QString m_app6bRawSidc;
|
||||
|
||||
//
|
||||
// SET A :
|
||||
//
|
||||
|
||||
|
||||
// Amplifier (Echelon/Mobility/TowedArray)
|
||||
SidcDefinitions::AmplifierGroup m_amplifierGroup;
|
||||
SidcDefinitions::EchelonBrigadeAndBelow m_e_BrigadeAndBelow;
|
||||
SidcDefinitions::EchelonDivisionAndAbove m_e_DivisionAndAbove;
|
||||
SidcDefinitions::MobilityOnLand m_e_MobilityOnLand;
|
||||
SidcDefinitions::MobilityOnSnow m_e_MobilityOnSnow;
|
||||
SidcDefinitions::MobilityOnWater m_e_MobilityOnWater;
|
||||
SidcDefinitions::NavalTowedArray m_e_NavalTowedArray;
|
||||
|
||||
|
||||
//
|
||||
// : SET A
|
||||
//
|
||||
|
||||
|
||||
//
|
||||
// SET B :
|
||||
//
|
||||
|
||||
// not implemented yes
|
||||
|
||||
//
|
||||
// : SET B
|
||||
//
|
||||
|
||||
|
||||
static qint32 _smallest;
|
||||
static qint32 _specialPartA;
|
||||
static qint32 _invalidPartB;
|
||||
static qint32 _retiredPartB;
|
||||
};
|
||||
|
||||
|
||||
} // namespace AdvancedSymbology
|
||||
Reference in new issue
Block a user