Initial commit
This commit is contained in:
commit
b7d90b9afe
16245 files changed
+3396666
No files matched your search
@@ -0,0 +1,47 @@
|
||||
#
|
||||
# monitoring of the target areas
|
||||
# $Id$
|
||||
# $HeadURL$
|
||||
# $Author$
|
||||
#
|
||||
|
||||
SET(SRCS
|
||||
plugin.cpp
|
||||
plugin.h
|
||||
handler_geopairing.cpp
|
||||
handler_geopairing.h
|
||||
settings.cpp
|
||||
settings.h
|
||||
GeoPairing/GeoPairing.cpp
|
||||
GeoPairing/GeoPairing.hpp
|
||||
logger.cpp
|
||||
logger.h
|
||||
)
|
||||
|
||||
# 22.11.2024, Norbert Thoden
|
||||
# cesPluginGeoPairing is a MODULE; not a SHARED
|
||||
# So NGL_ADD_LIBRARY2 SHARED with would create ./Plugins/GeoPairing/cesplugingeopairing_export.h,
|
||||
# but not with MODULE.
|
||||
# But is an export macro realy needed? -> No
|
||||
NGL_ADD_LIBRARY(AAR SV cesPluginGeoPairing MODULE ${SRCS})
|
||||
NGL_TARGET_LINK_LIBRARIES(cesPluginGeoPairing
|
||||
Qt5::Network
|
||||
Qt5::Widgets
|
||||
cesPluginInterface
|
||||
ngldb
|
||||
svcCesDDSCommon
|
||||
# GeoParing stuff
|
||||
GBL_Types
|
||||
GBL_ConfigSystem
|
||||
FW_Ballistic
|
||||
svcCesGeoPairingImpl
|
||||
${SCHUSSTAFEL_LIBRARY}
|
||||
)
|
||||
NGL_INSTALL_TARGET(cesPluginGeoPairing)
|
||||
|
||||
ADD_SUBDIRECTORY(GBL_Global)
|
||||
ADD_SUBDIRECTORY(GBL_ConfigSystem)
|
||||
ADD_SUBDIRECTORY(GBL_Types)
|
||||
ADD_SUBDIRECTORY(FW_Ballistic)
|
||||
ADD_SUBDIRECTORY(GeoPairingImpl)
|
||||
ADD_SUBDIRECTORY(GeoPairing)
|
||||
+84
@@ -0,0 +1,84 @@
|
||||
#pragma once
|
||||
|
||||
// **************************************************************************
|
||||
//
|
||||
// (C) Copyright 2009 Swiss SIMTEC AG
|
||||
//
|
||||
// **************************************************************************
|
||||
//
|
||||
// $HeadURL$
|
||||
// $LastChangedBy$
|
||||
// $LastChangedDate$
|
||||
// $LastChangedRevision$
|
||||
//
|
||||
// **************************************************************************
|
||||
|
||||
#include <GBL_Global/Types.hpp>
|
||||
#include <QString>
|
||||
|
||||
#include "DiscreteType.hpp"
|
||||
#include "PolygonParamType.hpp"
|
||||
#include "CWParamType.hpp"
|
||||
#include "StandardType.hpp"
|
||||
|
||||
namespace N_Ballistic
|
||||
{
|
||||
|
||||
/**
|
||||
* This is the container class for ammunitions
|
||||
*
|
||||
* @author Daniel.Schmid
|
||||
* @version 1.0
|
||||
* @created 10-Aug-2009 11:04:46
|
||||
*/
|
||||
struct Ammunition
|
||||
{
|
||||
public:
|
||||
|
||||
/**
|
||||
* @author Daniel.Schmid
|
||||
* @version 1.0
|
||||
* @created 10-Aug-2009 11:10:21
|
||||
*/
|
||||
struct AmmunInfoType
|
||||
{
|
||||
QString m_Name;
|
||||
/**
|
||||
* Caliber of the ammunition, usually the diameter
|
||||
*/
|
||||
Float64 m_Caliber = 0.0;
|
||||
/**
|
||||
* The nominal shooting range
|
||||
*/
|
||||
Float64 m_Range = 0.0;
|
||||
/**
|
||||
* The initial velocity
|
||||
*/
|
||||
Float64 m_Speed = 0.0;
|
||||
Float64 m_TimeOut = 0.0;
|
||||
/**
|
||||
* The calculation algorithm, can be "Generic", "PitonBressant" or "DAntonio"
|
||||
*/
|
||||
QString m_Algorithm;
|
||||
/**
|
||||
* Can be "OnTimer" or "OnDetonate"
|
||||
*/
|
||||
QString m_ReasonToDetonate;
|
||||
/**
|
||||
* This is the value of devivation of the ammunition (impact position variance)
|
||||
*/
|
||||
Float64 m_Deviation = 0.0;
|
||||
/**
|
||||
* This is the value of derivation of the ammunition (impact position right drift)
|
||||
*/
|
||||
Float64 m_Derivation = 0.0;
|
||||
};
|
||||
|
||||
DiscreteType m_DiscreteParams;
|
||||
PolygonParamType m_PolygonParams;
|
||||
Ammunition::AmmunInfoType m_AmmunInfo;
|
||||
StandardType m_StandardParams;
|
||||
CWParamType m_CWParams;
|
||||
};
|
||||
|
||||
}
|
||||
+64
@@ -0,0 +1,64 @@
|
||||
/**
|
||||
* @RDE_HEADER@
|
||||
* Service Base
|
||||
* $Id$
|
||||
* $HeadURL$
|
||||
* $Author$
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
|
||||
namespace N_Ballistic
|
||||
{
|
||||
// siehe SF_munitionsart_et
|
||||
/*
|
||||
enum ammunitionTypeIndirectFire {
|
||||
UNKNOWN = 0,
|
||||
STEILFEUER_HE_AZ = 1,
|
||||
STEILFEUER_HE_DZ = 2,
|
||||
STEILFEUER_BOMBLET = 3,
|
||||
STEILFEUER_SM_ART = 4,
|
||||
NEBEL = 5,
|
||||
MOERSER = 9,
|
||||
MOERSER_AZ = 10,
|
||||
MOERSER_ANNZ = 11,
|
||||
FLAEFLU_BK = 20,
|
||||
FLAEFLU_RAKETE = 21,
|
||||
FLAEFLU_BOMBLET = 22,
|
||||
FLAEFLU_SB = 23,
|
||||
IGLA = 25,
|
||||
MK19_M430 = 111,
|
||||
MK19_M385 = 112
|
||||
};*/
|
||||
enum ammunitionTypeIndirectFire { // TODO clarify values
|
||||
UNKNOWN = 0,
|
||||
STEILFEUER_HE_AZ = 371,
|
||||
STEILFEUER_HE_DZ = 372,
|
||||
STEILFEUER_BOMBLET = 373,
|
||||
STEILFEUER_SM_ART = 374,
|
||||
NEBEL = 385,
|
||||
MOERSER = 381,
|
||||
MOERSER_AZ = 381,
|
||||
MOERSER_ANNZ = 381,
|
||||
FLAEFLU_BK = 471,
|
||||
FLAEFLU_RAKETE = 472,
|
||||
FLAEFLU_BOMBLET = 473,
|
||||
FLAEFLU_SB = 474,
|
||||
IGLA = 25,
|
||||
MK19_M430 = 27,
|
||||
MK19_M385 = 26
|
||||
};
|
||||
enum ammunitionTypeOSAG {
|
||||
UNKNOWN_OSAG = 0,
|
||||
MK19_M385_OSAG = 26,
|
||||
MK19_M430_OSAG = 27,
|
||||
M1A2_PRC_OSAG = 30,
|
||||
M1A2_PRX_OSAG = 31,
|
||||
VLAP_PRC_OSAG = 32,
|
||||
VLAP_PRX_OSAG = 33,
|
||||
SMK_OSAG = 34,
|
||||
CLUSTER_OSAG = 35,
|
||||
MORTAR_PRC_OSAG = 217,
|
||||
MORTAR_PRX_OSAG = 218
|
||||
};
|
||||
}
|
||||
Executable
+219
@@ -0,0 +1,219 @@
|
||||
|
||||
// **************************************************************************
|
||||
//
|
||||
// (C) Copyright 2009 Swiss SIMTEC AG
|
||||
//
|
||||
// **************************************************************************
|
||||
//
|
||||
// $HeadURL$
|
||||
// $LastChangedBy$
|
||||
// $LastChangedDate$
|
||||
// $LastChangedRevision$
|
||||
//
|
||||
// **************************************************************************
|
||||
|
||||
// manual class headers
|
||||
#include "BallisticService.hpp"
|
||||
|
||||
// from cpp_includes
|
||||
#include "FireControlPiton.hpp"
|
||||
#include "TrajectoryDiscrete.hpp"
|
||||
#include "TrajectoryPiton.hpp"
|
||||
#include "FireControlAntonio.hpp"
|
||||
#include "TrajectoryDecoy.hpp"
|
||||
#include "FireControlBase.hpp"
|
||||
#include "FireControlDecoy.hpp"
|
||||
#include "TrajectoryBase.hpp"
|
||||
#include "TrajectoryAntonio.hpp"
|
||||
#include "FireControlDiscrete.hpp"
|
||||
#include "FireControlRungeKutta.hpp"
|
||||
#include "TrajectoryRungeKutta.hpp"
|
||||
#include "FireControlRungeKuttaSimple.hpp"
|
||||
#include "TrajectoryRungeKuttaSimple.hpp"
|
||||
|
||||
namespace N_Ballistic
|
||||
{
|
||||
// ---------------------------------------------------------------
|
||||
// ## Constructors (generated)
|
||||
// ---------------------------------------------------------------
|
||||
BallisticService::BallisticService()
|
||||
: m_logger(CesGeoPairing::getLogger("Plugin.GeoPairing.BallisticService"))
|
||||
{}
|
||||
|
||||
// ---------------------------------------------------------------
|
||||
// initializes the BallisticService with an Ammunition config
|
||||
// file
|
||||
// ---------------------------------------------------------------
|
||||
bool BallisticService::init(const QString &a_configPath,
|
||||
const QString &a_configFile,
|
||||
const QString &a_ammunitionFile)
|
||||
{
|
||||
m_Initialized = false;
|
||||
|
||||
m_configPath = a_configPath;
|
||||
m_configFile = a_configFile;
|
||||
m_ammunitionFile = a_ammunitionFile;
|
||||
|
||||
INFO_LOG(m_logger) << "init";
|
||||
|
||||
m_ammuConfig = N_ConfigSystem::AmmuConfig::getInstance();
|
||||
QString FileName = a_configPath + QLatin1Char('/') + a_ammunitionFile;
|
||||
INFO_LOG(m_logger) << "FileName=" << FileName;
|
||||
|
||||
m_ammuConfig->initFilename(FileName);
|
||||
|
||||
m_Initialized = true;
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
// ---------------------------------------------------------------
|
||||
// Creates an interface of according to the given parameters
|
||||
// ---------------------------------------------------------------
|
||||
bool BallisticService::createInterfaceOf(IUnknown **app_interface, E_TypeOfInterface a_typeInterface, const QString &a_ammuName)
|
||||
{
|
||||
if (!m_Initialized)
|
||||
{
|
||||
ERROR_LOG(m_logger) << "Class is not initialized" ;
|
||||
return false;
|
||||
}
|
||||
|
||||
Ammunition *configuredAmmunition;
|
||||
E_TypeOfImpl e_impl = e_ImplBase;
|
||||
|
||||
DEBUG_LOG(m_logger) << "Target Interface Pointer : " << app_interface ;
|
||||
DEBUG_LOG(m_logger) << "Searching in available ammunitions for " << a_ammuName ;
|
||||
|
||||
//iterate over all Ammunition nodes and find the corresponding Ammunition name
|
||||
bool bAmmunitionFound = false;
|
||||
//for (Ammunition *ammunition : m_BallisticConfiguration.m_Ammunition)
|
||||
//for (Ammunition *ammunition : m_ammuConfig->GetAmmunitions())
|
||||
QVector<N_Ballistic::Ammunition>* ammunitions = m_ammuConfig->GetAmmunitions();
|
||||
for ( int i = 0; i < ammunitions->size(); i++)
|
||||
{
|
||||
N_Ballistic::Ammunition ammunition = m_ammuConfig->GetAmmunitions()->at(i);
|
||||
//find ammunition
|
||||
configuredAmmunition = &ammunition;
|
||||
|
||||
DEBUG_LOG(m_logger) << "Ammunition found: " << configuredAmmunition->m_AmmunInfo.m_Name ;
|
||||
|
||||
if (configuredAmmunition->m_AmmunInfo.m_Name == a_ammuName)
|
||||
{
|
||||
bAmmunitionFound = true;
|
||||
if (configuredAmmunition->m_AmmunInfo.m_Algorithm == QStringLiteral("DAntonio"))
|
||||
e_impl = e_ImplAntonio;
|
||||
else if (configuredAmmunition->m_AmmunInfo.m_Algorithm == QStringLiteral("Piton"))
|
||||
e_impl = e_ImplPiton;
|
||||
else if (configuredAmmunition->m_AmmunInfo.m_Algorithm == QStringLiteral("Discrete"))
|
||||
e_impl = e_ImplDiscrete;
|
||||
else if (configuredAmmunition->m_AmmunInfo.m_Algorithm == QStringLiteral("Decoy"))
|
||||
e_impl = e_ImplDecoy;
|
||||
else if (configuredAmmunition->m_AmmunInfo.m_Algorithm == QStringLiteral("RungeKutta"))
|
||||
e_impl = e_ImplRungeKutta;
|
||||
else if (configuredAmmunition->m_AmmunInfo.m_Algorithm == QStringLiteral("RungeKuttaSimple"))
|
||||
e_impl = e_ImplRungeKuttaSimple;
|
||||
else if (configuredAmmunition->m_AmmunInfo.m_Algorithm == QStringLiteral("Generic") ||
|
||||
configuredAmmunition->m_AmmunInfo.m_Algorithm == QStringLiteral("Standard") ||
|
||||
configuredAmmunition->m_AmmunInfo.m_Algorithm == QStringLiteral("Base"))
|
||||
e_impl = e_ImplBase;
|
||||
else
|
||||
{
|
||||
ERROR_LOG(m_logger) << "Configured Algorithm not known :"
|
||||
<< configuredAmmunition->m_AmmunInfo.m_Algorithm;
|
||||
return false;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (!bAmmunitionFound)
|
||||
{
|
||||
ERROR_LOG(m_logger) << "Desired ammunition was not found :" << a_ammuName ;
|
||||
return false;
|
||||
}
|
||||
|
||||
// find out which algorithm to use for the given ammunition
|
||||
switch (a_typeInterface)
|
||||
{
|
||||
case e_IFireControl:
|
||||
{
|
||||
FireControlBase *p_firecontrol = nullptr;
|
||||
switch (e_impl)
|
||||
{
|
||||
case e_ImplBase:
|
||||
p_firecontrol = new FireControlBase("FireControlBase");
|
||||
break;
|
||||
case e_ImplPiton:
|
||||
p_firecontrol = new FireControlPiton;
|
||||
break;
|
||||
case e_ImplAntonio:
|
||||
p_firecontrol = new FireControlAntonio;
|
||||
break;
|
||||
case e_ImplDiscrete:
|
||||
p_firecontrol = new FireControlDiscrete;
|
||||
break;
|
||||
case e_ImplDecoy:
|
||||
p_firecontrol = new FireControlDecoy;
|
||||
break;
|
||||
case e_ImplRungeKutta:
|
||||
p_firecontrol = new FireControlRungeKutta;
|
||||
break;
|
||||
case e_ImplRungeKuttaSimple:
|
||||
p_firecontrol = new FireControlRungeKuttaSimple;
|
||||
break;
|
||||
default:
|
||||
ERROR_LOG(m_logger) << "Implementation does not exist: " << e_impl ;
|
||||
*app_interface = nullptr;
|
||||
return false;
|
||||
}
|
||||
p_firecontrol->init(*configuredAmmunition);
|
||||
p_firecontrol->addRef();
|
||||
*app_interface = p_firecontrol;
|
||||
break;
|
||||
}
|
||||
case e_ITrajectory:
|
||||
{
|
||||
TrajectoryBase *p_trajectorybase = nullptr;
|
||||
switch (e_impl)
|
||||
{
|
||||
case e_ImplBase:
|
||||
p_trajectorybase = new TrajectoryBase("TrajectoryBase");
|
||||
break;
|
||||
case e_ImplPiton:
|
||||
p_trajectorybase = new TrajectoryPiton;
|
||||
break;
|
||||
case e_ImplAntonio:
|
||||
p_trajectorybase = new TrajectoryAntonio;
|
||||
break;
|
||||
case e_ImplDiscrete:
|
||||
p_trajectorybase = new TrajectoryDiscrete;
|
||||
break;
|
||||
case e_ImplDecoy:
|
||||
p_trajectorybase = new TrajectoryDecoy;
|
||||
break;
|
||||
case e_ImplRungeKutta:
|
||||
p_trajectorybase = new TrajectoryRungeKutta;
|
||||
break;
|
||||
case e_ImplRungeKuttaSimple:
|
||||
p_trajectorybase = new TrajectoryRungeKuttaSimple;
|
||||
break;
|
||||
default:
|
||||
ERROR_LOG(m_logger) << "Implementation does not exist: " << e_impl ;
|
||||
*app_interface = nullptr;
|
||||
return false;
|
||||
}
|
||||
p_trajectorybase->init(*configuredAmmunition);
|
||||
p_trajectorybase->addRef();
|
||||
*app_interface = p_trajectorybase;
|
||||
break;
|
||||
}
|
||||
default:
|
||||
ERROR_LOG(m_logger) << "Interface does not exist: " << a_typeInterface ;
|
||||
*app_interface = nullptr;
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
} // namespace N_Ballistic
|
||||
Executable
+104
@@ -0,0 +1,104 @@
|
||||
#pragma once
|
||||
// **************************************************************************
|
||||
//
|
||||
// (C) Copyright 2009 Swiss SIMTEC AG
|
||||
//
|
||||
// **************************************************************************
|
||||
//
|
||||
// $HeadURL$
|
||||
// $LastChangedBy$
|
||||
// $LastChangedDate$
|
||||
// $LastChangedRevision$
|
||||
//
|
||||
// **************************************************************************
|
||||
|
||||
|
||||
// from stereotyped includes
|
||||
#include "IUnknown.hpp"
|
||||
#include "../logger.h"
|
||||
#include <GBL_ConfigSystem/ammuconfig.h>
|
||||
// manual class imports
|
||||
|
||||
namespace N_Ballistic
|
||||
{
|
||||
|
||||
/**
|
||||
* The factory class for ballistic interfaces
|
||||
*
|
||||
* @author Daniel.Schmid
|
||||
* @version 1.0
|
||||
* @created 07-Aug-2009 13:36:13
|
||||
*/
|
||||
class BallisticService
|
||||
{
|
||||
public:
|
||||
|
||||
/**
|
||||
* @author Daniel.Schmid
|
||||
* @version 1.0
|
||||
* @created 07-Aug-2009 13:45:18
|
||||
*/
|
||||
enum E_TypeOfImpl
|
||||
{
|
||||
e_ImplBase = 0,
|
||||
e_ImplPiton = 1,
|
||||
e_ImplAntonio = 2,
|
||||
e_ImplDiscrete = 3,
|
||||
e_ImplDecoy = 4,
|
||||
e_ImplRungeKutta = 5,
|
||||
e_ImplRungeKuttaSimple = 6
|
||||
};
|
||||
|
||||
/**
|
||||
* @author Daniel.Schmid
|
||||
* @version 1.0
|
||||
* @created 07-Aug-2009 13:43:40
|
||||
*/
|
||||
enum E_TypeOfInterface
|
||||
{
|
||||
e_IFireControl = 0,
|
||||
e_ITrajectory = 1,
|
||||
e_ITerrainInfo = 2
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* initializes the BallisticService with an Ammunition config file
|
||||
*
|
||||
* @param a_configFilename xml file name
|
||||
*/
|
||||
bool init(const QString &a_configPath,
|
||||
const QString &a_configFile,
|
||||
const QString &a_ammunitionFile);
|
||||
|
||||
/**
|
||||
* Creates an interface of according to the given parameters
|
||||
*
|
||||
* @param app_interface Interface pointer
|
||||
* @param a_typeInterface Type of desired interface
|
||||
* @param a_ammuName Name of ammunition
|
||||
*/
|
||||
bool createInterfaceOf(IUnknown **app_interface, E_TypeOfInterface a_typeInterface, const QString &a_ammuName);
|
||||
QString getConfigPath() const { return m_configPath; }
|
||||
QString getConfigFile() const { return m_configFile; }
|
||||
QString getAmmunitionFile() const { return m_ammunitionFile; }
|
||||
|
||||
|
||||
/**
|
||||
* ## Constructors (generated)
|
||||
*/
|
||||
BallisticService();
|
||||
|
||||
private:
|
||||
|
||||
bool m_Initialized = false;
|
||||
QString m_configPath;
|
||||
QString m_configFile;
|
||||
QString m_ammunitionFile;
|
||||
N_ConfigSystem::AmmuConfig *m_ammuConfig = nullptr;
|
||||
|
||||
CesGeoPairing::LOGGER_T m_logger;
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
+66
@@ -0,0 +1,66 @@
|
||||
#
|
||||
# CMake file für ballistische Berechnungen
|
||||
# $Id$
|
||||
# $HeadURL$
|
||||
# $Author$
|
||||
#
|
||||
SET(my_SRCS
|
||||
AmmunitionTypes.hpp
|
||||
BallisticService.cpp
|
||||
FireControlAntonio.cpp
|
||||
FireControlBase.cpp
|
||||
FireControlDiscrete.cpp
|
||||
FireControlPiton.cpp
|
||||
FireControlRungeKutta.cpp
|
||||
TrajectoryAntonio.cpp
|
||||
TrajectoryBase.cpp
|
||||
TrajectoryDecoy.cpp
|
||||
TrajectoryDiscrete.cpp
|
||||
TrajectoryPiton.cpp
|
||||
TrajectoryRungeKutta.cpp
|
||||
TrajectoryRungeKuttaSimple.cpp
|
||||
)
|
||||
|
||||
SET(my_HDRS
|
||||
Ammunition.hpp
|
||||
BallisticService.hpp
|
||||
CWParamType.hpp
|
||||
DiscreteType.hpp
|
||||
FireControlAntonio.hpp
|
||||
FireControlBase.hpp
|
||||
FireControlDecoy.hpp
|
||||
FireControlDiscrete.hpp
|
||||
FireControlPiton.hpp
|
||||
FireControlRungeKutta.hpp
|
||||
FireControlRungeKuttaSimple.hpp
|
||||
IBallisticConfigurator.hpp
|
||||
IFireControl.hpp
|
||||
ITrajectory.hpp
|
||||
IUnknown.hpp
|
||||
PolygonParamType.hpp
|
||||
StandardType.hpp
|
||||
TrajectoryAntonio.hpp
|
||||
TrajectoryBase.hpp
|
||||
TrajectoryDecoy.hpp
|
||||
TrajectoryDiscrete.hpp
|
||||
TrajectoryPiton.hpp
|
||||
TrajectoryRungeKutta.hpp
|
||||
TrajectoryRungeKuttaSimple.hpp
|
||||
)
|
||||
|
||||
NGL_ADD_LIBRARY(AAR SV FW_Ballistic STATIC ${my_SRCS} ${my_HDRS})
|
||||
NGL_TARGET_INCLUDE_DIRECTORIES(FW_Ballistic
|
||||
PUBLIC
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/../
|
||||
${CMAKE_CURRENT_BINARY_DIR}/../
|
||||
)
|
||||
|
||||
NGL_TARGET_LINK_LIBRARIES(FW_Ballistic
|
||||
GBL_ConfigSystem
|
||||
GBL_Global
|
||||
Qt5::Core
|
||||
NGLLogger
|
||||
GBL_Types
|
||||
svcCesCommon
|
||||
)
|
||||
NGL_INSTALL_TARGET(FW_Ballistic)
|
||||
+38
@@ -0,0 +1,38 @@
|
||||
#pragma once
|
||||
|
||||
// **************************************************************************
|
||||
//
|
||||
// (C) Copyright 2009 Swiss SIMTEC AG
|
||||
//
|
||||
// **************************************************************************
|
||||
//
|
||||
// $HeadURL$
|
||||
// $LastChangedBy$
|
||||
// $LastChangedDate$
|
||||
// $LastChangedRevision$
|
||||
//
|
||||
// **************************************************************************
|
||||
|
||||
#include <QVector>
|
||||
|
||||
namespace N_Ballistic
|
||||
{
|
||||
|
||||
/**
|
||||
* Representation of ballistic classes with CW values
|
||||
*
|
||||
* @author Daniel.Schmid
|
||||
* @version 1.0
|
||||
* @created 22-Jul-2010 13:32:10
|
||||
*/
|
||||
struct CWParamType
|
||||
{
|
||||
QVector<double> m_CW;
|
||||
QVector<double> m_V0;
|
||||
QVector<double> m_XW;
|
||||
double m_Weight = 0.0;
|
||||
bool m_Valid = false;
|
||||
|
||||
};
|
||||
|
||||
}
|
||||
+77
@@ -0,0 +1,77 @@
|
||||
#pragma once
|
||||
|
||||
// **************************************************************************
|
||||
//
|
||||
// (C) Copyright 2009 Swiss SIMTEC AG
|
||||
//
|
||||
// **************************************************************************
|
||||
//
|
||||
// $HeadURL$
|
||||
// $LastChangedBy$
|
||||
// $LastChangedDate$
|
||||
// $LastChangedRevision$
|
||||
//
|
||||
// **************************************************************************
|
||||
|
||||
#include <GBL_Global/Types.hpp>
|
||||
|
||||
// manual class imports
|
||||
|
||||
|
||||
namespace N_Ballistic
|
||||
{
|
||||
|
||||
/**
|
||||
* Discrete representation of ballistic values
|
||||
*
|
||||
* @author Daniel.Schmid
|
||||
* @version 1.0
|
||||
* @created 10-Aug-2009 11:09:31
|
||||
*/
|
||||
class DiscreteType
|
||||
{
|
||||
public:
|
||||
|
||||
/**
|
||||
* Container for DerivationType
|
||||
*
|
||||
* @author Daniel.Schmid
|
||||
* @version 1.0
|
||||
* @created 10-Aug-2009 11:10:03
|
||||
*/
|
||||
struct DerivationType
|
||||
{
|
||||
Float64 m_CT2 = 0.0;
|
||||
Float64 m_CY = 0.0;
|
||||
Float64 m_C0 = 0.0;
|
||||
};
|
||||
|
||||
/**
|
||||
* Container for AxisParamType
|
||||
*
|
||||
* @author Daniel.Schmid
|
||||
* @version 1.0
|
||||
* @created 10-Aug-2009 11:09:50
|
||||
*/
|
||||
struct AxisParamType
|
||||
{
|
||||
Float64 m_CA = 0.0;
|
||||
Float64 m_CT2 = 0.0;
|
||||
Float64 m_CT1 = 0.0;
|
||||
Float64 m_CAlpha2 = 0.0;
|
||||
Float64 m_CAlpha1 = 0.0;
|
||||
Float64 m_CRho = 0.0;
|
||||
Float64 m_CV = 0.0;
|
||||
Float64 m_C0 = 0.0;
|
||||
|
||||
};
|
||||
|
||||
DiscreteType::AxisParamType m_YAxis;
|
||||
DiscreteType::AxisParamType m_ZAxis;
|
||||
DiscreteType::AxisParamType m_XAxis;
|
||||
DiscreteType::DerivationType m_Derivation;
|
||||
bool m_Valid = false;
|
||||
|
||||
};
|
||||
|
||||
}
|
||||
Executable
+406
@@ -0,0 +1,406 @@
|
||||
|
||||
// **************************************************************************
|
||||
//
|
||||
// (C) Copyright 2009 Swiss SIMTEC AG
|
||||
//
|
||||
// **************************************************************************
|
||||
//
|
||||
// $HeadURL$
|
||||
// $LastChangedBy$
|
||||
// $LastChangedDate$
|
||||
// $LastChangedRevision$
|
||||
//
|
||||
// **************************************************************************
|
||||
|
||||
// manual class headers
|
||||
#include "FireControlAntonio.hpp"
|
||||
|
||||
namespace N_Ballistic
|
||||
{
|
||||
// ---------------------------------------------------------------
|
||||
// initializes the class with the ballistic configuration
|
||||
// ---------------------------------------------------------------
|
||||
bool FireControlAntonio::init(const Ammunition &a_ammunition)
|
||||
{
|
||||
m_Initialized = false;
|
||||
|
||||
TRACE_LOG(m_logger) << "FireControlAntonio::init : initialising..." ;
|
||||
|
||||
if (a_ammunition.m_StandardParams.m_Valid)
|
||||
{
|
||||
m_CRhoT = a_ammunition.m_StandardParams.m_Time.m_CRhoT;
|
||||
m_CRhoA = a_ammunition.m_StandardParams.m_Angle.m_CRhoA;
|
||||
INFO_LOG(m_logger) << "m_CRhoT : " << m_CRhoT ;
|
||||
INFO_LOG(m_logger) << "m_CRhoA : " << m_CRhoA ;
|
||||
m_UseStandard = true;
|
||||
m_InitialAmmuVelocityV0constX0 = a_ammunition.m_AmmunInfo.m_Speed;
|
||||
INFO_LOG(m_logger) << "m_InitialAmmuVelocityV0constX0 = " << m_InitialAmmuVelocityV0constX0 ;
|
||||
}
|
||||
else if (a_ammunition.m_PolygonParams.m_Valid)
|
||||
{
|
||||
m_InitialAX = a_ammunition.m_PolygonParams.m_InitialAX;
|
||||
INFO_LOG(m_logger) << "m_InitialAX : " << m_InitialAX ;
|
||||
int axcount = a_ammunition.m_PolygonParams.m_AX.size();
|
||||
for (int i = 0; i < axcount; i++)
|
||||
{
|
||||
m_AX.push_back(a_ammunition.m_PolygonParams.m_AX[i].m_Coeff);
|
||||
INFO_LOG(m_logger) << "AX " << a_ammunition.m_PolygonParams.m_AX[i].m_Index << " = " << a_ammunition.m_PolygonParams.m_AX[i].m_Coeff ;
|
||||
}
|
||||
int aycount = a_ammunition.m_PolygonParams.m_AY.size();
|
||||
for (int i = 0; i < aycount; i++)
|
||||
{
|
||||
m_AY.push_back(a_ammunition.m_PolygonParams.m_AY[i].m_Coeff);
|
||||
INFO_LOG(m_logger) << "AY " << a_ammunition.m_PolygonParams.m_AY[i].m_Index << " = " << a_ammunition.m_PolygonParams.m_AY[i].m_Coeff ;
|
||||
}
|
||||
m_UsePolynom = true;
|
||||
m_InitialAmmuVelocityV0constX0 = a_ammunition.m_AmmunInfo.m_Speed;
|
||||
INFO_LOG(m_logger) << "m_InitialAmmuVelocityV0constX0 = " << m_InitialAmmuVelocityV0constX0 ;
|
||||
}
|
||||
else
|
||||
{
|
||||
ERROR_LOG(m_logger) << "Parameters missing..." ;
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!FireControlBase::init(a_ammunition))
|
||||
return false;
|
||||
|
||||
INFO_LOG(m_logger) << "FireControlAntonio::init : initialized successfully!" ;
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
// ---------------------------------------------------------------
|
||||
// returns the flight time of the projectile in seconds
|
||||
// ---------------------------------------------------------------
|
||||
Float64 FireControlAntonio::getFlightTime(const Float64 a_distance, const Float64 a_initialAmmuVelocity,
|
||||
const N_Types::Radian64 a_terrainAngle, const Float64 a_airDensity)
|
||||
{
|
||||
if (m_UseStandard)
|
||||
return getFlightTimeStandard(a_distance, a_initialAmmuVelocity, a_terrainAngle, a_airDensity);
|
||||
if (m_UsePolynom)
|
||||
return getFlightTimePolynom(a_distance, a_initialAmmuVelocity, a_terrainAngle, a_airDensity);
|
||||
ERROR_LOG(m_logger) << "UseStandard or UsePolynom not set..." ;
|
||||
return 0.0;
|
||||
}
|
||||
|
||||
|
||||
// ---------------------------------------------------------------
|
||||
// returns the firing angle of the projectile if the following
|
||||
// are given
|
||||
// ---------------------------------------------------------------
|
||||
Float64 FireControlAntonio::getFireAngle(const Float64 a_distance, const Float64 a_initialAmmuVelocity,
|
||||
const N_Types::Radian64 a_terrainAngle, const Float64 a_airDensity)
|
||||
{
|
||||
if (m_UseStandard)
|
||||
return getFireAngleStandard(a_distance, a_initialAmmuVelocity, a_terrainAngle, a_airDensity);
|
||||
if (m_UsePolynom)
|
||||
return getFireAnglePolynom(a_distance, a_initialAmmuVelocity, a_terrainAngle, a_airDensity);
|
||||
ERROR_LOG(m_logger) << "UseStandard or UsePolynom not set..." ;
|
||||
return 0.0;
|
||||
}
|
||||
|
||||
|
||||
// ---------------------------------------------------------------
|
||||
// returns the flight time of the projectile in seconds
|
||||
// ---------------------------------------------------------------
|
||||
Float64 FireControlAntonio::getFlightTimeStandard(const Float64 a_distance, const Float64 a_initialAmmuVelocity,
|
||||
const N_Types::Radian64 &a_terrainAngle, const Float64 a_airDensity)
|
||||
{
|
||||
Float64 d_second;
|
||||
Float64 d_temp; // temp value
|
||||
Float64 d_laserDistY; // Y laser value
|
||||
|
||||
if (!m_Initialized)
|
||||
{
|
||||
WARNING_LOG(m_logger) << "The class is not initialized" ;
|
||||
return 0.0;
|
||||
}
|
||||
|
||||
if (a_distance < 1.0)
|
||||
{
|
||||
ERROR_LOG(m_logger) << "a_distance is not valid : " << a_distance ;
|
||||
return 0.0;
|
||||
}
|
||||
if (a_airDensity < 0.0)
|
||||
{
|
||||
ERROR_LOG(m_logger) << "a_airDensity is not valid : " << a_airDensity ;
|
||||
return 0.0;
|
||||
}
|
||||
if (a_initialAmmuVelocity < 1.0)
|
||||
{
|
||||
ERROR_LOG(m_logger) << "a_initialAmmuVelocity is not valid : " << a_initialAmmuVelocity ;
|
||||
return 0.0;
|
||||
}
|
||||
if (a_terrainAngle > M_PI_2 || a_terrainAngle < -M_PI_2)
|
||||
{
|
||||
ERROR_LOG(m_logger) << "a_terrainAngle is not valid : " << a_terrainAngle ;
|
||||
return 0.0;
|
||||
}
|
||||
|
||||
// t = Xe /(v0 * cos(Gamma) * corr)
|
||||
// corr = 1 - cRhoT * Rho * Xe
|
||||
//
|
||||
// Gamma - terrain angle
|
||||
// Rho - air density
|
||||
// v0 - initial ammu velocity
|
||||
// cRhoT - parameter
|
||||
//----------------------------------------------------------
|
||||
d_laserDistY = a_distance * cos(a_terrainAngle);
|
||||
d_temp = 1.0 - (m_CRhoT * a_airDensity * d_laserDistY);
|
||||
d_second = d_laserDistY / (a_initialAmmuVelocity * cos(a_terrainAngle) * d_temp);
|
||||
|
||||
if (d_second < 0.0)
|
||||
d_second = 0.0;
|
||||
|
||||
return d_second;
|
||||
}
|
||||
|
||||
|
||||
// ---------------------------------------------------------------
|
||||
// returns the firing angle of the projectile if the following
|
||||
// are given
|
||||
// ---------------------------------------------------------------
|
||||
Float64 FireControlAntonio::getFireAngleStandard(const Float64 a_distance, const Float64 a_initialAmmuVelocity,
|
||||
const N_Types::Radian64 &a_terrainAngle, const Float64 a_airDensity)
|
||||
{
|
||||
Float64 d_square; // square part of the function
|
||||
Float64 d_tan; // tangent value of the function
|
||||
N_Types::Radian64 o_tsi; // firing angle
|
||||
Float64 d_correction; // correction value
|
||||
Float64 d_temp; // temp value
|
||||
Float64 d_laserDistZ; // Z laser value
|
||||
Float64 d_laserDistY; // Y laser value
|
||||
|
||||
if (!m_Initialized)
|
||||
{
|
||||
WARNING_LOG(m_logger) << "The class is not initialized" ;
|
||||
return 0.0;
|
||||
}
|
||||
if (a_distance < 1.0)
|
||||
{
|
||||
ERROR_LOG(m_logger) << "a_distance is not valid : " << a_distance ;
|
||||
return 0.0;
|
||||
}
|
||||
if (a_airDensity < 0.0)
|
||||
{
|
||||
ERROR_LOG(m_logger) << "a_airDensity is not valid : " << a_airDensity ;
|
||||
return 0.0;
|
||||
}
|
||||
if (a_initialAmmuVelocity < 1.0)
|
||||
{
|
||||
ERROR_LOG(m_logger) << "a_initialAmmuVelocity is not valid : " << a_initialAmmuVelocity ;
|
||||
return 0.0;
|
||||
}
|
||||
if (a_terrainAngle > M_PI_2 || a_terrainAngle < -M_PI_2)
|
||||
{
|
||||
ERROR_LOG(m_logger) << "a_terrainAngle is not valid : " << a_terrainAngle ;
|
||||
return 0.0;
|
||||
}
|
||||
|
||||
// Tsi = atan((1/2) * ((Xe/c) - sqrt))
|
||||
// sqrt = pow((Xe/c), 2) - 4 * (Ye + c) / c
|
||||
// c = (9.81 * pow(Xe, 2) / ( 2 * pow(v0, 2))) / (corr1 * corr2)
|
||||
// corr1 = pow((1 - cRhoA * Rho * Xe), 2)
|
||||
// corr2 = 1 + cRhoT * Rho * Xe
|
||||
// Xe = D * cos(Gamma)
|
||||
//
|
||||
// Gamma - terrain angle
|
||||
// Rho - air density
|
||||
// v0 - initial ammu velocity
|
||||
// cRhoA, constA - constants
|
||||
//----------------------------------------------------------
|
||||
|
||||
d_laserDistZ = a_distance * sin(a_terrainAngle);
|
||||
d_laserDistY = a_distance * cos(a_terrainAngle);
|
||||
d_temp = 1 + (m_CRhoA * a_airDensity * d_laserDistY);
|
||||
|
||||
d_correction = N_SST::G * pow(d_laserDistY, Float64(2));
|
||||
d_correction /= (2.0 * pow(a_initialAmmuVelocity, Float64(2)));
|
||||
d_correction /= d_temp;
|
||||
d_temp = pow((1 - (m_CRhoT * a_airDensity * d_laserDistY)), Float64(2));
|
||||
d_correction /= d_temp;
|
||||
|
||||
d_square = pow((d_laserDistY / d_correction), Float64(2));
|
||||
d_square -= ((4.0 * (d_laserDistZ + d_correction)) / d_correction);
|
||||
d_square = sqrt(d_square);
|
||||
d_tan = (d_laserDistY / d_correction) - d_square;
|
||||
d_tan /= 2.0;
|
||||
o_tsi = atan(d_tan);
|
||||
o_tsi -= a_terrainAngle;
|
||||
|
||||
return o_tsi;
|
||||
}
|
||||
|
||||
|
||||
// ---------------------------------------------------------------
|
||||
// returns the flight time of the projectile in seconds
|
||||
// ---------------------------------------------------------------
|
||||
Float64 FireControlAntonio::getFlightTimePolynom(const Float64 a_distance, const Float64 a_initialAmmuVelocity,
|
||||
const N_Types::Radian64 &a_terrainAngle, const Float64 a_airDensity)
|
||||
{
|
||||
if (!m_Initialized)
|
||||
{
|
||||
WARNING_LOG(m_logger) << "The class is not initialized" ;
|
||||
return 0.0;
|
||||
}
|
||||
|
||||
if (a_distance < 1.0)
|
||||
{
|
||||
ERROR_LOG(m_logger) << "a_distance is not valid : " << a_distance ;
|
||||
return 0.0;
|
||||
}
|
||||
if (a_airDensity < 0.0)
|
||||
{
|
||||
ERROR_LOG(m_logger) << "a_airDensity is not valid : " << a_airDensity ;
|
||||
return 0.0;
|
||||
}
|
||||
if (a_initialAmmuVelocity < 1.0)
|
||||
{
|
||||
ERROR_LOG(m_logger) << "a_initialAmmuVelocity is not valid : " << a_initialAmmuVelocity ;
|
||||
return 0.0;
|
||||
}
|
||||
if (a_terrainAngle > M_PI_2 || a_terrainAngle < -M_PI_2)
|
||||
{
|
||||
ERROR_LOG(m_logger) << "a_terrainAngle is not valid : " << a_terrainAngle ;
|
||||
return 0.0;
|
||||
}
|
||||
|
||||
Float64 d_time = 0;
|
||||
Float64 d_prevtime = 0;
|
||||
Float64 d_distance = 0; // Y laser value
|
||||
Float64 d_ax = 0; // ax coefficient
|
||||
|
||||
d_distance = a_distance * cos(a_terrainAngle);
|
||||
d_ax = m_InitialAX;
|
||||
|
||||
d_time = getTimeForAx(d_distance, d_ax, a_initialAmmuVelocity, a_airDensity);
|
||||
|
||||
int iteration_counter = 0;
|
||||
while (d_time - d_prevtime < 0.001)
|
||||
{
|
||||
iteration_counter++;
|
||||
d_prevtime = d_time;
|
||||
d_ax = getAxForTime(d_time);
|
||||
d_time = getTimeForAx(d_distance, d_ax, a_initialAmmuVelocity, a_airDensity);
|
||||
|
||||
if (iteration_counter > 20)
|
||||
{
|
||||
WARNING_LOG(m_logger) << "Iteration interupted at 20 loops..." ;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return d_time;
|
||||
}
|
||||
|
||||
|
||||
// ---------------------------------------------------------------
|
||||
// returns the firing angle of the projectile if the following
|
||||
// are given
|
||||
// ---------------------------------------------------------------
|
||||
Float64 FireControlAntonio::getFireAnglePolynom(const Float64 a_distance, const Float64 a_initialAmmuVelocity,
|
||||
const N_Types::Radian64 &a_terrainAngle, const Float64 a_airDensity)
|
||||
{
|
||||
if (!m_Initialized)
|
||||
{
|
||||
WARNING_LOG(m_logger) << "The class is not initialized" ;
|
||||
return 0.0;
|
||||
}
|
||||
if (a_distance < 1.0)
|
||||
{
|
||||
ERROR_LOG(m_logger) << "a_distance is not valid : " << a_distance ;
|
||||
return 0.0;
|
||||
}
|
||||
if (a_airDensity < 0.0)
|
||||
{
|
||||
ERROR_LOG(m_logger) << "a_airDensity is not valid : " << a_airDensity ;
|
||||
return 0.0;
|
||||
}
|
||||
if (a_initialAmmuVelocity < 1.0)
|
||||
{
|
||||
ERROR_LOG(m_logger) << "a_initialAmmuVelocity is not valid : " << a_initialAmmuVelocity ;
|
||||
return 0.0;
|
||||
}
|
||||
if (a_terrainAngle > M_PI_2 || a_terrainAngle < -M_PI_2)
|
||||
{
|
||||
ERROR_LOG(m_logger) << "a_terrainAngle is not valid : " << a_terrainAngle ;
|
||||
return 0.0;
|
||||
}
|
||||
|
||||
N_Types::Radian64 o_tsi; // firing angle
|
||||
Float64 d_correction; // correction value
|
||||
Float64 d_temp; // temp value
|
||||
Float64 d_time; // flight time
|
||||
Float64 d_distance; // effective distance
|
||||
Float64 d_ay;
|
||||
|
||||
d_distance = a_distance * cos(a_terrainAngle);
|
||||
|
||||
d_time = getFlightTimePolynom(d_distance, a_initialAmmuVelocity, a_terrainAngle, a_airDensity);
|
||||
d_ay = getAyForTime(d_time);
|
||||
|
||||
// g * x
|
||||
// tan tsi = -----------------------------
|
||||
// 2 * v0^2 * (1 - ay * p * x)^2
|
||||
|
||||
d_correction = N_SST::G * d_distance;
|
||||
d_correction /= (2.0 * pow(a_initialAmmuVelocity, Float64(2)));
|
||||
d_temp = pow((1 - (d_ay * a_airDensity * d_distance)), Float64(2));
|
||||
d_correction /= d_temp;
|
||||
|
||||
o_tsi = atan(d_correction);
|
||||
o_tsi -= a_terrainAngle;
|
||||
|
||||
return o_tsi;
|
||||
}
|
||||
|
||||
|
||||
// ---------------------------------------------------------------
|
||||
Float64 FireControlAntonio::getTimeForAx(Float64 a_distance, Float64 a_ax, Float64 a_velocity, Float64 a_airDensity)
|
||||
{
|
||||
Float64 d_time = 0;
|
||||
|
||||
// x
|
||||
// d_time = -----------------------
|
||||
// v0 * (1 - ax * p * x)
|
||||
|
||||
d_time = a_distance / a_velocity;
|
||||
d_time /= 1 - (a_ax * a_airDensity * a_distance);
|
||||
|
||||
return d_time;
|
||||
}
|
||||
|
||||
|
||||
// ---------------------------------------------------------------
|
||||
Float64 FireControlAntonio::getAxForTime(Float64 a_time) const
|
||||
{
|
||||
Float64 d_ax = 0;
|
||||
|
||||
//
|
||||
// ax = (ax0 * t^0) + (ax1 * t^1) + (ax2 * t^2) + (ax3 * t^3) ...
|
||||
//
|
||||
|
||||
for (unsigned int i = 0; i < m_AX.size(); i++)
|
||||
d_ax += m_AX[i] * pow(a_time, i);
|
||||
|
||||
return d_ax;
|
||||
}
|
||||
|
||||
|
||||
// ---------------------------------------------------------------
|
||||
Float64 FireControlAntonio::getAyForTime(Float64 a_time) const
|
||||
{
|
||||
Float64 d_ay = 0;
|
||||
|
||||
//
|
||||
// ay = (ay0 * t^0) + (ay1 * t^1) + (ay2 * t^2) + (ay3 * t^3) ...
|
||||
//
|
||||
|
||||
for (unsigned int i = 0; i < m_AY.size(); i++)
|
||||
d_ay += m_AY[i] * pow(a_time, i);
|
||||
|
||||
return d_ay;
|
||||
}
|
||||
|
||||
} // namespace N_Ballistic
|
||||
Executable
+153
@@ -0,0 +1,153 @@
|
||||
#pragma once
|
||||
|
||||
// **************************************************************************
|
||||
//
|
||||
// (C) Copyright 2009 Swiss SIMTEC AG
|
||||
//
|
||||
// **************************************************************************
|
||||
//
|
||||
// $HeadURL$
|
||||
// $LastChangedBy$
|
||||
// $LastChangedDate$
|
||||
// $LastChangedRevision$
|
||||
//
|
||||
// **************************************************************************
|
||||
|
||||
// manual class imports
|
||||
#include "FireControlBase.hpp"
|
||||
|
||||
namespace N_Ballistic
|
||||
{
|
||||
|
||||
/**
|
||||
* D'Antonio implementation for fire calculations
|
||||
*
|
||||
* @author Daniel.Schmid
|
||||
* @version 1.0
|
||||
* @created 07-Aug-2009 15:01:21
|
||||
*/
|
||||
class FireControlAntonio : public FireControlBase
|
||||
{
|
||||
public:
|
||||
|
||||
/**
|
||||
* ## Constructors (generated)
|
||||
*/
|
||||
FireControlAntonio() : FireControlBase("FireControlAntonio") {}
|
||||
|
||||
/**
|
||||
* initializes the class with the ballistic configuration
|
||||
*
|
||||
* @param a_ammunition
|
||||
*/
|
||||
bool init(const Ammunition &a_ammunition) override;
|
||||
|
||||
/**
|
||||
* returns the flight time of the projectile in seconds
|
||||
*
|
||||
* @param a_distance distance to the target
|
||||
* @param a_initialAmmuVelocity initial velocity
|
||||
* @param a_terrainAngle gun angle to terrain
|
||||
* @param a_airDensity air density
|
||||
*/
|
||||
Float64 getFlightTime(const Float64 a_distance, const Float64 a_initialAmmuVelocity,
|
||||
const N_Types::Radian64 a_terrainAngle, const Float64 a_airDensity) override;
|
||||
|
||||
/**
|
||||
* returns the firing angle of the projectile if the following are given
|
||||
*
|
||||
* @param a_distance distance to the target
|
||||
* @param a_initialAmmuVelocity initial velocity
|
||||
* @param a_terrainAngle gun angle to terrain
|
||||
* @param a_airDensity air density
|
||||
*/
|
||||
Float64 getFireAngle(const Float64 a_distance, const Float64 a_initialAmmuVelocity,
|
||||
const N_Types::Radian64 a_terrainAngle, const Float64 a_airDensity) override;
|
||||
|
||||
protected:
|
||||
|
||||
/**
|
||||
* returns the flight time of the projectile in seconds
|
||||
*
|
||||
* @param a_distance distance to the target
|
||||
* @param a_initialAmmuVelocity initial velocity
|
||||
* @param a_terrainAngle gun angle to terrain
|
||||
* @param a_airDensity air density
|
||||
*/
|
||||
virtual Float64 getFlightTimeStandard(const Float64 a_distance, const Float64 a_initialAmmuVelocity,
|
||||
const N_Types::Radian64 &a_terrainAngle, const Float64 a_airDensity);
|
||||
|
||||
/**
|
||||
* returns the firing angle of the projectile if the following are given
|
||||
*
|
||||
* @param a_distance distance to the target
|
||||
* @param a_initialAmmuVelocity initial velocity
|
||||
* @param a_terrainAngle gun angle to terrain
|
||||
* @param a_airDensity air density
|
||||
*/
|
||||
virtual Float64 getFireAngleStandard(const Float64 a_distance, const Float64 a_initialAmmuVelocity,
|
||||
const N_Types::Radian64 &a_terrainAngle, const Float64 a_airDensity);
|
||||
|
||||
/**
|
||||
* returns the flight time of the projectile in seconds
|
||||
*
|
||||
* @param a_distance distance to the target
|
||||
* @param a_initialAmmuVelocity initial velocity
|
||||
* @param a_terrainAngle gun angle to terrain
|
||||
* @param a_airDensity air density
|
||||
*/
|
||||
virtual Float64 getFlightTimePolynom(const Float64 a_distance, const Float64 a_initialAmmuVelocity,
|
||||
const N_Types::Radian64 &a_terrainAngle, const Float64 a_airDensity);
|
||||
|
||||
/**
|
||||
* returns the firing angle of the projectile if the following are given
|
||||
*
|
||||
* @param a_distance distance to the target
|
||||
* @param a_initialAmmuVelocity initial velocity
|
||||
* @param a_terrainAngle gun angle to terrain
|
||||
* @param a_airDensity air density
|
||||
*/
|
||||
virtual Float64 getFireAnglePolynom(const Float64 a_distance, const Float64 a_initialAmmuVelocity,
|
||||
const N_Types::Radian64 &a_terrainAngle, const Float64 a_airDensity);
|
||||
|
||||
/**
|
||||
*
|
||||
* @param a_distance
|
||||
* @param a_ax
|
||||
* @param a_velocity
|
||||
* @param a_airDensity
|
||||
*/
|
||||
static Float64 getTimeForAx(Float64 a_distance, Float64 a_ax, Float64 a_velocity, Float64 a_airDensity);
|
||||
|
||||
/**
|
||||
*
|
||||
* @param a_time
|
||||
*/
|
||||
Float64 getAxForTime(Float64 a_time) const;
|
||||
|
||||
/**
|
||||
*
|
||||
* @param a_time
|
||||
*/
|
||||
Float64 getAyForTime(Float64 a_time) const;
|
||||
|
||||
private:
|
||||
|
||||
/**
|
||||
* air density correction constant
|
||||
*/
|
||||
Float64 m_CRhoT = 0;
|
||||
/**
|
||||
* air density correction constant
|
||||
*/
|
||||
Float64 m_CRhoA = 0;
|
||||
Float64 m_InitialAX = 0;
|
||||
std::vector<Float64> m_AX;
|
||||
std::vector<Float64> m_AY;
|
||||
|
||||
bool m_UseStandard = false;
|
||||
bool m_UsePolynom = false;
|
||||
|
||||
};
|
||||
|
||||
}
|
||||
+259
@@ -0,0 +1,259 @@
|
||||
|
||||
// **************************************************************************
|
||||
//
|
||||
// (C) Copyright 2009 Swiss SIMTEC AG
|
||||
//
|
||||
// **************************************************************************
|
||||
//
|
||||
// $HeadURL$
|
||||
// $LastChangedBy$
|
||||
// $LastChangedDate$
|
||||
// $LastChangedRevision$
|
||||
//
|
||||
// **************************************************************************
|
||||
|
||||
// manual class headers
|
||||
#include "FireControlBase.hpp"
|
||||
|
||||
namespace N_Ballistic
|
||||
{
|
||||
|
||||
FireControlBase::FireControlBase(const char *loggerName)
|
||||
: m_logger(CesGeoPairing::getLogger(loggerName))
|
||||
{
|
||||
}
|
||||
|
||||
FireControlBase::~FireControlBase()
|
||||
{
|
||||
deinit();
|
||||
}
|
||||
|
||||
// ---------------------------------------------------------------
|
||||
// Using this function a reference to the interface is added.
|
||||
// ---------------------------------------------------------------
|
||||
SInt32 FireControlBase::addRef()
|
||||
{
|
||||
return m_MyRefCounter++;
|
||||
}
|
||||
|
||||
|
||||
// ---------------------------------------------------------------
|
||||
// Calling this function the reference from the interface may
|
||||
// be removed.
|
||||
// ---------------------------------------------------------------
|
||||
SInt32 FireControlBase::release()
|
||||
{
|
||||
--m_MyRefCounter;
|
||||
if (m_MyRefCounter <= 0)
|
||||
{
|
||||
delete this;
|
||||
return 0;
|
||||
}
|
||||
else
|
||||
return m_MyRefCounter;
|
||||
}
|
||||
|
||||
|
||||
// ---------------------------------------------------------------
|
||||
// initializes the class with the ballistic configuration
|
||||
// ---------------------------------------------------------------
|
||||
bool FireControlBase::init(const Ammunition &a_ammunition)
|
||||
{
|
||||
m_Initialized = false;
|
||||
|
||||
if (a_ammunition.m_StandardParams.m_Valid)
|
||||
{
|
||||
TRACE_LOG(m_logger) << "FireControlBase::init : initialising StandardParams..." ;
|
||||
|
||||
m_InitialAmmuVelocityV0constX1 = a_ammunition.m_StandardParams.m_Speed.m_V0ConstX1;
|
||||
m_InitialAmmuVelocityV0constX0 = a_ammunition.m_StandardParams.m_Speed.m_V0ConstX0;
|
||||
|
||||
m_CrossWindConstX3 = a_ammunition.m_StandardParams.m_CrossWind.m_ConstX3;
|
||||
m_CrossWindConstX2 = a_ammunition.m_StandardParams.m_CrossWind.m_ConstX2;
|
||||
m_CrossWindConstX1 = a_ammunition.m_StandardParams.m_CrossWind.m_ConstX1;
|
||||
m_CrossWindConstX0 = a_ammunition.m_StandardParams.m_CrossWind.m_ConstX0;
|
||||
}
|
||||
|
||||
m_Initialized = true;
|
||||
|
||||
TRACE_LOG(m_logger) << "m_InitialAmmuVelocityV0constX1 : " << m_InitialAmmuVelocityV0constX1 ;
|
||||
TRACE_LOG(m_logger) << "m_InitialAmmuVelocityV0constX0 : " << m_InitialAmmuVelocityV0constX0 ;
|
||||
TRACE_LOG(m_logger) << "m_CrossWindConstX3 : " << m_CrossWindConstX3 ;
|
||||
TRACE_LOG(m_logger) << "m_CrossWindConstX2 : " << m_CrossWindConstX2 ;
|
||||
TRACE_LOG(m_logger) << "m_CrossWindConstX1 : " << m_CrossWindConstX1 ;
|
||||
TRACE_LOG(m_logger) << "m_CrossWindConstX0 : " << m_CrossWindConstX0 ;
|
||||
|
||||
TRACE_LOG(m_logger) << "FireControlBase::init : initialized successfully!" ;
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
// ---------------------------------------------------------------
|
||||
// returns the flight time of the projectile in seconds
|
||||
// ---------------------------------------------------------------
|
||||
Float64 FireControlBase::getFlightTime(const Float64 a_distance,
|
||||
const Float64 a_initialAmmuVelocity,
|
||||
const N_Types::Radian64,
|
||||
const Float64)
|
||||
{
|
||||
Float64 d_second;
|
||||
Float64 d_temp; // temp value
|
||||
|
||||
if (!m_Initialized)
|
||||
{
|
||||
WARNING_LOG(m_logger) << "The class is not initialized" ;
|
||||
return 0.0;
|
||||
}
|
||||
|
||||
if (a_distance < 1.0 || a_initialAmmuVelocity < 1.0)
|
||||
{
|
||||
ERROR_LOG(m_logger) << "The parameters are not correct" ;
|
||||
return 0.0;
|
||||
}
|
||||
|
||||
d_temp = a_distance * N_SST::G / pow(a_initialAmmuVelocity, Float64(2));
|
||||
d_second = 2 * a_initialAmmuVelocity / N_SST::G;
|
||||
d_second *= sin(0.5 * asin(d_temp));
|
||||
|
||||
if (d_second < 0.0)
|
||||
d_second = 0.0;
|
||||
|
||||
return d_second;
|
||||
}
|
||||
|
||||
|
||||
// ---------------------------------------------------------------
|
||||
// returns the firing angle of the projectile if the following
|
||||
// are given
|
||||
// ---------------------------------------------------------------
|
||||
Float64 FireControlBase::getFireAngle(const Float64 a_distance, const Float64 a_initialAmmuVelocity, const N_Types::Radian64 a_terrainAngle, const Float64 a_airDensity)
|
||||
{
|
||||
N_Types::Radian64 o_tsi; // firing angle
|
||||
Float64 d_temp; // temp value
|
||||
|
||||
if (!m_Initialized)
|
||||
{
|
||||
WARNING_LOG(m_logger) << "The class is not initialized" ;
|
||||
return 0.0;
|
||||
}
|
||||
|
||||
if ((a_distance < 1.0) ||
|
||||
(a_airDensity < 0.0) ||
|
||||
(a_initialAmmuVelocity < 1.0) ||
|
||||
(a_terrainAngle > M_PI_2) ||
|
||||
(a_terrainAngle < -M_PI_2))
|
||||
{
|
||||
ERROR_LOG(m_logger) << "The parameters are not correct" ;
|
||||
return 0.0;
|
||||
}
|
||||
|
||||
d_temp = a_distance * N_SST::G / pow(a_initialAmmuVelocity, Float64(2));
|
||||
o_tsi = asin(d_temp) / 2;
|
||||
|
||||
o_tsi -= a_terrainAngle;
|
||||
|
||||
return o_tsi;
|
||||
}
|
||||
|
||||
|
||||
// ---------------------------------------------------------------
|
||||
// This function corrects the fire angle due to the cross wind,
|
||||
// if the following are given
|
||||
// ---------------------------------------------------------------
|
||||
N_Types::Radian64 FireControlBase::getCrossWindCorrection(const Float64 a_crossWind, const Float64 a_distance)
|
||||
{
|
||||
Float64 d_deviation; // deviation of the ammu due the cross wind of 1m/sec
|
||||
Float64 d_deviationTotal; // total deviation of the ammu due the cross wind
|
||||
N_Types::Radian64 d_traverse; // deviation angle
|
||||
|
||||
if (!m_Initialized)
|
||||
{
|
||||
ERROR_LOG(m_logger) << "The class is not initialized" ;
|
||||
return 0.0;
|
||||
}
|
||||
|
||||
if (m_CrossWindConstX3 == 0 &&
|
||||
m_CrossWindConstX2 == 0 &&
|
||||
m_CrossWindConstX1 == 0 &&
|
||||
m_CrossWindConstX0 == 0)
|
||||
{
|
||||
WARNING_LOG(m_logger) << "The class uses probably not initialized parameters" ;
|
||||
return 0.0;
|
||||
}
|
||||
|
||||
d_deviation = m_CrossWindConstX3 * pow(a_distance, Float64(3)) +
|
||||
m_CrossWindConstX2 * pow(a_distance, Float64(2)) +
|
||||
m_CrossWindConstX1 * a_distance +
|
||||
m_CrossWindConstX0;
|
||||
|
||||
d_deviationTotal = d_deviation * a_crossWind;
|
||||
|
||||
d_traverse = atan2(d_deviationTotal, a_distance);
|
||||
|
||||
return d_traverse;
|
||||
}
|
||||
|
||||
|
||||
// ---------------------------------------------------------------
|
||||
// returns the air density, provided the following are given
|
||||
// ---------------------------------------------------------------
|
||||
Float64 FireControlBase::getAirDensity(const Float64 a_atmosphericPressure, const Float64 a_airTemperature)
|
||||
{
|
||||
const Float64 d_FIXED_CONST = 0.348368; // fixed constant of the function
|
||||
Float64 d_kelvin;
|
||||
Float64 d_rho;
|
||||
|
||||
if ((a_atmosphericPressure <= 1.0) ||
|
||||
(a_airTemperature <= -N_SST::ZERO_CELSIUS_IN_KELVIN))
|
||||
{
|
||||
ERROR_LOG(m_logger) << "The parameters are not correct, Pressure=" << a_atmosphericPressure << ", Temp=" << a_airTemperature ;
|
||||
return 1.0;
|
||||
}
|
||||
|
||||
d_kelvin = a_airTemperature + N_SST::ZERO_CELSIUS_IN_KELVIN;
|
||||
d_rho = d_FIXED_CONST * a_atmosphericPressure / d_kelvin;
|
||||
|
||||
return d_rho;
|
||||
}
|
||||
|
||||
|
||||
// ---------------------------------------------------------------
|
||||
// This function corrects the fire angle due to the cross wind,
|
||||
// if the following are given
|
||||
// ---------------------------------------------------------------
|
||||
Float64 FireControlBase::getCrossWind(const N_Types::Coord3 &a_crossWind, const Float64 a_turretDir)
|
||||
{
|
||||
N_Types::Coord3 o_wind = a_crossWind;
|
||||
o_wind.rotateZ(-a_turretDir); // rotate back
|
||||
|
||||
return o_wind.getX();
|
||||
}
|
||||
|
||||
|
||||
// ---------------------------------------------------------------
|
||||
// returns the theritical initial ammu velocity of the
|
||||
// ammunition
|
||||
// ---------------------------------------------------------------
|
||||
Float64 FireControlBase::getInitialAmmuVelocity(const Float64 a_temperature)
|
||||
{
|
||||
const Float64 d_BASE_TEMPERATURE = 21.0; // deg.centigrade
|
||||
|
||||
Float64 f_InitialAmmuVelocity = m_InitialAmmuVelocityV0constX0;
|
||||
Float64 f_Celsius = a_temperature - d_BASE_TEMPERATURE;
|
||||
|
||||
f_InitialAmmuVelocity += (m_InitialAmmuVelocityV0constX1 * f_Celsius);
|
||||
|
||||
return f_InitialAmmuVelocity;
|
||||
}
|
||||
|
||||
|
||||
// ---------------------------------------------------------------
|
||||
// deinitializes class
|
||||
// ---------------------------------------------------------------
|
||||
bool FireControlBase::deinit()
|
||||
{
|
||||
m_Initialized = false;
|
||||
return true;
|
||||
}
|
||||
|
||||
} // namespace N_Ballistic
|
||||
+153
@@ -0,0 +1,153 @@
|
||||
#pragma once
|
||||
|
||||
// **************************************************************************
|
||||
//
|
||||
// (C) Copyright 2009 Swiss SIMTEC AG
|
||||
//
|
||||
// **************************************************************************
|
||||
//
|
||||
// $HeadURL$
|
||||
// $LastChangedBy$
|
||||
// $LastChangedDate$
|
||||
// $LastChangedRevision$
|
||||
//
|
||||
// **************************************************************************
|
||||
|
||||
#include "../logger.h"
|
||||
|
||||
// from stereotyped includes
|
||||
#include "IFireControl.hpp"
|
||||
#include "Ammunition.hpp"
|
||||
|
||||
// manual class imports
|
||||
|
||||
namespace N_Ballistic
|
||||
{
|
||||
|
||||
/**
|
||||
* Base implementation for fire calculations
|
||||
*
|
||||
* @author Daniel.Schmid
|
||||
* @version 1.0
|
||||
* @created 07-Aug-2009 15:01:07
|
||||
*/
|
||||
class FireControlBase : public IFireControl
|
||||
{
|
||||
public:
|
||||
|
||||
explicit FireControlBase(const char *loggerName);
|
||||
virtual ~FireControlBase();
|
||||
|
||||
|
||||
/**
|
||||
* Using this function a reference to the interface is added.
|
||||
*/
|
||||
SInt32 addRef();
|
||||
|
||||
/**
|
||||
* Calling this function the reference from the interface may be removed.
|
||||
*/
|
||||
SInt32 release();
|
||||
|
||||
/**
|
||||
* initializes the class with the ballistic configuration
|
||||
*
|
||||
* @param a_ammunition
|
||||
*/
|
||||
virtual bool init(const Ammunition &a_ammunition);
|
||||
|
||||
/**
|
||||
* returns the flight time of the projectile in seconds
|
||||
*
|
||||
* @param a_distance distance to the target
|
||||
* @param a_initialAmmuVelocity initial velocity
|
||||
* @param a_terrainAngle gun angle to terrain
|
||||
* @param a_airDensity air density
|
||||
*/
|
||||
virtual Float64 getFlightTime(const Float64 a_distance, const Float64 a_initialAmmuVelocity, const N_Types::Radian64 a_terrainAngle, const Float64 a_airDensity);
|
||||
|
||||
/**
|
||||
* returns the firing angle of the projectile if the following are given
|
||||
*
|
||||
* @param a_distance distance to the target
|
||||
* @param a_initialAmmuVelocity initial velocity
|
||||
* @param a_terrainAngle gun angle to terrain
|
||||
* @param a_airDensity air density
|
||||
*/
|
||||
virtual Float64 getFireAngle(const Float64 a_distance, const Float64 a_initialAmmuVelocity, const N_Types::Radian64 a_terrainAngle, const Float64 a_airDensity);
|
||||
|
||||
/**
|
||||
* This function corrects the fire angle due to the cross wind, if the following
|
||||
* are given
|
||||
*
|
||||
* @param a_crossWind wind speed
|
||||
* @param a_distance distance from gun
|
||||
*/
|
||||
N_Types::Radian64 getCrossWindCorrection(const Float64 a_crossWind, const Float64 a_distance);
|
||||
|
||||
/**
|
||||
* returns the air density, provided the following are given
|
||||
*
|
||||
* @param a_atmosphericPressure Pressure
|
||||
* @param a_airTemperature Temperature
|
||||
*/
|
||||
virtual Float64 getAirDensity(const Float64 a_atmosphericPressure, const Float64 a_airTemperature);
|
||||
|
||||
/**
|
||||
* This function corrects the fire angle due to the cross wind, if the following
|
||||
* are given
|
||||
*
|
||||
* @param a_crossWind Wind direction
|
||||
* @param a_turretDir Direction of Turret
|
||||
*/
|
||||
virtual Float64 getCrossWind(const N_Types::Coord3 &a_crossWind, const Float64 a_turretDir);
|
||||
|
||||
/**
|
||||
* returns the theritical initial ammu velocity of the ammunition
|
||||
*
|
||||
* @param a_temperature Temperature
|
||||
*/
|
||||
virtual Float64 getInitialAmmuVelocity(const Float64 a_temperature);
|
||||
|
||||
protected:
|
||||
|
||||
SInt32 m_MyRefCounter = 0;
|
||||
bool m_Initialized = false;
|
||||
/**
|
||||
* initial velocity constants
|
||||
*/
|
||||
Float64 m_InitialAmmuVelocityV0constX1 = 0;
|
||||
/**
|
||||
* initial velocity constants
|
||||
*/
|
||||
Float64 m_InitialAmmuVelocityV0constX0 = 0;
|
||||
/**
|
||||
* cross wind constants
|
||||
*/
|
||||
Float64 m_CrossWindConstX3 = 0;
|
||||
/**
|
||||
* cross wind constants
|
||||
*/
|
||||
Float64 m_CrossWindConstX2 = 0;
|
||||
/**
|
||||
* cross wind constants
|
||||
*/
|
||||
Float64 m_CrossWindConstX1 = 0;
|
||||
/**
|
||||
* cross wind constants
|
||||
*/
|
||||
Float64 m_CrossWindConstX0 = 0;
|
||||
/**
|
||||
* logger object
|
||||
*/
|
||||
NGL::INGLLogger &m_logger;
|
||||
|
||||
|
||||
/**
|
||||
* deinitializes class
|
||||
*/
|
||||
bool deinit();
|
||||
|
||||
};
|
||||
|
||||
}
|
||||
Executable
+41
@@ -0,0 +1,41 @@
|
||||
#pragma once
|
||||
|
||||
// **************************************************************************
|
||||
//
|
||||
// (C) Copyright 2009 Swiss SIMTEC AG
|
||||
//
|
||||
// **************************************************************************
|
||||
//
|
||||
// $HeadURL$
|
||||
// $LastChangedBy$
|
||||
// $LastChangedDate$
|
||||
// $LastChangedRevision$
|
||||
//
|
||||
// **************************************************************************
|
||||
|
||||
// from stereotyped includes
|
||||
#include "FireControlBase.hpp"
|
||||
|
||||
// manual class imports
|
||||
|
||||
namespace N_Ballistic
|
||||
{
|
||||
|
||||
/**
|
||||
* Decoy implementation for fire calculations
|
||||
*
|
||||
* @author Daniel.Schmid
|
||||
* @version 1.0
|
||||
* @created 07-Aug-2009 15:01:59
|
||||
*/
|
||||
class FireControlDecoy : public FireControlBase
|
||||
{
|
||||
public:
|
||||
|
||||
/**
|
||||
* ## Constructors (generated)
|
||||
*/
|
||||
FireControlDecoy() : FireControlBase("FireControlDecoy") {}
|
||||
};
|
||||
|
||||
}
|
||||
Executable
+185
@@ -0,0 +1,185 @@
|
||||
|
||||
// **************************************************************************
|
||||
//
|
||||
// (C) Copyright 2009 Swiss SIMTEC AG
|
||||
//
|
||||
// **************************************************************************
|
||||
//
|
||||
// $HeadURL$
|
||||
// $LastChangedBy$
|
||||
// $LastChangedDate$
|
||||
// $LastChangedRevision$
|
||||
//
|
||||
// **************************************************************************
|
||||
|
||||
// manual class headers
|
||||
#include "FireControlDiscrete.hpp"
|
||||
|
||||
namespace N_Ballistic
|
||||
{
|
||||
|
||||
// ---------------------------------------------------------------
|
||||
// initializes the class with the ballistic configuration
|
||||
// ---------------------------------------------------------------
|
||||
bool FireControlDiscrete::init(const Ammunition &a_ammunition)
|
||||
{
|
||||
m_Initialized = false;
|
||||
|
||||
TRACE_LOG(m_logger) << "FireControlDiscrete::init : initialising..." ;
|
||||
|
||||
m_CT = a_ammunition.m_StandardParams.m_Time.m_CT;
|
||||
m_CV0T = a_ammunition.m_StandardParams.m_Time.m_CV0T;
|
||||
m_CRhoT = a_ammunition.m_StandardParams.m_Time.m_CRhoT;
|
||||
m_ConstT = a_ammunition.m_StandardParams.m_Time.m_ConstT;
|
||||
|
||||
m_CA = a_ammunition.m_StandardParams.m_Angle.m_CA;
|
||||
m_CV0A = a_ammunition.m_StandardParams.m_Angle.m_CV0A;
|
||||
m_CGammaA = a_ammunition.m_StandardParams.m_Angle.m_CGammaA;
|
||||
m_CRhoA = a_ammunition.m_StandardParams.m_Angle.m_CRhoA;
|
||||
m_ConstA = a_ammunition.m_StandardParams.m_Angle.m_ConstA;
|
||||
|
||||
if (!FireControlBase::init(a_ammunition))
|
||||
return false;
|
||||
|
||||
TRACE_LOG(m_logger) << "m_CT : " << m_CT ;
|
||||
TRACE_LOG(m_logger) << "m_CV0T : " << m_CV0T ;
|
||||
TRACE_LOG(m_logger) << "m_CRhoT : " << m_CRhoT ;
|
||||
TRACE_LOG(m_logger) << "m_ConstT : " << m_ConstT ;
|
||||
|
||||
TRACE_LOG(m_logger) << "m_CA : " << m_CA ;
|
||||
TRACE_LOG(m_logger) << "m_CV0A : " << m_CV0A ;
|
||||
TRACE_LOG(m_logger) << "m_CGammaA : " << m_CGammaA ;
|
||||
TRACE_LOG(m_logger) << "m_CRhoA : " << m_CRhoA ;
|
||||
TRACE_LOG(m_logger) << "m_ConstA : " << m_ConstA ;
|
||||
|
||||
TRACE_LOG(m_logger) << "FireControlDiscrete::init : initialized successfully!" ;
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
// ---------------------------------------------------------------
|
||||
// returns the flight time of the projectile in seconds
|
||||
// ---------------------------------------------------------------
|
||||
Float64 FireControlDiscrete::getFlightTime(const Float64 a_distance,
|
||||
const Float64 a_initialAmmuVelocity,
|
||||
const N_Types::Radian64,
|
||||
const Float64 a_airDensity)
|
||||
{
|
||||
Float64 d_second;
|
||||
Float64 d_exp;
|
||||
Float64 d_correction;
|
||||
|
||||
if (!m_Initialized)
|
||||
{
|
||||
WARNING_LOG(m_logger) << "The class is not initialized" ;
|
||||
return 0.0;
|
||||
}
|
||||
|
||||
if ((a_distance < 1.0) ||
|
||||
(a_airDensity < 0.0) ||
|
||||
(a_initialAmmuVelocity < 1.0))
|
||||
{
|
||||
ERROR_LOG(m_logger) << "The parameters are not correct" ;
|
||||
return 0.0;
|
||||
}
|
||||
|
||||
// The firing time of the ammunition is calculated using the
|
||||
// following formula:
|
||||
// T(x,v0,rho) = (1 / m_CT * rho * v0) *
|
||||
// (e**(d_cT * rho * x) -1) *
|
||||
// ((d_cV0T * v0) + (d_cRhoT * rho) + m_ConstT)
|
||||
// rho - air density -- kg/m**3
|
||||
// x - distance -- meter
|
||||
// T - firing time -- second
|
||||
// v0 - initial velocity -- meter per second.
|
||||
// m_VT - exponential constant for time
|
||||
// m_CV0T - initial velocity correction constant
|
||||
// m_CRhoT - air density correction constant
|
||||
// m_ConstT - function constant
|
||||
//----------------------------------------------------------
|
||||
|
||||
d_correction = ((m_CV0T * a_initialAmmuVelocity) +
|
||||
(m_CRhoT * a_airDensity) +
|
||||
m_ConstT);
|
||||
d_exp = (exp(m_CT * a_airDensity * a_distance)) - 1.0;
|
||||
d_second = (1.0 / (m_CT * a_airDensity * a_initialAmmuVelocity)) *
|
||||
(d_exp) *
|
||||
(d_correction);
|
||||
|
||||
if (d_second < 0.0)
|
||||
d_second = 0.0;
|
||||
|
||||
return d_second;
|
||||
}
|
||||
|
||||
|
||||
// ---------------------------------------------------------------
|
||||
// returns the firing angle of the projectile if the following
|
||||
// are given
|
||||
// ---------------------------------------------------------------
|
||||
Float64 FireControlDiscrete::getFireAngle(const Float64 a_distance, const Float64 a_initialAmmuVelocity, const N_Types::Radian64 a_terrainAngle, const Float64 a_airDensity)
|
||||
{
|
||||
const Float64 d_FIXED_CONST = 4.905; // fixed constant of the function
|
||||
Float64 d_exp; // exponential patr of the function
|
||||
Float64 d_square; // square part of the function
|
||||
Float64 d_tan; // tangent value of the function
|
||||
N_Types::Radian64 o_tsi; // firing angle
|
||||
Float64 d_correction; // correction value
|
||||
|
||||
if (!m_Initialized)
|
||||
{
|
||||
WARNING_LOG(m_logger) << "The class is not initialized" ;
|
||||
return 0.0;
|
||||
}
|
||||
|
||||
if ((a_distance < 1.0) ||
|
||||
(a_airDensity < 0.0) ||
|
||||
(a_initialAmmuVelocity < 1.0) ||
|
||||
(a_terrainAngle > M_PI_2) ||
|
||||
(a_terrainAngle < -M_PI_2))
|
||||
{
|
||||
ERROR_LOG(m_logger) << "The parameters are not correct" ;
|
||||
return 0.0;
|
||||
}
|
||||
|
||||
// The firing angle of the ammunition is calculated using the formula:
|
||||
// A(x,gamma,v0,rho) = arctan((4.905/x) * ((1/d_cA*Rho*v0) *
|
||||
// ((e**(d_cA*Rho*x)-1) -- exp
|
||||
// )**2 -- square
|
||||
// ) -- arctan
|
||||
// * correction
|
||||
// correction =
|
||||
// ((d_cGammaA * gamma) +
|
||||
// (d_cV0A * v0) +
|
||||
// (d_cRhoA * Rho) +
|
||||
// (d_constA)
|
||||
// )
|
||||
// where:
|
||||
// rho - air density -- kg/m**3
|
||||
// x - distance -- meter
|
||||
// A - firing angle -- radian
|
||||
// gamma - angle to terrain -- radian
|
||||
// v0 - initial velocity
|
||||
// m_CA - exponential constant for angle
|
||||
// m_CGammaA - terrain angle correction constant for angle
|
||||
// m_CV0A; - initial velocity correction constant for angle
|
||||
// m_CRhoA; - air density correction constant for angle
|
||||
// m_ConstA; - function constant for angle
|
||||
//----------------------------------------------------------
|
||||
|
||||
d_exp = ((exp(m_CA * a_airDensity * a_distance)) - 1.0);
|
||||
d_square = pow(((1.0 / (m_CA * a_airDensity * a_initialAmmuVelocity)) * (d_exp)), Float64(2));
|
||||
d_tan = (d_FIXED_CONST / a_distance) * d_square;
|
||||
o_tsi = atan(d_tan);
|
||||
|
||||
d_correction = (m_CGammaA * a_terrainAngle) +
|
||||
(m_CV0A * a_initialAmmuVelocity) +
|
||||
(m_CRhoA * a_airDensity) +
|
||||
m_ConstA;
|
||||
|
||||
o_tsi = o_tsi * d_correction;
|
||||
|
||||
return o_tsi;
|
||||
}
|
||||
|
||||
} // namespace N_Ballistic
|
||||
Executable
+106
@@ -0,0 +1,106 @@
|
||||
#pragma once
|
||||
|
||||
// **************************************************************************
|
||||
//
|
||||
// (C) Copyright 2009 Swiss SIMTEC AG
|
||||
//
|
||||
// **************************************************************************
|
||||
//
|
||||
// $HeadURL$
|
||||
// $LastChangedBy$
|
||||
// $LastChangedDate$
|
||||
// $LastChangedRevision$
|
||||
//
|
||||
// **************************************************************************
|
||||
|
||||
// manual class imports
|
||||
#include "FireControlBase.hpp"
|
||||
|
||||
namespace N_Ballistic
|
||||
{
|
||||
|
||||
/**
|
||||
* Discrete implementation for fire calculations
|
||||
*
|
||||
* @author Daniel.Schmid
|
||||
* @version 1.0
|
||||
* @created 07-Aug-2009 15:01:42
|
||||
*/
|
||||
class FireControlDiscrete : public FireControlBase
|
||||
{
|
||||
public:
|
||||
|
||||
/**
|
||||
* ## Constructors (generated)
|
||||
*/
|
||||
FireControlDiscrete() : FireControlBase("FireControlDiscrete") {}
|
||||
|
||||
/**
|
||||
* initializes the class with the ballistic configuration
|
||||
*
|
||||
* @param a_ammunition
|
||||
*/
|
||||
bool init(const Ammunition &a_ammunition) override;
|
||||
|
||||
/**
|
||||
* returns the flight time of the projectile in seconds
|
||||
*
|
||||
* @param a_distance distance to the target
|
||||
* @param a_initialAmmuVelocity initial velocity
|
||||
* @param a_terrainAngle gun angle to terrain
|
||||
* @param a_airDensity air density
|
||||
*/
|
||||
Float64 getFlightTime(const Float64 a_distance, const Float64 a_initialAmmuVelocity, const N_Types::Radian64 a_terrainAngle, const Float64 a_airDensity) override;
|
||||
|
||||
/**
|
||||
* returns the firing angle of the projectile if the following are given
|
||||
*
|
||||
* @param a_distance distance to the target
|
||||
* @param a_initialAmmuVelocity initial velocity
|
||||
* @param a_terrainAngle gun angle to terrain
|
||||
* @param a_airDensity air density
|
||||
*/
|
||||
Float64 getFireAngle(const Float64 a_distance, const Float64 a_initialAmmuVelocity, const N_Types::Radian64 a_terrainAngle, const Float64 a_airDensity) override;
|
||||
|
||||
protected:
|
||||
|
||||
/**
|
||||
* air density correction constant
|
||||
*/
|
||||
Float64 m_CT = 0;
|
||||
/**
|
||||
* air density correction constant
|
||||
*/
|
||||
Float64 m_CV0T = 0;
|
||||
/**
|
||||
* air density correction constant
|
||||
*/
|
||||
Float64 m_CRhoT = 0;
|
||||
/**
|
||||
* air density correction constant
|
||||
*/
|
||||
Float64 m_ConstT = 0;
|
||||
/**
|
||||
* air density correction constant
|
||||
*/
|
||||
Float64 m_CA = 0;
|
||||
/**
|
||||
* air density correction constant
|
||||
*/
|
||||
Float64 m_CV0A = 0;
|
||||
/**
|
||||
* air density correction constant
|
||||
*/
|
||||
Float64 m_CRhoA = 0;
|
||||
/**
|
||||
* air density correction constant
|
||||
*/
|
||||
Float64 m_ConstA = 0;
|
||||
/**
|
||||
* air density correction constant
|
||||
*/
|
||||
Float64 m_CGammaA = 0;
|
||||
|
||||
};
|
||||
|
||||
}
|
||||
Executable
+164
@@ -0,0 +1,164 @@
|
||||
|
||||
// **************************************************************************
|
||||
//
|
||||
// (C) Copyright 2009 Swiss SIMTEC AG
|
||||
//
|
||||
// **************************************************************************
|
||||
//
|
||||
// $HeadURL$
|
||||
// $LastChangedBy$
|
||||
// $LastChangedDate$
|
||||
// $LastChangedRevision$
|
||||
//
|
||||
// **************************************************************************
|
||||
|
||||
// manual class headers
|
||||
#include "FireControlPiton.hpp"
|
||||
|
||||
namespace N_Ballistic
|
||||
{
|
||||
|
||||
// ---------------------------------------------------------------
|
||||
// initializes the class with the ballistic configuration
|
||||
// ---------------------------------------------------------------
|
||||
bool FireControlPiton::init(const Ammunition &a_ammunition)
|
||||
{
|
||||
m_Initialized = false;
|
||||
|
||||
TRACE_LOG(m_logger) << "FireControlPiton::init : initialising..." ;
|
||||
|
||||
m_CRhoT = a_ammunition.m_StandardParams.m_Time.m_CRhoT;
|
||||
m_ConstT = a_ammunition.m_StandardParams.m_Time.m_ConstT;
|
||||
|
||||
m_CRhoA = a_ammunition.m_StandardParams.m_Angle.m_CRhoA;
|
||||
m_ConstA = a_ammunition.m_StandardParams.m_Angle.m_ConstA;
|
||||
|
||||
if (!FireControlBase::init(a_ammunition))
|
||||
return false;
|
||||
|
||||
TRACE_LOG(m_logger) << "m_CRhoT : " << m_CRhoT ;
|
||||
TRACE_LOG(m_logger) << "m_ConstT : " << m_ConstT ;
|
||||
TRACE_LOG(m_logger) << "m_CRhoA : " << m_CRhoA ;
|
||||
TRACE_LOG(m_logger) << "m_ConstA : " << m_ConstA ;
|
||||
|
||||
TRACE_LOG(m_logger) << "FireControlPiton::init : initialized successfully!" ;
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
// ---------------------------------------------------------------
|
||||
// returns the flight time of the projectile in seconds
|
||||
// ---------------------------------------------------------------
|
||||
Float64 FireControlPiton::getFlightTime(const Float64 a_distance, const Float64 a_initialAmmuVelocity, const N_Types::Radian64 a_terrainAngle, const Float64 a_airDensity)
|
||||
{
|
||||
const Float64 d_THREE_OVER_TWO = 3.0 / 2.0;
|
||||
const Float64 d_TWO_OVER_NINE = 2.0 / 9.0;
|
||||
Float64 d_second;
|
||||
Float64 d_correction;
|
||||
Float64 d_temp; // temp value
|
||||
Float64 d_laserDistY; // Y laser value
|
||||
|
||||
if (!m_Initialized)
|
||||
{
|
||||
WARNING_LOG(m_logger) << "The class is not initialized" ;
|
||||
return 0.0;
|
||||
}
|
||||
|
||||
if ((a_distance < 1.0) ||
|
||||
(a_airDensity < 0.0) ||
|
||||
(a_initialAmmuVelocity < 1.0) ||
|
||||
(a_terrainAngle > M_PI_2) ||
|
||||
(a_terrainAngle < -M_PI_2))
|
||||
{
|
||||
ERROR_LOG(m_logger) << "The parameters are not correct" ;
|
||||
return 0.0;
|
||||
}
|
||||
|
||||
// t = (2.0 / (9.0 * v0 * cos(Gamma))) * corr1
|
||||
// corr1 = (pow(corr2, 2/3) - 1) / KT
|
||||
// corr2 = 1 + (3 * KT * Xe)
|
||||
// KT = cRhoT * Rho + constT
|
||||
// Gamma - terrain angle
|
||||
// Rho - air density
|
||||
// v0 - initial ammu velocity
|
||||
// cRhoT, constT - parameter
|
||||
//----------------------------------------------------------
|
||||
// f_LaserDistZ = a_Distance * sin(a_TerrainAngle);
|
||||
d_laserDistY = a_distance * cos(a_terrainAngle);
|
||||
d_temp = (m_CRhoT * a_airDensity) + m_ConstT;
|
||||
d_correction = 1 + (3.0 * d_temp * d_laserDistY);
|
||||
d_correction = pow(d_correction, d_THREE_OVER_TWO);
|
||||
d_correction -= 1.0;
|
||||
d_correction /= d_temp;
|
||||
|
||||
d_second = (d_TWO_OVER_NINE * d_correction) /
|
||||
(a_initialAmmuVelocity * cos(a_terrainAngle));
|
||||
|
||||
if (d_second < 0.0)
|
||||
d_second = 0.0;
|
||||
|
||||
return d_second;
|
||||
}
|
||||
|
||||
|
||||
// ---------------------------------------------------------------
|
||||
// returns the firing angle of the projectile if the following
|
||||
// are given
|
||||
// ---------------------------------------------------------------
|
||||
Float64 FireControlPiton::getFireAngle(const Float64 a_distance, const Float64 a_initialAmmuVelocity, const N_Types::Radian64 a_terrainAngle, const Float64 a_airDensity)
|
||||
{
|
||||
Float64 d_square; // square part of the function
|
||||
Float64 d_tan; // tangent value of the function
|
||||
N_Types::Radian64 o_tsi; // firing angle
|
||||
Float64 d_correction; // correction value
|
||||
Float64 d_temp; // temp value
|
||||
Float64 d_laserDistZ; // Z laser value
|
||||
Float64 d_laserDistY; // Y laser value
|
||||
|
||||
if (!m_Initialized)
|
||||
{
|
||||
WARNING_LOG(m_logger) << "The class is not initialized" ;
|
||||
return 0.0;
|
||||
}
|
||||
|
||||
if ((a_distance < 1.0) ||
|
||||
(a_airDensity < 0.0) ||
|
||||
(a_initialAmmuVelocity < 1.0) ||
|
||||
(a_terrainAngle > M_PI_2) ||
|
||||
(a_terrainAngle < -M_PI_2))
|
||||
{
|
||||
ERROR_LOG(m_logger) << "The parameters are not correct" ;
|
||||
return 0.0;
|
||||
}
|
||||
|
||||
// Tsi = atan((1/2) * ((Xe/c) - sqrt))
|
||||
// sqrt = pow((Xe/c), 2) - 4 * (Ye + c) / c
|
||||
// c = 9.81 * pow(Xe, 2) * (1 + k + Xe) / ( 2 * pow(v0, 2))
|
||||
// k = cRhoA * Rho + constA
|
||||
// Xe = D * cos(Gamma)
|
||||
//
|
||||
// Gamma - terrain angle
|
||||
// Rho - air density
|
||||
// v0 - initial ammu velocity
|
||||
// cRhoA, constA - constants
|
||||
//----------------------------------------------------------
|
||||
|
||||
d_laserDistZ = a_distance * sin(a_terrainAngle);
|
||||
d_laserDistY = a_distance * cos(a_terrainAngle);
|
||||
d_temp = (m_CRhoA * a_airDensity) + m_ConstA;
|
||||
|
||||
d_correction = N_SST::G * pow(d_laserDistY, Float64(2)) * (1.0 + (d_temp * d_laserDistY));
|
||||
d_correction /= (2.0 * pow(a_initialAmmuVelocity, Float64(2)));
|
||||
|
||||
d_square = pow((d_laserDistY / d_correction), Float64(2));
|
||||
d_square -= ((4.0 * (d_laserDistZ + d_correction)) / d_correction);
|
||||
d_square = sqrt(d_square);
|
||||
d_tan = (d_laserDistY / d_correction) - d_square;
|
||||
d_tan /= 2.0;
|
||||
o_tsi = atan(d_tan);
|
||||
o_tsi -= a_terrainAngle;
|
||||
|
||||
return o_tsi;
|
||||
}
|
||||
|
||||
} // namespace N_Ballistic
|
||||
Executable
+86
@@ -0,0 +1,86 @@
|
||||
#pragma once
|
||||
|
||||
// **************************************************************************
|
||||
//
|
||||
// (C) Copyright 2009 Swiss SIMTEC AG
|
||||
//
|
||||
// **************************************************************************
|
||||
//
|
||||
// $HeadURL$
|
||||
// $LastChangedBy$
|
||||
// $LastChangedDate$
|
||||
// $LastChangedRevision$
|
||||
//
|
||||
// **************************************************************************
|
||||
|
||||
// manual class imports
|
||||
#include "FireControlBase.hpp"
|
||||
|
||||
namespace N_Ballistic
|
||||
{
|
||||
|
||||
/**
|
||||
* Piton Bressant implementation for fire calculations
|
||||
*
|
||||
* @author Daniel.Schmid
|
||||
* @version 1.0
|
||||
* @created 07-Aug-2009 15:01:30
|
||||
*/
|
||||
class FireControlPiton : public FireControlBase
|
||||
{
|
||||
public:
|
||||
|
||||
/**
|
||||
* ## Constructors (generated)
|
||||
*/
|
||||
FireControlPiton() : FireControlBase("FireControlPiton") {}
|
||||
|
||||
/**
|
||||
* initializes the class with the ballistic configuration
|
||||
*
|
||||
* @param a_ammunition
|
||||
*/
|
||||
bool init(const Ammunition &a_ammunition) override;
|
||||
|
||||
/**
|
||||
* returns the flight time of the projectile in seconds
|
||||
*
|
||||
* @param a_distance distance to the target
|
||||
* @param a_initialAmmuVelocity initial velocity
|
||||
* @param a_terrainAngle gun angle to terrain
|
||||
* @param a_airDensity air density
|
||||
*/
|
||||
Float64 getFlightTime(const Float64 a_distance, const Float64 a_initialAmmuVelocity, const N_Types::Radian64 a_terrainAngle, const Float64 a_airDensity) override;
|
||||
|
||||
/**
|
||||
* returns the firing angle of the projectile if the following are given
|
||||
*
|
||||
* @param a_distance distance to the target
|
||||
* @param a_initialAmmuVelocity initial velocity
|
||||
* @param a_terrainAngle gun angle to terrain
|
||||
* @param a_airDensity air density
|
||||
*/
|
||||
Float64 getFireAngle(const Float64 a_distance, const Float64 a_initialAmmuVelocity, const N_Types::Radian64 a_terrainAngle, const Float64 a_airDensity) override;
|
||||
|
||||
protected:
|
||||
|
||||
/**
|
||||
* air density correction constant
|
||||
*/
|
||||
Float64 m_CRhoT = 0;
|
||||
/**
|
||||
* air density correction constant
|
||||
*/
|
||||
Float64 m_CRhoA = 0;
|
||||
/**
|
||||
* air density correction constant
|
||||
*/
|
||||
Float64 m_ConstT = 0;
|
||||
/**
|
||||
* air density correction constant
|
||||
*/
|
||||
Float64 m_ConstA = 0;
|
||||
|
||||
};
|
||||
|
||||
}
|
||||
Executable
+88
@@ -0,0 +1,88 @@
|
||||
|
||||
// **************************************************************************
|
||||
//
|
||||
// (C) Copyright 2009 Swiss SIMTEC AG
|
||||
//
|
||||
// **************************************************************************
|
||||
//
|
||||
// $HeadURL$
|
||||
// $LastChangedBy$
|
||||
// $LastChangedDate$
|
||||
// $LastChangedRevision$
|
||||
//
|
||||
// **************************************************************************
|
||||
|
||||
// manual class headers
|
||||
#include "FireControlRungeKutta.hpp"
|
||||
#include "TrajectoryRungeKutta.hpp"
|
||||
|
||||
namespace N_Ballistic
|
||||
{
|
||||
|
||||
// ---------------------------------------------------------------
|
||||
// returns the flight time of the projectile in seconds
|
||||
// ---------------------------------------------------------------
|
||||
Float64 FireControlRungeKutta::getFlightTime(const Float64,
|
||||
const Float64,
|
||||
const N_Types::Radian64,
|
||||
const Float64)
|
||||
{
|
||||
Q_ASSERT(false);
|
||||
ERROR_LOG(m_logger) << "This algorithm has no implementation for flight time" ;
|
||||
return -1;
|
||||
}
|
||||
|
||||
|
||||
// ---------------------------------------------------------------
|
||||
// returns the firing angle of the projectile if the following
|
||||
// are given
|
||||
// ---------------------------------------------------------------
|
||||
Float64 FireControlRungeKutta::getFireAngle(const Float64,
|
||||
const Float64,
|
||||
const N_Types::Radian64,
|
||||
const Float64)
|
||||
{
|
||||
Q_ASSERT(false);
|
||||
ERROR_LOG(m_logger) << "This algorithm has no implementation for fire angle" ;
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
// ---------------------------------------------------------------
|
||||
// returns the air density, provided the following are given
|
||||
// ---------------------------------------------------------------
|
||||
Float64 FireControlRungeKutta::getAirDensity(const Float64 a_atmosphericPressure, const Float64 a_airTemperature)
|
||||
{
|
||||
const Float64 d_FIXED_CONST = 0.348368; // fixed constant of the function
|
||||
Float64 d_kelvin;
|
||||
Float64 d_rho;
|
||||
|
||||
if ((a_atmosphericPressure <= 1.0) ||
|
||||
(a_airTemperature <= -N_SST::ZERO_CELSIUS_IN_KELVIN))
|
||||
{
|
||||
ERROR_LOG(m_logger) << "The parameters are not correct, Pressure=" << a_atmosphericPressure << ", Temp=" << a_airTemperature ;
|
||||
return 1.0;
|
||||
}
|
||||
|
||||
TrajectoryRungeKutta::m_Temp = a_airTemperature;
|
||||
DEBUG_LOG(m_logger) << "Temp for Trajectory set: " << TrajectoryRungeKutta::m_Temp ;
|
||||
|
||||
d_kelvin = a_airTemperature + N_SST::ZERO_CELSIUS_IN_KELVIN;
|
||||
d_rho = d_FIXED_CONST * a_atmosphericPressure / d_kelvin;
|
||||
|
||||
return d_rho;
|
||||
}
|
||||
|
||||
|
||||
// ---------------------------------------------------------------
|
||||
// returns the theritical initial ammu velocity of the
|
||||
// ammunition
|
||||
// ---------------------------------------------------------------
|
||||
Float64 FireControlRungeKutta::getInitialAmmuVelocity(const Float64 a_temperature)
|
||||
{
|
||||
TrajectoryRungeKutta::m_TempWeapon = a_temperature;
|
||||
DEBUG_LOG(m_logger) << "Temp for Weapon set: " << TrajectoryRungeKutta::m_TempWeapon ;
|
||||
return 0.0;
|
||||
}
|
||||
|
||||
} // namespace N_Ballistic
|
||||
Executable
+77
@@ -0,0 +1,77 @@
|
||||
#pragma once
|
||||
|
||||
// **************************************************************************
|
||||
//
|
||||
// (C) Copyright 2009 Swiss SIMTEC AG
|
||||
//
|
||||
// **************************************************************************
|
||||
//
|
||||
// $HeadURL$
|
||||
// $LastChangedBy$
|
||||
// $LastChangedDate$
|
||||
// $LastChangedRevision$
|
||||
//
|
||||
// **************************************************************************
|
||||
|
||||
// from stereotyped includes
|
||||
#include "FireControlBase.hpp"
|
||||
|
||||
// manual class imports
|
||||
|
||||
namespace N_Ballistic
|
||||
{
|
||||
|
||||
/**
|
||||
* RungeKutta implementation for fire calculations
|
||||
*
|
||||
* @author Daniel.Schmid
|
||||
* @version 1.0
|
||||
* @created 22-Jul-2010 11:44:20
|
||||
*/
|
||||
class FireControlRungeKutta : public FireControlBase
|
||||
{
|
||||
public:
|
||||
|
||||
FireControlRungeKutta(const char *loggerName = nullptr)
|
||||
: FireControlBase(loggerName ? loggerName : "FireControlRungeKutta")
|
||||
{}
|
||||
|
||||
|
||||
/**
|
||||
* returns the flight time of the projectile in seconds
|
||||
*
|
||||
* @param a_distance distance to the target
|
||||
* @param a_initialAmmuVelocity initial velocity
|
||||
* @param a_terrainAngle gun angle to terrain
|
||||
* @param a_airDensity air density
|
||||
*/
|
||||
Float64 getFlightTime(const Float64 a_distance, const Float64 a_initialAmmuVelocity, const N_Types::Radian64 a_terrainAngle, const Float64 a_airDensity) override;
|
||||
|
||||
/**
|
||||
* returns the firing angle of the projectile if the following are given
|
||||
*
|
||||
* @param a_distance distance to the target
|
||||
* @param a_initialAmmuVelocity initial velocity
|
||||
* @param a_terrainAngle gun angle to terrain
|
||||
* @param a_airDensity air density
|
||||
*/
|
||||
Float64 getFireAngle(const Float64 a_distance, const Float64 a_initialAmmuVelocity, const N_Types::Radian64 a_terrainAngle, const Float64 a_airDensity) override;
|
||||
|
||||
/**
|
||||
* returns the air density, provided the following are given
|
||||
*
|
||||
* @param a_atmosphericPressure Pressure
|
||||
* @param a_airTemperature Temperature
|
||||
*/
|
||||
Float64 getAirDensity(const Float64 a_atmosphericPressure, const Float64 a_airTemperature) override;
|
||||
|
||||
/**
|
||||
* returns the theritical initial ammu velocity of the ammunition
|
||||
*
|
||||
* @param a_temperature Temperature
|
||||
*/
|
||||
Float64 getInitialAmmuVelocity(const Float64 a_temperature) override;
|
||||
|
||||
};
|
||||
|
||||
}
|
||||
Lts/Services/CentralEffectSimulation/Plugins/GeoPairing/FW_Ballistic/FireControlRungeKuttaSimple.hpp
Executable
+39
@@ -0,0 +1,39 @@
|
||||
#pragma once
|
||||
|
||||
// **************************************************************************
|
||||
//
|
||||
// (C) Copyright 2009 Swiss SIMTEC AG
|
||||
//
|
||||
// **************************************************************************
|
||||
//
|
||||
// $HeadURL$
|
||||
// $LastChangedBy$
|
||||
// $LastChangedDate$
|
||||
// $LastChangedRevision$
|
||||
//
|
||||
// **************************************************************************
|
||||
|
||||
// from stereotyped includes
|
||||
#include "FireControlRungeKutta.hpp"
|
||||
|
||||
// manual class imports
|
||||
|
||||
namespace N_Ballistic
|
||||
{
|
||||
|
||||
/**
|
||||
* Simple RungeKutta implementation for fire calculations
|
||||
*
|
||||
* @author Daniel.Schmid
|
||||
* @version 1.0
|
||||
* @created 22-Jul-2010 12:11:39
|
||||
*/
|
||||
class FireControlRungeKuttaSimple : public FireControlRungeKutta
|
||||
{
|
||||
public:
|
||||
|
||||
FireControlRungeKuttaSimple() : FireControlRungeKutta("FireControlRungeKuttaSimple") {}
|
||||
|
||||
};
|
||||
|
||||
}
|
||||
Executable
+48
@@ -0,0 +1,48 @@
|
||||
#pragma once
|
||||
|
||||
// **************************************************************************
|
||||
//
|
||||
// (C) Copyright 2009 Swiss SIMTEC AG
|
||||
//
|
||||
// **************************************************************************
|
||||
//
|
||||
// $HeadURL$
|
||||
// $LastChangedBy$
|
||||
// $LastChangedDate$
|
||||
// $LastChangedRevision$
|
||||
//
|
||||
// **************************************************************************
|
||||
|
||||
// from stereotyped includes
|
||||
#include "Ammunition.hpp"
|
||||
|
||||
// manual class imports
|
||||
class QString;
|
||||
|
||||
namespace N_Ballistic
|
||||
{
|
||||
|
||||
/**
|
||||
* This is the interface to the ballistic configuration mecanism
|
||||
*
|
||||
* @author Daniel.Schmid
|
||||
* @version 1.0
|
||||
* @created 11-Aug-2009 16:14:34
|
||||
*/
|
||||
class IBallisticConfigurator
|
||||
{
|
||||
public:
|
||||
|
||||
virtual ~IBallisticConfigurator() = default;
|
||||
|
||||
/**
|
||||
* load the configfile and creates ammunition objects for all found entries
|
||||
*
|
||||
* @param a_configFilename
|
||||
* @param a_ammunitions
|
||||
*/
|
||||
virtual bool loadAmmunitions(const QString &a_configFilename, std::vector<Ammunition *> &a_ammunitions) = 0;
|
||||
|
||||
};
|
||||
|
||||
}
|
||||
+91
@@ -0,0 +1,91 @@
|
||||
#pragma once
|
||||
|
||||
// **************************************************************************
|
||||
//
|
||||
// (C) Copyright 2009 Swiss SIMTEC AG
|
||||
//
|
||||
// **************************************************************************
|
||||
//
|
||||
// $HeadURL$
|
||||
// $LastChangedBy$
|
||||
// $LastChangedDate$
|
||||
// $LastChangedRevision$
|
||||
//
|
||||
// **************************************************************************
|
||||
|
||||
// from stereotyped includes
|
||||
#include <GBL_Types/Radian64.hpp>
|
||||
#include <GBL_Types/Coord3.hpp>
|
||||
#include "IUnknown.hpp"
|
||||
|
||||
// manual class imports
|
||||
|
||||
namespace N_Ballistic
|
||||
{
|
||||
|
||||
/**
|
||||
* Interface for fire control implementations
|
||||
*
|
||||
* @author Daniel.Schmid
|
||||
* @version 1.0
|
||||
* @created 07-Aug-2009 13:37:13
|
||||
*/
|
||||
class IFireControl : public IUnknown
|
||||
{
|
||||
public:
|
||||
|
||||
/**
|
||||
* returns the flight time of the projectile in seconds
|
||||
*
|
||||
* @param a_distance distance to the target
|
||||
* @param a_initialAmmuVelocity initial velocity
|
||||
* @param a_terrainAngle gun angle to terrain
|
||||
* @param a_airDensity air density
|
||||
*/
|
||||
virtual Float64 getFlightTime(const Float64 a_distance, const Float64 a_initialAmmuVelocity, const N_Types::Radian64 a_terrainAngle, const Float64 a_airDensity) = 0;
|
||||
|
||||
/**
|
||||
* returns the firing angle of the projectile if the following are given
|
||||
*
|
||||
* @param a_distance distance to the target
|
||||
* @param a_initialAmmuVelocity initial velocity
|
||||
* @param a_terrainAngle gun angle to terrain
|
||||
* @param a_airDensity air density
|
||||
*/
|
||||
virtual Float64 getFireAngle(const Float64 a_distance, const Float64 a_initialAmmuVelocity, const N_Types::Radian64 a_terrainAngle, const Float64 a_airDensity) = 0;
|
||||
|
||||
/**
|
||||
* This function corrects the fire angle due to the cross wind, if the following
|
||||
* are given
|
||||
*
|
||||
* @param a_crossWind wind speed
|
||||
* @param a_distance distance from gun
|
||||
*/
|
||||
virtual N_Types::Radian64 getCrossWindCorrection(const Float64 a_crossWind, const Float64 a_distance) = 0;
|
||||
|
||||
/**
|
||||
* returns the air density
|
||||
*
|
||||
* @param a_atmosphericPressure Pressure
|
||||
* @param a_airTemperature Temperature
|
||||
*/
|
||||
virtual Float64 getAirDensity(const Float64 a_atmosphericPressure, const Float64 a_airTemperature) = 0;
|
||||
|
||||
/**
|
||||
* This function corrects the fire angle due to the cross wind
|
||||
*
|
||||
* @param a_crossWind Wind direction
|
||||
* @param a_turretDir Direction of Turret
|
||||
*/
|
||||
virtual Float64 getCrossWind(const N_Types::Coord3 &a_crossWind, const Float64 a_turretDir) = 0;
|
||||
|
||||
/**
|
||||
* returns the theritical initial ammu velocity of the ammunition
|
||||
*
|
||||
* @param a_temperature Temperature
|
||||
*/
|
||||
virtual Float64 getInitialAmmuVelocity(const Float64 a_temperature) = 0;
|
||||
|
||||
};
|
||||
|
||||
}
|
||||
+117
@@ -0,0 +1,117 @@
|
||||
#pragma once
|
||||
|
||||
// **************************************************************************
|
||||
//
|
||||
// (C) Copyright 2009 Swiss SIMTEC AG
|
||||
//
|
||||
// **************************************************************************
|
||||
//
|
||||
// $HeadURL$
|
||||
// $LastChangedBy$
|
||||
// $LastChangedDate$
|
||||
// $LastChangedRevision$
|
||||
//
|
||||
// **************************************************************************
|
||||
|
||||
// from stereotyped includes
|
||||
#include "IUnknown.hpp"
|
||||
#include <GBL_Types/Angle3.hpp>
|
||||
#include <GBL_Types/Coord3.hpp>
|
||||
|
||||
// manual class imports
|
||||
|
||||
|
||||
namespace N_Ballistic
|
||||
{
|
||||
|
||||
/**
|
||||
* Interface for trajectory implementations
|
||||
*
|
||||
* @author Daniel.Schmid
|
||||
* @version 1.0
|
||||
* @created 07-Aug-2009 13:36:55
|
||||
*/
|
||||
class ITrajectory : public IUnknown
|
||||
{
|
||||
public:
|
||||
|
||||
virtual ~ITrajectory() = default;
|
||||
|
||||
/**
|
||||
* initializes the object with the following parameters
|
||||
*
|
||||
* @param a_gunPos Position of the gun
|
||||
* @param a_gunAngle Shooting angle of the gun
|
||||
* @param a_crossWind lateral wind
|
||||
* @param a_airDensity
|
||||
* @param a_initialAmmuSpeed ammunition speed
|
||||
*/
|
||||
virtual bool init(const N_Types::Coord3 &a_gunPos,
|
||||
const N_Types::Angle3 &a_gunAngle,
|
||||
const Float64 a_crossWind,
|
||||
const Float64 a_airDensity,
|
||||
const Float64 a_initialAmmuSpeed) = 0;
|
||||
|
||||
/**
|
||||
* calculates the next tracer point using the delta time
|
||||
*
|
||||
* @param a_deltaTime time difference to last call
|
||||
*/
|
||||
virtual bool move(const Float64 a_deltaTime) = 0;
|
||||
|
||||
/**
|
||||
* returns the current position of the tracer
|
||||
*/
|
||||
virtual const N_Types::Coord3 &getPosition() const = 0;
|
||||
|
||||
/**
|
||||
* returns the current orientation of the tracer
|
||||
*/
|
||||
virtual const N_Types::Angle3 &getOrient() const = 0;
|
||||
|
||||
/**
|
||||
* returns the acceleration/deceleration vector
|
||||
*/
|
||||
virtual const N_Types::Coord3 &getAccel() const = 0;
|
||||
|
||||
/**
|
||||
* returns the velocity vector
|
||||
*/
|
||||
virtual const N_Types::Coord3 &getVelocity() const = 0;
|
||||
|
||||
/**
|
||||
* this function returns the state of the tracer
|
||||
*/
|
||||
virtual bool isActive() const = 0;
|
||||
|
||||
/**
|
||||
* deactivate a tracer
|
||||
*/
|
||||
virtual void deactivate() = 0;
|
||||
|
||||
/**
|
||||
* sets an integer ID of the bullet, used for SimMunitionIDs
|
||||
*
|
||||
* @param a_id
|
||||
*/
|
||||
virtual void setID(SInt32 a_id) = 0;
|
||||
|
||||
/**
|
||||
* gets an integer ID of the bullet, used for SimMunitionIDs
|
||||
*/
|
||||
virtual SInt32 getID() const = 0;
|
||||
|
||||
/**
|
||||
* if a bullet detonates after a certain timeout, defined by the timeout in the
|
||||
* config file
|
||||
*/
|
||||
virtual bool IsDetonateOnTimer() const = 0;
|
||||
|
||||
/**
|
||||
* if a bullet detonates on either terrain or object impact
|
||||
*/
|
||||
virtual bool IsDetonateOnImpact() const = 0;
|
||||
|
||||
};
|
||||
|
||||
}
|
||||
+49
@@ -0,0 +1,49 @@
|
||||
#pragma once
|
||||
|
||||
// **************************************************************************
|
||||
//
|
||||
// (C) Copyright 2009 Swiss SIMTEC AG
|
||||
//
|
||||
// **************************************************************************
|
||||
//
|
||||
// $HeadURL$
|
||||
// $LastChangedBy$
|
||||
// $LastChangedDate$
|
||||
// $LastChangedRevision$
|
||||
//
|
||||
// **************************************************************************
|
||||
|
||||
#include <GBL_Global/Types.hpp>
|
||||
|
||||
// manual class imports
|
||||
|
||||
namespace N_Ballistic
|
||||
{
|
||||
|
||||
/**
|
||||
* Base Interface for all interfaces used in this package
|
||||
*
|
||||
* @author Daniel.Schmid
|
||||
* @version 1.0
|
||||
* @created 07-Aug-2009 13:41:51
|
||||
*/
|
||||
class IUnknown
|
||||
{
|
||||
public:
|
||||
|
||||
virtual ~IUnknown() = default;
|
||||
|
||||
|
||||
/**
|
||||
* Using this function a reference to the interface is added.
|
||||
*/
|
||||
virtual SInt32 addRef() = 0;
|
||||
|
||||
/**
|
||||
* Calling this function the reference from the interface may be removed.
|
||||
*/
|
||||
virtual SInt32 release() = 0;
|
||||
|
||||
};
|
||||
|
||||
}
|
||||
Executable
+53
@@ -0,0 +1,53 @@
|
||||
#pragma once
|
||||
|
||||
// **************************************************************************
|
||||
//
|
||||
// (C) Copyright 2009 Swiss SIMTEC AG
|
||||
//
|
||||
// **************************************************************************
|
||||
//
|
||||
// $HeadURL$
|
||||
// $LastChangedBy$
|
||||
// $LastChangedDate$
|
||||
// $LastChangedRevision$
|
||||
//
|
||||
// **************************************************************************
|
||||
|
||||
#include <GBL_Global/Types.hpp>
|
||||
#include <vector>
|
||||
|
||||
namespace N_Ballistic
|
||||
{
|
||||
|
||||
/**
|
||||
* Polygonal representation of ballistic values
|
||||
*
|
||||
* @author Daniel.Schmid
|
||||
* @version 1.0
|
||||
* @created 10-Aug-2009 11:07:22
|
||||
*/
|
||||
struct PolygonParamType
|
||||
{
|
||||
/**
|
||||
* Container for PolyCoefficientType
|
||||
*
|
||||
* @author Daniel.Schmid
|
||||
* @version 1.0
|
||||
* @created 10-Aug-2009 11:08:15
|
||||
*/
|
||||
struct PolyCoefficientType
|
||||
{
|
||||
SInt32 m_Index = 0;
|
||||
Float64 m_Coeff = 0.0;
|
||||
|
||||
};
|
||||
|
||||
std::vector<PolyCoefficientType> m_AY;
|
||||
std::vector<PolyCoefficientType> m_AX;
|
||||
Float64 m_InitialAX = 0.0;
|
||||
bool m_Valid = false;
|
||||
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
+106
@@ -0,0 +1,106 @@
|
||||
#pragma once
|
||||
|
||||
// **************************************************************************
|
||||
//
|
||||
// (C) Copyright 2009 Swiss SIMTEC AG
|
||||
//
|
||||
// **************************************************************************
|
||||
//
|
||||
// $HeadURL$
|
||||
// $LastChangedBy$
|
||||
// $LastChangedDate$
|
||||
// $LastChangedRevision$
|
||||
//
|
||||
// **************************************************************************
|
||||
|
||||
#include <GBL_Global/Types.hpp>
|
||||
|
||||
namespace N_Ballistic
|
||||
{
|
||||
|
||||
/**
|
||||
* Standard values of ammunition
|
||||
*
|
||||
* @author Daniel.Schmid
|
||||
* @version 1.0
|
||||
* @created 10-Aug-2009 11:08:46
|
||||
*/
|
||||
struct StandardType
|
||||
{
|
||||
/**
|
||||
* Container for CrossWindType
|
||||
*
|
||||
* @author Daniel.Schmid
|
||||
* @version 1.0
|
||||
* @created 10-Aug-2009 11:10:42
|
||||
*/
|
||||
struct CrossWindType
|
||||
{
|
||||
Float64 m_ConstX3 = 0.0;
|
||||
Float64 m_ConstX2 = 0.0;
|
||||
Float64 m_ConstX1 = 0.0;
|
||||
Float64 m_ConstX0 = 0.0;
|
||||
};
|
||||
|
||||
/**
|
||||
* Container for AngleType
|
||||
*
|
||||
* @author Daniel.Schmid
|
||||
* @version 1.0
|
||||
* @created 10-Aug-2009 11:10:34
|
||||
*/
|
||||
struct AngleType
|
||||
{
|
||||
Float64 m_CA = 0.0;
|
||||
Float64 m_CGammaA = 0.0;
|
||||
Float64 m_CV0A = 0.0;
|
||||
Float64 m_CRhoA = 0.0;
|
||||
Float64 m_ConstA = 0.0;
|
||||
|
||||
};
|
||||
|
||||
/**
|
||||
* Container for SpeedType
|
||||
*
|
||||
* @author Daniel.Schmid
|
||||
* @version 1.0
|
||||
* @created 10-Aug-2009 11:11:00
|
||||
*/
|
||||
struct SpeedType
|
||||
{
|
||||
/**
|
||||
* Initial ammunition velocity
|
||||
*/
|
||||
Float64 m_V0ConstX1 = 0.0;
|
||||
/**
|
||||
* Correction constant in function of temperature
|
||||
*/
|
||||
Float64 m_V0ConstX0 = 0.0;
|
||||
|
||||
};
|
||||
|
||||
/**
|
||||
* Container for TimeType
|
||||
*
|
||||
* @author Daniel.Schmid
|
||||
* @version 1.0
|
||||
* @created 10-Aug-2009 11:11:08
|
||||
*/
|
||||
struct TimeType
|
||||
{
|
||||
Float64 m_CT = 0.0;
|
||||
Float64 m_CV0T = 0.0;
|
||||
Float64 m_CRhoT = 0.0;
|
||||
Float64 m_ConstT = 0.0;
|
||||
|
||||
};
|
||||
|
||||
StandardType::TimeType m_Time;
|
||||
StandardType::SpeedType m_Speed;
|
||||
StandardType::AngleType m_Angle;
|
||||
StandardType::CrossWindType m_CrossWind;
|
||||
bool m_Valid = false;
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
Executable
+186
@@ -0,0 +1,186 @@
|
||||
|
||||
// **************************************************************************
|
||||
//
|
||||
// (C) Copyright 2009 Swiss SIMTEC AG
|
||||
//
|
||||
// **************************************************************************
|
||||
//
|
||||
// $HeadURL$
|
||||
// $LastChangedBy$
|
||||
// $LastChangedDate$
|
||||
// $LastChangedRevision$
|
||||
//
|
||||
// **************************************************************************
|
||||
|
||||
// manual class headers
|
||||
#include "TrajectoryAntonio.hpp"
|
||||
|
||||
namespace N_Ballistic
|
||||
{
|
||||
|
||||
// ---------------------------------------------------------------
|
||||
// initializes the object with the ammunition parameters
|
||||
// ---------------------------------------------------------------
|
||||
bool TrajectoryAntonio::init(const Ammunition &a_ammunition)
|
||||
{
|
||||
m_Initialized = false;
|
||||
|
||||
TRACE_LOG(m_logger) << "TrajectoryAntonio::init : initialising..." ;
|
||||
|
||||
if (a_ammunition.m_StandardParams.m_Valid)
|
||||
{
|
||||
m_CRhoY1 = a_ammunition.m_StandardParams.m_Time.m_CRhoT;
|
||||
m_CRhoZ1 = a_ammunition.m_StandardParams.m_Angle.m_CRhoA;
|
||||
m_UseStandard = true;
|
||||
INFO_LOG(m_logger) << "m_CRhoY1 : " << m_CRhoY1 ;
|
||||
INFO_LOG(m_logger) << "m_CRhoZ1 : " << m_CRhoZ1 ;
|
||||
}
|
||||
else if (a_ammunition.m_PolygonParams.m_Valid)
|
||||
{
|
||||
m_InitialAX = a_ammunition.m_PolygonParams.m_InitialAX;
|
||||
INFO_LOG(m_logger) << "m_InitialAX : " << m_InitialAX ;
|
||||
int axcount = a_ammunition.m_PolygonParams.m_AX.size();
|
||||
for (int i = 0; i < axcount; i++)
|
||||
{
|
||||
m_AX.push_back(a_ammunition.m_PolygonParams.m_AX[i].m_Coeff);
|
||||
INFO_LOG(m_logger) << "AX " << a_ammunition.m_PolygonParams.m_AX[i].m_Index << " = " << a_ammunition.m_PolygonParams.m_AX[i].m_Coeff ;
|
||||
}
|
||||
int aycount = a_ammunition.m_PolygonParams.m_AY.size();
|
||||
for (int i = 0; i < aycount; i++)
|
||||
{
|
||||
m_AY.push_back(a_ammunition.m_PolygonParams.m_AY[i].m_Coeff);
|
||||
INFO_LOG(m_logger) << "AY " << a_ammunition.m_PolygonParams.m_AY[i].m_Index << " = " << a_ammunition.m_PolygonParams.m_AY[i].m_Coeff ;
|
||||
}
|
||||
m_UsePolynom = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
ERROR_LOG(m_logger) << "Parameters missing..." ;
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!TrajectoryBase::init(a_ammunition))
|
||||
return false;
|
||||
|
||||
TRACE_LOG(m_logger) << "TrajectoryAntonio::init : initialized successfully!" ;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
// ---------------------------------------------------------------
|
||||
// calculates the next point of a tracer using the algorithm
|
||||
// implemented in the current class
|
||||
// ---------------------------------------------------------------
|
||||
N_Types::Coord3 TrajectoryAntonio::getNextPoint()
|
||||
{
|
||||
if (m_UseStandard)
|
||||
return getNextPointStandard();
|
||||
if (m_UsePolynom)
|
||||
return getNextPointPolynom();
|
||||
|
||||
ERROR_LOG(m_logger) << "Initialisation not correct" ;
|
||||
return N_Types::Coord3();
|
||||
}
|
||||
|
||||
|
||||
// ---------------------------------------------------------------
|
||||
// calculates the next point of a tracer using the algorithm
|
||||
// implemented in the current class
|
||||
// ---------------------------------------------------------------
|
||||
N_Types::Coord3 TrajectoryAntonio::getNextPointStandard()
|
||||
{
|
||||
Float64 d_correction;
|
||||
Float64 d_tmpConst;
|
||||
N_Types::Coord3 o_coord3;
|
||||
|
||||
m_MyTime += m_Tact;
|
||||
|
||||
d_correction = 1.0 +
|
||||
(m_CRhoY1 *
|
||||
m_AirDensity *
|
||||
m_InitialAmmuSpeed *
|
||||
cos(m_GunAngle.m_P) *
|
||||
m_MyTime);
|
||||
o_coord3.m_Y = (m_InitialAmmuSpeed * cos(m_GunAngle.m_P) * m_MyTime) / d_correction;
|
||||
|
||||
d_correction = N_SST::G * pow(o_coord3.m_Y, 2.0);
|
||||
d_correction /= (2.0 * pow(m_InitialAmmuSpeed, 2.0) * pow(cos(m_GunAngle.m_P), 2.0));
|
||||
d_correction /= (1.0 + m_CRhoZ1 * m_AirDensity * o_coord3.m_Y);
|
||||
d_tmpConst = 1.0 - m_CRhoY1 * m_AirDensity * o_coord3.m_Y;
|
||||
d_tmpConst = pow(d_tmpConst, 2.0);
|
||||
d_correction /= d_tmpConst;
|
||||
o_coord3.m_Z = (o_coord3.m_Y * tan(m_GunAngle.m_P)) - d_correction;
|
||||
|
||||
d_correction = o_coord3.m_Y / (m_InitialAmmuSpeed * cos(m_GunAngle.m_P));
|
||||
o_coord3.m_X = m_CrossWind * (m_MyTime - d_correction);
|
||||
|
||||
o_coord3 = o_coord3.rotateZ(m_GunAngle.m_H);
|
||||
o_coord3 = o_coord3 + m_GunPos;
|
||||
|
||||
return o_coord3;
|
||||
}
|
||||
|
||||
|
||||
// ---------------------------------------------------------------
|
||||
// calculates the next point of a tracer using the algorithm
|
||||
// implemented in the current class
|
||||
// ---------------------------------------------------------------
|
||||
N_Types::Coord3 TrajectoryAntonio::getNextPointPolynom()
|
||||
{
|
||||
Float64 d_correction = 0.0;
|
||||
Float64 d_tmpConst = 0.0;
|
||||
Float64 d_ax = 0.0;
|
||||
Float64 d_ay = 0.0;
|
||||
|
||||
N_Types::Coord3 o_coord3;
|
||||
|
||||
m_MyTime += m_Tact;
|
||||
|
||||
//
|
||||
// ax = (ax0 * t^0) + (ax1 * t^1) + (ax2 * t^2) + (ax3 * t^3) ...
|
||||
//
|
||||
|
||||
for (unsigned int i = 0; i < m_AX.size(); i++)
|
||||
d_ax += m_AX[i] * pow(m_MyTime, i);
|
||||
for (unsigned int i = 0; i < m_AY.size(); i++)
|
||||
d_ay += m_AY[i] * pow(m_MyTime, i);
|
||||
|
||||
// v0 * t
|
||||
// x = ---------------------
|
||||
// 1 + (ax * p * v0 * t)
|
||||
|
||||
d_correction = 1.0 +
|
||||
(d_ax *
|
||||
m_AirDensity *
|
||||
m_InitialAmmuSpeed *
|
||||
m_MyTime);
|
||||
|
||||
// INFO_LOG(m_logger) << "AX:" << d_ax << " AD:" << m_AirDensity << " IS:" << m_InitialAmmuSpeed << " MT:" << m_MyTime << " C:" << d_correction ;
|
||||
o_coord3.m_Y = (m_InitialAmmuSpeed * m_MyTime) / d_correction;
|
||||
|
||||
// g * x
|
||||
// y = x * ( tan (a) - ----------------------------- )
|
||||
// 2 * v0^2 * (1- ay * p * x)^2
|
||||
|
||||
d_correction = N_SST::G * o_coord3.m_Y;
|
||||
d_correction /= (2.0 * pow(m_InitialAmmuSpeed, 2.0));
|
||||
d_tmpConst = 1.0 - d_ay * m_AirDensity * o_coord3.m_Y;
|
||||
d_tmpConst = pow(d_tmpConst, 2.0);
|
||||
d_correction /= d_tmpConst;
|
||||
o_coord3.m_Z = o_coord3.m_Y * (tan(m_GunAngle.m_P) - d_correction);
|
||||
|
||||
// x
|
||||
// z = w * ( t - ---- )
|
||||
// v0
|
||||
|
||||
d_correction = o_coord3.m_Y / m_InitialAmmuSpeed;
|
||||
o_coord3.m_X = m_CrossWind * (m_MyTime - d_correction);
|
||||
|
||||
o_coord3 = o_coord3.rotateZ(m_GunAngle.m_H);
|
||||
o_coord3 = o_coord3 + m_GunPos;
|
||||
|
||||
return o_coord3;
|
||||
}
|
||||
|
||||
} // namespace N_Ballistic
|
||||
Executable
+82
@@ -0,0 +1,82 @@
|
||||
#pragma once
|
||||
|
||||
// **************************************************************************
|
||||
//
|
||||
// (C) Copyright 2009 Swiss SIMTEC AG
|
||||
//
|
||||
// **************************************************************************
|
||||
//
|
||||
// $HeadURL$
|
||||
// $LastChangedBy$
|
||||
// $LastChangedDate$
|
||||
// $LastChangedRevision$
|
||||
//
|
||||
// **************************************************************************
|
||||
|
||||
// from stereotyped includes
|
||||
#include "TrajectoryBase.hpp"
|
||||
|
||||
// manual class imports
|
||||
|
||||
namespace N_Ballistic
|
||||
{
|
||||
|
||||
/**
|
||||
* D'Antonio implementation for trajectory calculations
|
||||
*
|
||||
* @author Daniel.Schmid
|
||||
* @version 1.0
|
||||
* @created 07-Aug-2009 14:27:28
|
||||
*/
|
||||
class TrajectoryAntonio : public TrajectoryBase
|
||||
{
|
||||
public:
|
||||
|
||||
/**
|
||||
* ## Constructors (generated)
|
||||
*/
|
||||
TrajectoryAntonio() : TrajectoryBase("TrajectoryAntonio") {}
|
||||
|
||||
/**
|
||||
* initializes the object with the ammunition parameters
|
||||
*
|
||||
* @param a_ammunition ammunition definion from xml file
|
||||
*/
|
||||
bool init(const Ammunition &a_ammunition) override;
|
||||
|
||||
protected:
|
||||
|
||||
std::vector<Float64> m_AX;
|
||||
std::vector<Float64> m_AY;
|
||||
Float64 m_CRhoY1 = 0;
|
||||
Float64 m_CRhoZ1 = 0;
|
||||
Float64 m_InitialAX = 0;
|
||||
|
||||
|
||||
/**
|
||||
* calculates the next point of a tracer using the algorithm implemented in the
|
||||
* current class
|
||||
*/
|
||||
N_Types::Coord3 getNextPoint() override;
|
||||
|
||||
private:
|
||||
/**
|
||||
* calculates the next point of a tracer using the algorithm implemented in the
|
||||
* current class
|
||||
*/
|
||||
N_Types::Coord3 getNextPointStandard();
|
||||
|
||||
/**
|
||||
* calculates the next point of a tracer using the algorithm implemented in the
|
||||
* current class
|
||||
*/
|
||||
N_Types::Coord3 getNextPointPolynom();
|
||||
|
||||
private:
|
||||
|
||||
bool m_UseStandard = false;
|
||||
bool m_UsePolynom = false;
|
||||
|
||||
};
|
||||
|
||||
}
|
||||
+254
@@ -0,0 +1,254 @@
|
||||
|
||||
// **************************************************************************
|
||||
//
|
||||
// (C) Copyright 2009 Swiss SIMTEC AG
|
||||
//
|
||||
// **************************************************************************
|
||||
//
|
||||
// $HeadURL$
|
||||
// $LastChangedBy$
|
||||
// $LastChangedDate$
|
||||
// $LastChangedRevision$
|
||||
//
|
||||
// **************************************************************************
|
||||
|
||||
// manual class headers
|
||||
#include "TrajectoryBase.hpp"
|
||||
#include "../logger.h"
|
||||
|
||||
namespace N_Ballistic
|
||||
{
|
||||
TrajectoryBase::TrajectoryBase(const char *loggerName)
|
||||
: m_logger(CesGeoPairing::getLogger(loggerName))
|
||||
{
|
||||
}
|
||||
|
||||
TrajectoryBase::~TrajectoryBase()
|
||||
{
|
||||
deinit();
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
// ---------------------------------------------------------------
|
||||
// Using this function a reference to the interface is added.
|
||||
// ---------------------------------------------------------------
|
||||
SInt32 TrajectoryBase::addRef()
|
||||
{
|
||||
return m_MyRefCounter++;
|
||||
}
|
||||
|
||||
|
||||
// ---------------------------------------------------------------
|
||||
// Calling this function the reference from the interface may
|
||||
// be removed.
|
||||
// ---------------------------------------------------------------
|
||||
SInt32 TrajectoryBase::release()
|
||||
{
|
||||
--m_MyRefCounter;
|
||||
if (m_MyRefCounter <= 0)
|
||||
{
|
||||
delete this;
|
||||
return 0;
|
||||
}
|
||||
else
|
||||
return m_MyRefCounter;
|
||||
}
|
||||
|
||||
|
||||
// ---------------------------------------------------------------
|
||||
// initializes the object with the following parameters
|
||||
// ---------------------------------------------------------------
|
||||
bool TrajectoryBase::init(const N_Types::Coord3 &a_gunPos, const N_Types::Angle3 &a_gunAngle, const Float64 a_crossWind, const Float64 a_airDensity, const Float64 a_initialAmmuSpeed)
|
||||
{
|
||||
m_GunPos = a_gunPos;
|
||||
m_GunAngle = a_gunAngle;
|
||||
m_CrossWind = a_crossWind;
|
||||
m_AirDensity = a_airDensity;
|
||||
m_InitialAmmuSpeed = a_initialAmmuSpeed;
|
||||
|
||||
if (m_Deviation != 0)
|
||||
{
|
||||
INFO_LOG(m_logger) << "Deviation taken into account: " << m_Deviation ;
|
||||
|
||||
Float64 l_deviationRandomized = m_Deviation * (Float64)(rand() % 100) / 100.0;
|
||||
INFO_LOG(m_logger) << "l_deviationRandomized = " << l_deviationRandomized ;
|
||||
|
||||
N_Types::Coord3 o_dev(l_deviationRandomized, 1000.0, 0.0);
|
||||
//INFO_LOG(m_logger) << "o_dev = " << o_dev ;
|
||||
|
||||
Float64 l_angleRandomized = rand() % 360;
|
||||
INFO_LOG(m_logger) << "l_angleRandomized = " << l_angleRandomized ;
|
||||
|
||||
N_Types::Radian64 l_angleRad;
|
||||
l_angleRad.setDegree(l_angleRandomized);
|
||||
|
||||
o_dev = o_dev.rotateY(l_angleRad);
|
||||
|
||||
N_Types::Angle3 o_angle;
|
||||
o_angle.m_H = o_dev.getPolar3().getAzimuth();
|
||||
o_angle.m_P = o_dev.getPolar3().getElevation();
|
||||
|
||||
//INFO_LOG(m_logger) << "o_angle = " << o_angle << END_LOG
|
||||
m_GunAngle = m_GunAngle + o_angle;
|
||||
}
|
||||
|
||||
N_Types::Coord3 o_coord3(0.0, 1.0, 0.0);
|
||||
o_coord3 = o_coord3.rotate(m_GunAngle);
|
||||
m_Velocity = o_coord3 * m_InitialAmmuSpeed;
|
||||
|
||||
m_MyTime = 0.0;
|
||||
m_MyAngle = m_GunAngle.m_P;
|
||||
m_MyPoints[0] = m_GunPos;
|
||||
m_MyPoints[1] = m_GunPos;
|
||||
|
||||
m_Active = true;
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
// ---------------------------------------------------------------
|
||||
// calculates the next tracer point using the delta time
|
||||
// ---------------------------------------------------------------
|
||||
bool TrajectoryBase::move(const Float64 a_deltaTime)
|
||||
{
|
||||
if (!m_Initialized)
|
||||
{
|
||||
WARNING_LOG(m_logger) << "The class is not initialized" ;
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!m_Active)
|
||||
{
|
||||
ERROR_LOG(m_logger) << "Call init(gunPos, gunAngle, ...) first" ;
|
||||
return false;
|
||||
}
|
||||
|
||||
m_Tact = a_deltaTime;
|
||||
|
||||
m_MyPoints[0] = m_MyPoints[1];
|
||||
m_MyPoints[1] = getNextPoint();
|
||||
|
||||
// set velovity, acceleration, orientation and time out of the tracer
|
||||
setVelAccelOrientTimeOut();
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
// ---------------------------------------------------------------
|
||||
// deactivate a tracer
|
||||
// ---------------------------------------------------------------
|
||||
void TrajectoryBase::deactivate()
|
||||
{
|
||||
m_Active = false;
|
||||
}
|
||||
|
||||
|
||||
// ---------------------------------------------------------------
|
||||
// sets an integer ID of the bullet, used for SimMunitionIDs
|
||||
// ---------------------------------------------------------------
|
||||
void TrajectoryBase::setID(SInt32 a_id)
|
||||
{
|
||||
m_MyID = a_id;
|
||||
}
|
||||
|
||||
// ---------------------------------------------------------------
|
||||
// initializes the object with the ammunition parameters
|
||||
// ---------------------------------------------------------------
|
||||
bool TrajectoryBase::init(const Ammunition &a_ammunition)
|
||||
{
|
||||
m_Initialized = false;
|
||||
|
||||
TRACE_LOG(m_logger) << "TrajectoryBase::init : initialising..." ;
|
||||
|
||||
m_TimeOutCycles = a_ammunition.m_AmmunInfo.m_TimeOut / 1000.0;
|
||||
m_TimeOut = m_TimeOutCycles;
|
||||
m_Deviation = a_ammunition.m_AmmunInfo.m_Deviation;
|
||||
|
||||
if (a_ammunition.m_AmmunInfo.m_ReasonToDetonate == QStringLiteral("OnTimer"))
|
||||
{
|
||||
m_IsDetonateOnTimer = true;
|
||||
m_IsDetonateOnImpact = false;
|
||||
}
|
||||
if (a_ammunition.m_AmmunInfo.m_ReasonToDetonate == QStringLiteral("OnImpact"))
|
||||
{
|
||||
m_IsDetonateOnTimer = false;
|
||||
m_IsDetonateOnImpact = true;
|
||||
}
|
||||
|
||||
TRACE_LOG(m_logger) << "TrajectoryBase::init : initialized successfully!" ;
|
||||
|
||||
TRACE_LOG(m_logger) << "m_TimeOutCycles : " << m_TimeOutCycles ;
|
||||
|
||||
m_Initialized = true;
|
||||
return true;
|
||||
}
|
||||
|
||||
// ---------------------------------------------------------------
|
||||
// deinitializes the class
|
||||
// ---------------------------------------------------------------
|
||||
bool TrajectoryBase::deinit()
|
||||
{
|
||||
m_Initialized = false;
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
// ---------------------------------------------------------------
|
||||
// calculates the next point of a tracer using the algorithm
|
||||
// implemented in the current class
|
||||
// ---------------------------------------------------------------
|
||||
N_Types::Coord3 TrajectoryBase::getNextPoint()
|
||||
{
|
||||
N_Types::Coord3 o_coord3;
|
||||
Float64 d_correction;
|
||||
|
||||
m_MyTime += m_Tact;
|
||||
|
||||
o_coord3.m_Y = m_InitialAmmuSpeed * m_MyTime * cos(m_MyAngle);
|
||||
o_coord3.m_Z = (m_InitialAmmuSpeed * m_MyTime * sin(m_MyAngle)) -
|
||||
(N_SST::G * pow(m_MyTime, 2.0) / 2.0);
|
||||
|
||||
d_correction = o_coord3.m_Y / (m_InitialAmmuSpeed * cos(m_GunAngle.m_P));
|
||||
o_coord3.m_X = m_CrossWind * (m_MyTime - d_correction);
|
||||
|
||||
o_coord3 = o_coord3.rotateZ(m_GunAngle.m_H);
|
||||
o_coord3 = o_coord3 + m_GunPos;
|
||||
|
||||
return o_coord3;
|
||||
}
|
||||
|
||||
|
||||
// ---------------------------------------------------------------
|
||||
// computes the velocity, acceleration, orientation and time
|
||||
// out of the tracer
|
||||
// ---------------------------------------------------------------
|
||||
void TrajectoryBase::setVelAccelOrientTimeOut()
|
||||
{
|
||||
N_Types::Polar3 o_polar3;
|
||||
|
||||
if (m_TimeOut <= 0)
|
||||
m_MyPoints[1] = m_MyPoints[0];
|
||||
|
||||
m_Velocity = (m_MyPoints[1] - m_MyPoints[0]) / m_Tact;
|
||||
m_Acceleration = (m_Velocity - m_VelocityLast) / m_Tact;
|
||||
m_VelocityLast = m_Velocity;
|
||||
|
||||
o_polar3 = m_Velocity.getPolar3();
|
||||
m_Orientation.m_H = o_polar3.m_Azimuth;
|
||||
m_Orientation.m_P = o_polar3.m_Elevation;
|
||||
m_Orientation.m_R = 0.0;
|
||||
|
||||
m_CycleCount++;
|
||||
m_TimeOut -= m_Tact;
|
||||
|
||||
if (m_TimeOut < 0)
|
||||
{
|
||||
INFO_LOG(m_logger) << "Bullet timed out : " << m_TimeOutCycles ;
|
||||
m_Active = false;
|
||||
}
|
||||
}
|
||||
|
||||
} // namespace N_Ballistic
|
||||
+247
@@ -0,0 +1,247 @@
|
||||
#pragma once
|
||||
|
||||
// **************************************************************************
|
||||
//
|
||||
// (C) Copyright 2009 Swiss SIMTEC AG
|
||||
//
|
||||
// **************************************************************************
|
||||
//
|
||||
// $HeadURL$
|
||||
// $LastChangedBy$
|
||||
// $LastChangedDate$
|
||||
// $LastChangedRevision$
|
||||
//
|
||||
// **************************************************************************
|
||||
|
||||
#include <GBL_Global/Types.hpp>
|
||||
#include <NGLLogger/INGLLogger.h>
|
||||
|
||||
// from stereotyped includes
|
||||
#include "ITrajectory.hpp"
|
||||
#include "Ammunition.hpp"
|
||||
|
||||
// manual class imports
|
||||
|
||||
namespace N_Ballistic
|
||||
{
|
||||
|
||||
/**
|
||||
* Base implementation for trajectory calculations
|
||||
*
|
||||
* @author Daniel.Schmid
|
||||
* @version 1.0
|
||||
* @created 07-Aug-2009 14:26:59
|
||||
*/
|
||||
class TrajectoryBase : public ITrajectory
|
||||
{
|
||||
public:
|
||||
|
||||
explicit TrajectoryBase(const char *loggerName);
|
||||
virtual ~TrajectoryBase();
|
||||
|
||||
|
||||
/**
|
||||
* Using this function a reference to the interface is added.
|
||||
*/
|
||||
SInt32 addRef() override;
|
||||
|
||||
/**
|
||||
* Calling this function the reference from the interface may be removed.
|
||||
*/
|
||||
SInt32 release() override;
|
||||
|
||||
/**
|
||||
* initializes the object with the following parameters
|
||||
*
|
||||
* @param a_gunPos Position of the gun
|
||||
* @param a_gunAngle Shooting angle of the gun
|
||||
* @param a_crossWind lateral wind
|
||||
* @param a_airDensity Air density
|
||||
* @param a_initialAmmuSpeed ammunition speed
|
||||
*/
|
||||
bool init(const N_Types::Coord3 &a_gunPos,
|
||||
const N_Types::Angle3 &a_gunAngle,
|
||||
const Float64 a_crossWind,
|
||||
const Float64 a_airDensity,
|
||||
const Float64 a_initialAmmuSpeed) override;
|
||||
|
||||
/**
|
||||
* calculates the next tracer point using the delta time
|
||||
*
|
||||
* @param a_deltaTime time difference to last call
|
||||
*/
|
||||
bool move(const Float64 a_deltaTime) override;
|
||||
|
||||
/**
|
||||
* returns the current position of the tracer
|
||||
*/
|
||||
const N_Types::Coord3 &getPosition() const override { return m_MyPoints[1]; }
|
||||
|
||||
/**
|
||||
* returns the current orientation of the tracer
|
||||
*/
|
||||
const N_Types::Angle3 &getOrient() const override { return m_Orientation; }
|
||||
|
||||
/**
|
||||
* returns the acceleration/deceleration vector
|
||||
*/
|
||||
const N_Types::Coord3 &getAccel() const override { return m_Acceleration; }
|
||||
|
||||
/**
|
||||
* returns the velocity vector
|
||||
*/
|
||||
const N_Types::Coord3 &getVelocity() const override { return m_Velocity; }
|
||||
|
||||
/**
|
||||
* this function returns the state of the tracer
|
||||
*/
|
||||
bool isActive() const override { return m_Active; }
|
||||
|
||||
/**
|
||||
* deactivate a tracer
|
||||
*/
|
||||
void deactivate() override;
|
||||
|
||||
/**
|
||||
* sets an integer ID of the bullet, used for SimMunitionIDs
|
||||
*
|
||||
* @param a_id
|
||||
*/
|
||||
void setID(SInt32 a_id) override;
|
||||
|
||||
/**
|
||||
* gets an integer ID of the bullet, used for SimMunitionIDs
|
||||
*/
|
||||
SInt32 getID() const override { return m_MyID; }
|
||||
|
||||
/**
|
||||
* initializes the object with the ammunition parameters
|
||||
*
|
||||
* @param a_ammunition ammunition definion from xml file
|
||||
*/
|
||||
virtual bool init(const Ammunition &a_ammunition);
|
||||
|
||||
/**
|
||||
* if a bullet detonates after a certain timeout, defined by the timeout in the
|
||||
* config file
|
||||
*/
|
||||
bool IsDetonateOnTimer() const override { return m_IsDetonateOnTimer; }
|
||||
|
||||
/**
|
||||
* if a bullet detonates on either terrain or object impact
|
||||
*/
|
||||
bool IsDetonateOnImpact() const override { return m_IsDetonateOnImpact; }
|
||||
|
||||
protected:
|
||||
|
||||
/**
|
||||
* Instance reference counter
|
||||
*/
|
||||
SInt32 m_MyRefCounter = 0;
|
||||
/**
|
||||
* initial gun position
|
||||
*/
|
||||
N_Types::Coord3 m_GunPos;
|
||||
/**
|
||||
* initial gun angle
|
||||
*/
|
||||
N_Types::Angle3 m_GunAngle;
|
||||
/**
|
||||
* cross wind in m/s
|
||||
*/
|
||||
Float64 m_CrossWind = 0;
|
||||
/**
|
||||
* AirDensity
|
||||
*/
|
||||
Float64 m_AirDensity = 0;
|
||||
Float64 m_InitialAmmuSpeed = 0;
|
||||
/**
|
||||
* stores the alive state of the bullet. as soon as the bullet is deactivated, it
|
||||
* is destroyed in the next cycle
|
||||
*/
|
||||
bool m_Active = false;
|
||||
/**
|
||||
* time since launch
|
||||
*/
|
||||
Float64 m_MyTime = 0;
|
||||
/**
|
||||
* current flying angle
|
||||
*/
|
||||
Float64 m_MyAngle = 0;
|
||||
/**
|
||||
* array of last and current position
|
||||
*/
|
||||
N_Types::Coord3 m_MyPoints[2] = {};
|
||||
/**
|
||||
* current acceleration
|
||||
*/
|
||||
N_Types::Coord3 m_Acceleration;
|
||||
/**
|
||||
* current velocity
|
||||
*/
|
||||
N_Types::Coord3 m_Velocity;
|
||||
/**
|
||||
* last velocity
|
||||
*/
|
||||
N_Types::Coord3 m_VelocityLast;
|
||||
/**
|
||||
* current orientation
|
||||
*/
|
||||
N_Types::Angle3 m_Orientation;
|
||||
Float64 m_Tact = 0;
|
||||
SInt32 m_CycleCount = 0;
|
||||
bool m_Initialized = false;
|
||||
/**
|
||||
* Time in ms to detonate
|
||||
*/
|
||||
Float64 m_TimeOutCycles = 0;
|
||||
/**
|
||||
* time to detonate, decremented variable
|
||||
*/
|
||||
Float64 m_TimeOut = 0;
|
||||
/**
|
||||
* SimMunitionID
|
||||
*/
|
||||
SInt32 m_MyID = 0;
|
||||
/**
|
||||
* timed detonation of grenades
|
||||
*/
|
||||
bool m_IsDetonateOnTimer = false;
|
||||
/**
|
||||
* bullet detonates on impact
|
||||
*/
|
||||
bool m_IsDetonateOnImpact = false;
|
||||
/**
|
||||
* This is the value of devivation of the ammunition, which helps to simulate the
|
||||
* variation between the different shoots
|
||||
*/
|
||||
Float64 m_Deviation = 0;
|
||||
/**
|
||||
* This is the value of derivation of the ammunition, which helps to simulate the
|
||||
* right drift due to the rotation of the bullet
|
||||
*/
|
||||
Float64 m_Derivation = 0;
|
||||
/**
|
||||
* logger object
|
||||
*/
|
||||
NGL::INGLLogger &m_logger;
|
||||
|
||||
/**
|
||||
* deinitializes the class
|
||||
*/
|
||||
virtual bool deinit();
|
||||
|
||||
/**
|
||||
* calculates the next point of a tracer using the algorithm implemented in the
|
||||
* current class
|
||||
*/
|
||||
virtual N_Types::Coord3 getNextPoint();
|
||||
|
||||
/**
|
||||
* computes the velocity, acceleration, orientation and time out of the tracer
|
||||
*/
|
||||
void setVelAccelOrientTimeOut();
|
||||
|
||||
};
|
||||
|
||||
}
|
||||
+93
@@ -0,0 +1,93 @@
|
||||
|
||||
// **************************************************************************
|
||||
//
|
||||
// (C) Copyright 2009 Swiss SIMTEC AG
|
||||
//
|
||||
// **************************************************************************
|
||||
//
|
||||
// $HeadURL$
|
||||
// $LastChangedBy$
|
||||
// $LastChangedDate$
|
||||
// $LastChangedRevision$
|
||||
//
|
||||
// **************************************************************************
|
||||
|
||||
// manual class headers
|
||||
#include "TrajectoryDecoy.hpp"
|
||||
|
||||
namespace N_Ballistic
|
||||
{
|
||||
|
||||
// ---------------------------------------------------------------
|
||||
// initializes the object with the ammunition parameters
|
||||
// ---------------------------------------------------------------
|
||||
bool TrajectoryDecoy::init(const Ammunition &a_ammunition)
|
||||
{
|
||||
m_Initialized = false;
|
||||
|
||||
INFO_LOG(m_logger) << "initialising..." ;
|
||||
|
||||
m_SinkingVelocity = a_ammunition.m_StandardParams.m_Speed.m_V0ConstX1;
|
||||
m_HeightRange = a_ammunition.m_AmmunInfo.m_Range;
|
||||
//a_ammunition.m_StandardParams->m_Speed->m_V0ConstX0 >> m_InitialAmmuSpeed;
|
||||
|
||||
if (!TrajectoryBase::init(a_ammunition))
|
||||
return false;
|
||||
|
||||
m_Sinking = false;
|
||||
|
||||
TRACE_LOG(m_logger) << "m_SinkingVelocity : " << m_SinkingVelocity ;
|
||||
TRACE_LOG(m_logger) << "m_InitialAmmuSpeed : " << m_InitialAmmuSpeed ;
|
||||
TRACE_LOG(m_logger) << "m_HeightRange : " << m_HeightRange ;
|
||||
|
||||
TRACE_LOG(m_logger) << "initialized successfully!" ;
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
// ---------------------------------------------------------------
|
||||
// calculates the next point of a tracer using the algorithm
|
||||
// implemented in the current class
|
||||
// ---------------------------------------------------------------
|
||||
N_Types::Coord3 TrajectoryDecoy::getNextPoint()
|
||||
{
|
||||
N_Types::Coord3 o_coord3;
|
||||
|
||||
m_MyTime += m_Tact;
|
||||
|
||||
o_coord3.m_Y = m_InitialAmmuSpeed * m_MyTime * cos(m_MyAngle);
|
||||
|
||||
if (!m_Sinking)
|
||||
{
|
||||
Float64 d_steigend = (m_InitialAmmuSpeed * m_MyTime * sin(m_MyAngle));
|
||||
Float64 d_gravity = (N_SST::G * pow(m_MyTime, 2.0) / 2.0);
|
||||
o_coord3.m_Z = d_steigend - d_gravity;
|
||||
|
||||
Float64 d_correction = o_coord3.m_Y / (m_InitialAmmuSpeed * cos(m_GunAngle.m_P));
|
||||
o_coord3.m_X = m_CrossWind * (m_MyTime - d_correction);
|
||||
|
||||
if (o_coord3.m_Z > m_HeightRange)
|
||||
{
|
||||
INFO_LOG(m_logger) << "Start sinking" ;
|
||||
m_SinkingPoint = o_coord3;
|
||||
m_Sinking = true;
|
||||
}
|
||||
m_SinkingStartTime = m_MyTime;
|
||||
|
||||
INFO_LOG(m_logger) << "Ascending: Time=" << m_MyTime << " Height=" << o_coord3.m_Z << " Side=" << o_coord3.m_X ;
|
||||
}
|
||||
if (m_Sinking)
|
||||
{
|
||||
o_coord3.m_Z = m_SinkingPoint.m_Z - (m_SinkingVelocity * (m_MyTime - m_SinkingStartTime));
|
||||
o_coord3.m_X = m_SinkingPoint.m_X - (m_CrossWind * (m_MyTime - m_SinkingStartTime));
|
||||
|
||||
INFO_LOG(m_logger) << "Sinking: Time=" << m_MyTime << " Height=" << o_coord3.m_Z << " Side=" << o_coord3.m_X ;
|
||||
}
|
||||
|
||||
o_coord3 = o_coord3.rotateZ(m_GunAngle.m_H);
|
||||
o_coord3 = o_coord3 + m_GunPos;
|
||||
|
||||
return o_coord3;
|
||||
}
|
||||
|
||||
} // namespace N_Ballistic
|
||||
+66
@@ -0,0 +1,66 @@
|
||||
#pragma once
|
||||
|
||||
// **************************************************************************
|
||||
//
|
||||
// (C) Copyright 2009 Swiss SIMTEC AG
|
||||
//
|
||||
// **************************************************************************
|
||||
//
|
||||
// $HeadURL$
|
||||
// $LastChangedBy$
|
||||
// $LastChangedDate$
|
||||
// $LastChangedRevision$
|
||||
//
|
||||
// **************************************************************************
|
||||
|
||||
// from stereotyped includes
|
||||
#include "TrajectoryBase.hpp"
|
||||
|
||||
// manual class imports
|
||||
|
||||
namespace N_Ballistic
|
||||
{
|
||||
|
||||
/**
|
||||
* Decoy implementation for trajectory calculations
|
||||
*
|
||||
* @author Daniel.Schmid
|
||||
* @version 1.0
|
||||
* @created 07-Aug-2009 14:27:46
|
||||
*/
|
||||
class TrajectoryDecoy : public TrajectoryBase
|
||||
{
|
||||
public:
|
||||
|
||||
/**
|
||||
* ## Constructors (generated)
|
||||
*/
|
||||
TrajectoryDecoy() : TrajectoryBase("TrajectoryDecoy") {}
|
||||
|
||||
/**
|
||||
* initializes the object with the ammunition parameters
|
||||
*
|
||||
* @param a_ammunition ammunition definion from xml file
|
||||
*/
|
||||
bool init(const Ammunition &a_ammunition) override;
|
||||
|
||||
protected:
|
||||
|
||||
/**
|
||||
* calculates the next point of a tracer using the algorithm implemented in the
|
||||
* current class
|
||||
*/
|
||||
N_Types::Coord3 getNextPoint() override;
|
||||
|
||||
private:
|
||||
|
||||
Float64 m_SinkingVelocity = 0;
|
||||
Float64 m_HeightRange = 0;
|
||||
Float64 m_SinkingStartTime = 0;
|
||||
N_Types::Coord3 m_SinkingPoint;
|
||||
bool m_Sinking = false;
|
||||
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
Executable
+136
@@ -0,0 +1,136 @@
|
||||
|
||||
// **************************************************************************
|
||||
//
|
||||
// (C) Copyright 2009 Swiss SIMTEC AG
|
||||
//
|
||||
// **************************************************************************
|
||||
//
|
||||
// $HeadURL$
|
||||
// $LastChangedBy$
|
||||
// $LastChangedDate$
|
||||
// $LastChangedRevision$
|
||||
//
|
||||
// **************************************************************************
|
||||
|
||||
// manual class headers
|
||||
#include "TrajectoryDiscrete.hpp"
|
||||
|
||||
namespace N_Ballistic
|
||||
{
|
||||
|
||||
// ---------------------------------------------------------------
|
||||
// initializes the object with the ammunition parameters
|
||||
// ---------------------------------------------------------------
|
||||
bool TrajectoryDiscrete::init(const Ammunition &a_ammunition)
|
||||
{
|
||||
m_Initialized = false;
|
||||
|
||||
if (!a_ammunition.m_DiscreteParams.m_Valid)
|
||||
{
|
||||
ERROR_LOG(m_logger) << "a_Ammunition.m_DiscreteParams is not valid" ;
|
||||
return false;
|
||||
}
|
||||
|
||||
TRACE_LOG(m_logger) << "TrajectoryPiton::init : initialising..." ;
|
||||
|
||||
m_CAY = a_ammunition.m_DiscreteParams.m_YAxis.m_CA;
|
||||
m_CT2Y = a_ammunition.m_DiscreteParams.m_YAxis.m_CT2;
|
||||
m_CT1Y = a_ammunition.m_DiscreteParams.m_YAxis.m_CT1;
|
||||
m_CAlpha2Y = a_ammunition.m_DiscreteParams.m_YAxis.m_CAlpha2;
|
||||
m_CAlpha1Y = a_ammunition.m_DiscreteParams.m_YAxis.m_CAlpha1;
|
||||
m_CRhoY = a_ammunition.m_DiscreteParams.m_YAxis.m_CRho;
|
||||
m_CVY = a_ammunition.m_DiscreteParams.m_YAxis.m_CV;
|
||||
m_C0Y = a_ammunition.m_DiscreteParams.m_YAxis.m_C0;
|
||||
|
||||
m_CAZ = a_ammunition.m_DiscreteParams.m_ZAxis.m_CA;
|
||||
m_CT2Z = a_ammunition.m_DiscreteParams.m_ZAxis.m_CT2;
|
||||
m_CT1Z = a_ammunition.m_DiscreteParams.m_ZAxis.m_CT1;
|
||||
m_CAlpha2Z = a_ammunition.m_DiscreteParams.m_ZAxis.m_CAlpha2;
|
||||
m_CAlpha1Z = a_ammunition.m_DiscreteParams.m_ZAxis.m_CAlpha1;
|
||||
m_CVZ = a_ammunition.m_DiscreteParams.m_ZAxis.m_CV;
|
||||
m_C0Z = a_ammunition.m_DiscreteParams.m_ZAxis.m_C0;
|
||||
|
||||
m_CAX = a_ammunition.m_DiscreteParams.m_XAxis.m_CA;
|
||||
m_CAlpha1X = a_ammunition.m_DiscreteParams.m_XAxis.m_CAlpha1;
|
||||
m_C0X = a_ammunition.m_DiscreteParams.m_XAxis.m_C0;
|
||||
|
||||
if (!TrajectoryBase::init(a_ammunition))
|
||||
return false;
|
||||
|
||||
TRACE_LOG(m_logger) << "m_CAY : " << m_CAY ;
|
||||
TRACE_LOG(m_logger) << "m_CT2Y : " << m_CT2Y ;
|
||||
TRACE_LOG(m_logger) << "m_CT1Y : " << m_CT1Y ;
|
||||
TRACE_LOG(m_logger) << "m_CAlpha2Y : " << m_CAlpha2Y ;
|
||||
TRACE_LOG(m_logger) << "m_CAlpha1Y : " << m_CAlpha1Y ;
|
||||
TRACE_LOG(m_logger) << "m_CRhoY : " << m_CRhoY ;
|
||||
TRACE_LOG(m_logger) << "m_CVY : " << m_CVY ;
|
||||
TRACE_LOG(m_logger) << "m_C0Y : " << m_C0Y ;
|
||||
|
||||
TRACE_LOG(m_logger) << "m_CAZ : " << m_CAZ ;
|
||||
TRACE_LOG(m_logger) << "m_CT2Z : " << m_CT2Z ;
|
||||
TRACE_LOG(m_logger) << "m_CT1Z : " << m_CT1Z ;
|
||||
TRACE_LOG(m_logger) << "m_CAlpha2Z : " << m_CAlpha2Z ;
|
||||
TRACE_LOG(m_logger) << "m_CAlpha1Z : " << m_CAlpha1Z ;
|
||||
TRACE_LOG(m_logger) << "m_CVZ : " << m_CVZ ;
|
||||
TRACE_LOG(m_logger) << "m_C0Z : " << m_C0Z ;
|
||||
|
||||
TRACE_LOG(m_logger) << "m_CAX : " << m_CAX ;
|
||||
TRACE_LOG(m_logger) << "m_CAlpha1X : " << m_CAlpha1X ;
|
||||
TRACE_LOG(m_logger) << "m_C0X : " << m_C0X ;
|
||||
|
||||
TRACE_LOG(m_logger) << "TrajectoryPiton::init : initialized successfully!" ;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
// ---------------------------------------------------------------
|
||||
// calculates the next point of a tracer using the algorithm
|
||||
// implemented in the current class
|
||||
// ---------------------------------------------------------------
|
||||
N_Types::Coord3 TrajectoryDiscrete::getNextPoint()
|
||||
{
|
||||
Float64 d_correction;
|
||||
Float64 d_tmpConst;
|
||||
N_Types::Coord3 o_coord3;
|
||||
|
||||
m_MyTime += m_Tact;
|
||||
|
||||
d_tmpConst = 1 - exp(-m_CAY * m_AirDensity * m_MyTime * m_InitialAmmuSpeed * cos(m_MyAngle));
|
||||
d_tmpConst /= m_AirDensity * m_CAY;
|
||||
d_correction = m_CT2Y * pow(m_MyTime, 2.0);
|
||||
d_correction += m_CT1Y * m_MyTime;
|
||||
d_correction += m_CAlpha2Y * pow(m_MyAngle, 2.0);
|
||||
d_correction += m_CAlpha1Y * m_MyAngle;
|
||||
d_correction += m_CRhoY * m_AirDensity;
|
||||
d_correction += m_CVY * m_InitialAmmuSpeed;
|
||||
d_correction += m_C0Y;
|
||||
|
||||
o_coord3.m_Y = d_tmpConst * d_correction;
|
||||
|
||||
d_tmpConst = 1 - (m_CAZ * m_AirDensity * m_MyTime * m_InitialAmmuSpeed * cos(m_MyAngle));
|
||||
d_tmpConst *= N_SST::G * pow(m_MyTime, 2.0) / 2;
|
||||
d_correction = m_CT2Z * pow(m_MyTime, 2.0);
|
||||
d_correction += m_CT1Z * m_MyTime;
|
||||
d_correction += m_CAlpha2Z * pow(m_MyAngle, 2.0);
|
||||
d_correction += m_CAlpha1Z * m_MyAngle;
|
||||
d_correction += m_CVZ * m_InitialAmmuSpeed;
|
||||
d_correction += m_C0Z;
|
||||
|
||||
o_coord3.m_Z = o_coord3.m_Y * tan(m_MyAngle) - (d_tmpConst * d_correction);
|
||||
|
||||
d_tmpConst = m_CAX * o_coord3.m_Y;
|
||||
d_tmpConst += m_CAlpha1X * m_MyAngle;
|
||||
d_tmpConst += m_C0X;
|
||||
d_tmpConst *= o_coord3.m_Y;
|
||||
d_tmpConst /= m_InitialAmmuSpeed;
|
||||
|
||||
o_coord3.m_X = m_CrossWind * (m_MyTime - d_tmpConst);
|
||||
|
||||
o_coord3 = o_coord3.rotateZ(m_GunAngle.m_H);
|
||||
o_coord3 = o_coord3 + m_GunPos;
|
||||
|
||||
return o_coord3;
|
||||
}
|
||||
|
||||
} // namespace N_Ballistic
|
||||
Executable
+78
@@ -0,0 +1,78 @@
|
||||
#pragma once
|
||||
|
||||
// **************************************************************************
|
||||
//
|
||||
// (C) Copyright 2009 Swiss SIMTEC AG
|
||||
//
|
||||
// **************************************************************************
|
||||
//
|
||||
// $HeadURL$
|
||||
// $LastChangedBy$
|
||||
// $LastChangedDate$
|
||||
// $LastChangedRevision$
|
||||
//
|
||||
// **************************************************************************
|
||||
|
||||
// from stereotyped includes
|
||||
#include "TrajectoryBase.hpp"
|
||||
|
||||
// manual class imports
|
||||
|
||||
|
||||
namespace N_Ballistic
|
||||
{
|
||||
|
||||
/**
|
||||
* Discrete implementation for trajectory calculations
|
||||
*
|
||||
* @author Daniel.Schmid
|
||||
* @version 1.0
|
||||
* @created 07-Aug-2009 14:27:55
|
||||
*/
|
||||
class TrajectoryDiscrete : public TrajectoryBase
|
||||
{
|
||||
public:
|
||||
|
||||
/**
|
||||
* ## Constructors (generated)
|
||||
*/
|
||||
TrajectoryDiscrete() : TrajectoryBase("TrajectoryDiscrete") {}
|
||||
|
||||
/**
|
||||
* initializes the object with the ammunition parameters
|
||||
*
|
||||
* @param a_ammunition ammunition definion from xml file
|
||||
*/
|
||||
bool init(const Ammunition &a_ammunition) override;
|
||||
|
||||
protected:
|
||||
|
||||
Float64 m_CAY = 0;
|
||||
Float64 m_CT2Y = 0;
|
||||
Float64 m_CT1Y = 0;
|
||||
Float64 m_CAlpha2Y = 0;
|
||||
Float64 m_CAlpha1Y = 0;
|
||||
Float64 m_CRhoY = 0;
|
||||
Float64 m_CVY = 0;
|
||||
Float64 m_C0Y = 0;
|
||||
Float64 m_CAZ = 0;
|
||||
Float64 m_CT2Z = 0;
|
||||
Float64 m_CT1Z = 0;
|
||||
Float64 m_CAlpha2Z = 0;
|
||||
Float64 m_CAlpha1Z = 0;
|
||||
Float64 m_CVZ = 0;
|
||||
Float64 m_C0Z = 0;
|
||||
Float64 m_CAX = 0;
|
||||
Float64 m_CAlpha1X = 0;
|
||||
Float64 m_C0X = 0;
|
||||
|
||||
|
||||
/**
|
||||
* calculates the next point of a tracer using the algorithm implemented in the
|
||||
* current class
|
||||
*/
|
||||
N_Types::Coord3 getNextPoint() override;
|
||||
|
||||
};
|
||||
|
||||
}
|
||||
+85
@@ -0,0 +1,85 @@
|
||||
|
||||
// **************************************************************************
|
||||
//
|
||||
// (C) Copyright 2009 Swiss SIMTEC AG
|
||||
//
|
||||
// **************************************************************************
|
||||
//
|
||||
// $HeadURL$
|
||||
// $LastChangedBy$
|
||||
// $LastChangedDate$
|
||||
// $LastChangedRevision$
|
||||
//
|
||||
// **************************************************************************
|
||||
|
||||
// manual class headers
|
||||
#include "TrajectoryPiton.hpp"
|
||||
|
||||
namespace N_Ballistic
|
||||
{
|
||||
|
||||
// ---------------------------------------------------------------
|
||||
// initializes the object with the ammunition parameters
|
||||
// ---------------------------------------------------------------
|
||||
bool TrajectoryPiton::init(const Ammunition &a_ammunition)
|
||||
{
|
||||
m_Initialized = false;
|
||||
|
||||
TRACE_LOG(m_logger) << "TrajectoryPiton::init : initialising...";
|
||||
|
||||
m_CRhoY1 = a_ammunition.m_StandardParams.m_Time.m_CRhoT;
|
||||
m_CRhoYC = a_ammunition.m_StandardParams.m_Time.m_ConstT;
|
||||
m_CRhoZ1 = a_ammunition.m_StandardParams.m_Angle.m_CRhoA;
|
||||
m_CRhoZC = a_ammunition.m_StandardParams.m_Angle.m_ConstA;
|
||||
|
||||
if (!TrajectoryBase::init(a_ammunition))
|
||||
return false;
|
||||
|
||||
TRACE_LOG(m_logger) << "m_CRhoY1 : " << m_CRhoY1;
|
||||
TRACE_LOG(m_logger) << "m_CRhoYC : " << m_CRhoYC;
|
||||
TRACE_LOG(m_logger) << "m_CRhoZ1 : " << m_CRhoZ1;
|
||||
TRACE_LOG(m_logger) << "m_CRhoZC : " << m_CRhoZC;
|
||||
|
||||
TRACE_LOG(m_logger) << "TrajectoryPiton::init : initialized successfully!";
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
// ---------------------------------------------------------------
|
||||
// calculates the next point of a tracer using the algorithm
|
||||
// implemented in the current class
|
||||
// ---------------------------------------------------------------
|
||||
N_Types::Coord3 TrajectoryPiton::getNextPoint()
|
||||
{
|
||||
const Float64 d_TWO_OVER_THREE = 2.0 / 3.0;
|
||||
Float64 d_correction;
|
||||
Float64 d_tmpConst;
|
||||
N_Types::Coord3 o_coord3;
|
||||
|
||||
m_MyTime += m_Tact;
|
||||
|
||||
d_correction = (m_CRhoY1 * m_AirDensity) + m_CRhoYC;
|
||||
d_tmpConst = (4.5 * m_MyTime * d_correction * m_InitialAmmuSpeed * cos(m_GunAngle.m_P)) + 1.0;
|
||||
d_tmpConst = pow(d_tmpConst, d_TWO_OVER_THREE);
|
||||
d_tmpConst -= 1.0;
|
||||
o_coord3.m_Y = d_tmpConst / (d_correction * 3.0);
|
||||
|
||||
d_correction = m_CRhoZ1 * m_AirDensity + m_CRhoZC;
|
||||
d_correction *= o_coord3.m_Y;
|
||||
d_correction += 1.0;
|
||||
d_correction *= (N_SST::G * pow(o_coord3.m_Y, 2.0));
|
||||
d_tmpConst = pow(cos(m_GunAngle.m_P), 2.0);
|
||||
d_correction /= (2.0 * pow(m_InitialAmmuSpeed, 2.0) * d_tmpConst);
|
||||
o_coord3.m_Z = (o_coord3.m_Y * tan(m_GunAngle.m_P)) - d_correction;
|
||||
|
||||
d_correction = o_coord3.m_Y / (m_InitialAmmuSpeed * cos(m_GunAngle.m_P));
|
||||
o_coord3.m_X = m_CrossWind * (m_MyTime - d_correction);
|
||||
|
||||
o_coord3 = o_coord3.rotateZ(m_GunAngle.m_H);
|
||||
o_coord3 = o_coord3 + m_GunPos;
|
||||
|
||||
return o_coord3;
|
||||
}
|
||||
|
||||
} // namespace N_Ballistic
|
||||
+63
@@ -0,0 +1,63 @@
|
||||
#pragma once
|
||||
|
||||
// **************************************************************************
|
||||
//
|
||||
// (C) Copyright 2009 Swiss SIMTEC AG
|
||||
//
|
||||
// **************************************************************************
|
||||
//
|
||||
// $HeadURL$
|
||||
// $LastChangedBy$
|
||||
// $LastChangedDate$
|
||||
// $LastChangedRevision$
|
||||
//
|
||||
// **************************************************************************
|
||||
|
||||
// from stereotyped includes
|
||||
#include "TrajectoryBase.hpp"
|
||||
|
||||
// manual class imports
|
||||
|
||||
namespace N_Ballistic
|
||||
{
|
||||
|
||||
/**
|
||||
* Piton Bressant implementation for trajectory calculations
|
||||
*
|
||||
* @author Daniel.Schmid
|
||||
* @version 1.0
|
||||
* @created 07-Aug-2009 14:27:37
|
||||
*/
|
||||
class TrajectoryPiton : public TrajectoryBase
|
||||
{
|
||||
public:
|
||||
|
||||
/**
|
||||
* ## Constructors (generated)
|
||||
*/
|
||||
TrajectoryPiton() : TrajectoryBase("TrajectoryPiton") {}
|
||||
|
||||
/**
|
||||
* initializes the object with the ammunition parameters
|
||||
*
|
||||
* @param a_ammunition ammunition definion from xml file
|
||||
*/
|
||||
bool init(const Ammunition &a_ammunition) override;
|
||||
|
||||
protected:
|
||||
|
||||
Float64 m_CRhoY1 = 0;
|
||||
Float64 m_CRhoYC = 0;
|
||||
Float64 m_CRhoZ1 = 0;
|
||||
Float64 m_CRhoZC = 0;
|
||||
|
||||
|
||||
/**
|
||||
* calculates the next point of a tracer using the algorithm implemented in the
|
||||
* current class
|
||||
*/
|
||||
N_Types::Coord3 getNextPoint() override;
|
||||
|
||||
};
|
||||
|
||||
}
|
||||
Executable
+196
@@ -0,0 +1,196 @@
|
||||
|
||||
// **************************************************************************
|
||||
//
|
||||
// (C) Copyright 2009 Swiss SIMTEC AG
|
||||
//
|
||||
// **************************************************************************
|
||||
//
|
||||
// $HeadURL$
|
||||
// $LastChangedBy$
|
||||
// $LastChangedDate$
|
||||
// $LastChangedRevision$
|
||||
//
|
||||
// **************************************************************************
|
||||
|
||||
// manual class headers
|
||||
#include "TrajectoryRungeKutta.hpp"
|
||||
#include "../logger.h"
|
||||
|
||||
using N_Ballistic::TrajectoryRungeKutta;
|
||||
|
||||
using namespace N_Ballistic;
|
||||
|
||||
// static member initialization
|
||||
Float64 TrajectoryRungeKutta::m_Temp = 0;
|
||||
Float64 TrajectoryRungeKutta::m_TempWeapon = 0;
|
||||
|
||||
// ---------------------------------------------------------------
|
||||
// initializes the object with the ammunition parameters
|
||||
// ---------------------------------------------------------------
|
||||
bool TrajectoryRungeKutta::init(const Ammunition &a_ammunition)
|
||||
{
|
||||
m_Initialized = false;
|
||||
|
||||
TRACE_LOG(m_logger) << "TrajectoryRungeKutta::init : initialising...";
|
||||
|
||||
if (a_ammunition.m_CWParams.m_Valid)
|
||||
{
|
||||
int cwcount = a_ammunition.m_CWParams.m_CW.size();
|
||||
for (int i = 0; i < cwcount; i++)
|
||||
{
|
||||
m_CWCoeff.push_back(a_ammunition.m_CWParams.m_CW[i]);
|
||||
TRACE_LOG(m_logger) << "CW " << i << " = " << a_ammunition.m_CWParams.m_CW[i];
|
||||
}
|
||||
int v0count = a_ammunition.m_CWParams.m_V0.size();
|
||||
for (int i = 0; i < v0count; i++)
|
||||
{
|
||||
m_V0Coeff.push_back(a_ammunition.m_CWParams.m_V0[i]);
|
||||
TRACE_LOG(m_logger) << "V0 " << i << " = " << a_ammunition.m_CWParams.m_V0[i];
|
||||
}
|
||||
int xwcount = a_ammunition.m_CWParams.m_XW.size();
|
||||
for (int i = 0; i < xwcount; i++)
|
||||
{
|
||||
m_XWCoeff.push_back(a_ammunition.m_CWParams.m_XW[i]);
|
||||
TRACE_LOG(m_logger) << "XW " << i << " = " << a_ammunition.m_CWParams.m_XW[i];
|
||||
}
|
||||
|
||||
m_Weight = a_ammunition.m_CWParams.m_Weight;
|
||||
m_Radius = 0.5 * a_ammunition.m_AmmunInfo.m_Caliber / 1000.0;
|
||||
TRACE_LOG(m_logger) << "Weight = " << m_Weight;
|
||||
TRACE_LOG(m_logger) << "Radius = " << m_Radius;
|
||||
}
|
||||
else
|
||||
{
|
||||
ERROR_LOG(m_logger) << "Parameters missing...";
|
||||
return false;
|
||||
}
|
||||
|
||||
m_Derivation = a_ammunition.m_AmmunInfo.m_Derivation;
|
||||
|
||||
if (!TrajectoryBase::init(a_ammunition))
|
||||
return false;
|
||||
|
||||
TRACE_LOG(m_logger) << "TrajectoryRungeKutta::init : initialized successfully!";
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
// ---------------------------------------------------------------
|
||||
// calculates the next point of a tracer using the algorithm
|
||||
// implemented in the current class
|
||||
// ---------------------------------------------------------------
|
||||
N_Types::Coord3 TrajectoryRungeKutta::getNextPoint()
|
||||
{
|
||||
Float64 l_Gamma = 0.0065;
|
||||
Float64 l_Temp0 = N_SST::ZERO_CELSIUS_IN_KELVIN + m_Temp;
|
||||
Float64 l_A = pow(m_Radius, 2.0) * M_PI;
|
||||
Float64 l_M = m_Weight;
|
||||
|
||||
m_MyTime += m_Tact;
|
||||
|
||||
Float64 l_Temp = l_Temp0 - (l_Gamma * m_H);
|
||||
|
||||
Float64 l_Rho = 4.171E-11 * pow(l_Temp, 4.2559);
|
||||
Float64 l_q = l_M / l_A;
|
||||
|
||||
// Schritt 1
|
||||
Float64 l_Vn = sqrt(pow(m_Vx, 2.0) + pow(m_Vy, 2.0));
|
||||
|
||||
Float64 l_Mx1 = -m_CW * (l_Rho / 2) * l_Vn * (m_Vx / l_q);
|
||||
Float64 l_My1 = (-m_CW * (l_Rho / 2) * l_Vn * (m_Vy / l_q)) - N_SST::G;
|
||||
|
||||
Float64 l_Vx1 = m_Vx + (l_Mx1 * (m_Tact / 2.0));
|
||||
Float64 l_Vy1 = m_Vy + (l_My1 * (m_Tact / 2.0));
|
||||
Float64 l_V1 = sqrt(pow(l_Vx1, 2.0) + pow(l_Vy1, 2.0));
|
||||
|
||||
// Schritt 2
|
||||
Float64 l_Mx2 = -m_CW * (l_Rho / 2) * l_V1 * (l_Vx1 / l_q);
|
||||
Float64 l_My2 = (-m_CW * (l_Rho / 2) * l_V1 * (l_Vy1 / l_q)) - N_SST::G;
|
||||
|
||||
Float64 l_Vx2 = l_Vx1 + (l_Mx2 * (m_Tact / 2.0));
|
||||
Float64 l_Vy2 = l_Vy1 + (l_My2 * (m_Tact / 2.0));
|
||||
Float64 l_V2 = sqrt(pow(l_Vx2, 2.0) + pow(l_Vy2, 2.0));
|
||||
|
||||
// Schritt 3
|
||||
Float64 l_Mx3 = -m_CW * (l_Rho / 2) * l_V2 * (l_Vx2 / l_q);
|
||||
Float64 l_My3 = (-m_CW * (l_Rho / 2) * l_V2 * (l_Vy2 / l_q)) - N_SST::G;
|
||||
|
||||
Float64 l_Vx3 = l_Vx2 + (l_Mx3 * m_Tact);
|
||||
Float64 l_Vy3 = l_Vy2 + (l_My3 * m_Tact);
|
||||
Float64 l_V3 = sqrt(pow(l_Vx3, 2.0) + pow(l_Vy3, 2.0));
|
||||
|
||||
// Schritt 4
|
||||
Float64 l_Mx4 = -m_CW * (l_Rho / 2) * l_V3 * (l_Vx3 / l_q);
|
||||
Float64 l_My4 = (-m_CW * (l_Rho / 2) * l_V3 * (l_Vy3 / l_q)) - N_SST::G;
|
||||
|
||||
Float64 l_Mx = (l_Mx1 + (2 * l_Mx2) + (2 * l_Mx3) + l_Mx4) / 6.0;
|
||||
Float64 l_My = (l_My1 + (2 * l_My2) + (2 * l_My3) + l_My4) / 6.0;
|
||||
|
||||
Float64 l_Vx = m_Vx + l_Mx * m_Tact;
|
||||
Float64 l_Vy = m_Vy + l_My * m_Tact;
|
||||
|
||||
N_Types::Coord3 o_coord3;
|
||||
|
||||
o_coord3.m_Y = 0.5 * (m_Vx + l_Vx) * m_Tact;
|
||||
o_coord3.m_Z = 0.5 * (m_Vy + l_Vy) * m_Tact;
|
||||
|
||||
// Correction for Wind (approximative, not confirmed)
|
||||
if (m_XW != 0 && m_CrossWind != 0)
|
||||
{
|
||||
Float64 d_correction = o_coord3.m_Y / (m_Vx * cos(m_GunAngle.m_P));
|
||||
o_coord3.m_X = m_CrossWind * (m_Tact - d_correction) / m_XW;
|
||||
}
|
||||
|
||||
// correction for derivation (right drift due to rotation of bullet)
|
||||
if (m_Derivation != 0)
|
||||
o_coord3.m_X += o_coord3.m_Y * m_Derivation;
|
||||
|
||||
o_coord3 = o_coord3.rotateZ(m_GunAngle.m_H);
|
||||
o_coord3 = o_coord3 + m_MyPoints[0];
|
||||
|
||||
m_H = o_coord3.m_Z;
|
||||
m_Vx = l_Vx;
|
||||
m_Vy = l_Vy;
|
||||
|
||||
return o_coord3;
|
||||
|
||||
}
|
||||
|
||||
|
||||
// ---------------------------------------------------------------
|
||||
// initializes the object with the following parameters
|
||||
// ---------------------------------------------------------------
|
||||
bool TrajectoryRungeKutta::init(const N_Types::Coord3 &a_gunPos, const N_Types::Angle3 &a_gunAngle, const Float64 a_crossWind, const Float64 a_airDensity, const Float64 a_initialAmmuSpeed)
|
||||
{
|
||||
bool l_Ret = TrajectoryBase::init(a_gunPos, a_gunAngle, a_crossWind, a_airDensity, a_initialAmmuSpeed);
|
||||
|
||||
m_V0 = a_initialAmmuSpeed;
|
||||
m_CW = 0;
|
||||
m_XW = 0;
|
||||
|
||||
bool l_CWFound = false;
|
||||
for (size_t i = 0; i < m_V0Coeff.size(); i++)
|
||||
{
|
||||
if (m_V0Coeff[i] == m_V0)
|
||||
{
|
||||
m_CW = m_CWCoeff[i];
|
||||
m_XW = m_XWCoeff[i];
|
||||
l_CWFound = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (!l_CWFound)
|
||||
ERROR_LOG(m_logger) << "CW Value for Speed " << m_V0 << " could not be found !";
|
||||
|
||||
m_H = m_GunPos.m_Z;
|
||||
m_Vx = m_V0 * cos(m_GunAngle.m_P);
|
||||
m_Vy = m_V0 * sin(m_GunAngle.m_P);
|
||||
|
||||
INFO_LOG(m_logger) << "Initial Values: H=" << m_H << " CW=" << m_CW << " V0=" << m_V0;
|
||||
INFO_LOG(m_logger) << " Vx=" << m_Vx << " Vy=" << m_Vy;
|
||||
INFO_LOG(m_logger) << " XW=" << m_XW ;
|
||||
|
||||
return l_Ret;
|
||||
}
|
||||
Executable
+85
@@ -0,0 +1,85 @@
|
||||
#pragma once
|
||||
|
||||
// **************************************************************************
|
||||
//
|
||||
// (C) Copyright 2009 Swiss SIMTEC AG
|
||||
//
|
||||
// **************************************************************************
|
||||
//
|
||||
// $HeadURL$
|
||||
// $LastChangedBy$
|
||||
// $LastChangedDate$
|
||||
// $LastChangedRevision$
|
||||
//
|
||||
// **************************************************************************
|
||||
|
||||
// from stereotyped includes
|
||||
#include "TrajectoryBase.hpp"
|
||||
|
||||
// manual class imports
|
||||
|
||||
namespace N_Ballistic
|
||||
{
|
||||
|
||||
/**
|
||||
* RungeKutta implementation for trajectory calculations
|
||||
*
|
||||
* @author Daniel.Schmid
|
||||
* @version 1.0
|
||||
* @created 22-Jul-2010 11:39:16
|
||||
*/
|
||||
class TrajectoryRungeKutta : public TrajectoryBase
|
||||
{
|
||||
public:
|
||||
|
||||
TrajectoryRungeKutta(const char *loggerName = "TrajectoryRungeKutta") : TrajectoryBase(loggerName) {}
|
||||
static Float64 m_Temp;
|
||||
static Float64 m_TempWeapon;
|
||||
|
||||
|
||||
/**
|
||||
* initializes the object with the ammunition parameters
|
||||
*
|
||||
* @param a_ammunition ammunition definion from xml file
|
||||
*/
|
||||
bool init(const Ammunition &a_ammunition) override;
|
||||
|
||||
/**
|
||||
* initializes the object with the following parameters
|
||||
*
|
||||
* @param a_gunPos Position of the gun
|
||||
* @param a_gunAngle Shooting angle of the gun
|
||||
* @param a_crossWind lateral wind
|
||||
* @param a_airDensity Air density
|
||||
* @param a_initialAmmuSpeed ammunition speed
|
||||
*/
|
||||
bool init(const N_Types::Coord3 &a_gunPos,
|
||||
const N_Types::Angle3 &a_gunAngle,
|
||||
const Float64 a_crossWind,
|
||||
const Float64 a_airDensity,
|
||||
const Float64 a_initialAmmuSpeed) override;
|
||||
|
||||
protected:
|
||||
|
||||
std::vector<Float64> m_CWCoeff;
|
||||
std::vector<Float64> m_V0Coeff;
|
||||
std::vector<Float64> m_XWCoeff;
|
||||
Float64 m_Vx = 0;
|
||||
Float64 m_Vy = 0;
|
||||
Float64 m_H = 0;
|
||||
Float64 m_T = 0;
|
||||
Float64 m_V0 = 0;
|
||||
Float64 m_CW = 0;
|
||||
Float64 m_XW = 0;
|
||||
Float64 m_Weight = 0;
|
||||
Float64 m_Radius = 0;
|
||||
|
||||
/**
|
||||
* calculates the next point of a tracer using the algorithm implemented in the
|
||||
* current class
|
||||
*/
|
||||
N_Types::Coord3 getNextPoint() override;
|
||||
|
||||
};
|
||||
|
||||
}
|
||||
Executable
+84
@@ -0,0 +1,84 @@
|
||||
|
||||
// **************************************************************************
|
||||
//
|
||||
// (C) Copyright 2009 Swiss SIMTEC AG
|
||||
//
|
||||
// **************************************************************************
|
||||
//
|
||||
// $HeadURL$
|
||||
// $LastChangedBy$
|
||||
// $LastChangedDate$
|
||||
// $LastChangedRevision$
|
||||
//
|
||||
// **************************************************************************
|
||||
|
||||
// manual class headers
|
||||
#include "TrajectoryRungeKuttaSimple.hpp"
|
||||
|
||||
namespace N_Ballistic
|
||||
{
|
||||
|
||||
// ---------------------------------------------------------------
|
||||
// calculates the next point of a tracer using the algorithm
|
||||
// implemented in the current class
|
||||
// ---------------------------------------------------------------
|
||||
N_Types::Coord3 TrajectoryRungeKuttaSimple::getNextPoint()
|
||||
{
|
||||
Float64 l_Gamma = 0.0065;
|
||||
Float64 l_Temp0 = N_SST::ZERO_CELSIUS_IN_KELVIN + m_Temp;
|
||||
Float64 l_A = pow(m_Radius, 2.0) * M_PI;
|
||||
Float64 l_M = m_Weight;
|
||||
|
||||
m_MyTime += m_Tact;
|
||||
// INFO_LOG(m_logger) << "-------------- dT=" << m_Tact << " Total=" << m_MyTime << END_LOG;
|
||||
|
||||
Float64 l_Temp = l_Temp0 - (l_Gamma * m_H);
|
||||
// INFO_LOG(m_logger) << "Temp=" << l_Temp << " auf Höhe " << m_H << END_LOG;
|
||||
|
||||
Float64 l_Rho = 4.171E-11/* * pow(10, -11)*/ * pow(l_Temp, 4.2559);
|
||||
Float64 l_q = l_M / l_A;
|
||||
// INFO_LOG(m_logger) << "Rho=" << l_Rho << " für q=" << l_q << " Fläche=" << l_A << " Masse=" << l_M << END_LOG;
|
||||
|
||||
// Schritt 1
|
||||
Float64 l_Vn = sqrt(pow(m_Vx, 2.0) + pow(m_Vy, 2.0));
|
||||
// INFO_LOG(m_logger) << "Vn=" << l_Vn << " für Vx=" << m_Vx << " Vy=" << m_Vy << END_LOG;
|
||||
|
||||
Float64 l_Mx = -m_CW * (l_Rho / 2) * l_Vn * (m_Vx / l_q);
|
||||
Float64 l_My = (-m_CW * (l_Rho / 2) * l_Vn * (m_Vy / l_q)) - N_SST::G;
|
||||
// INFO_LOG(m_logger) << "Mx=" << l_Mx << " My=" << l_My << END_LOG;
|
||||
|
||||
Float64 l_Vx = m_Vx + l_Mx * m_Tact;
|
||||
Float64 l_Vy = m_Vy + l_My * m_Tact;
|
||||
// INFO_LOG(m_logger) << "Vx=" << l_Vx << " Vy=" << l_Vy << END_LOG;
|
||||
|
||||
N_Types::Coord3 o_coord3;
|
||||
|
||||
o_coord3.m_Y = 0.5 * (m_Vx + l_Vx) * m_Tact; // Beware: 2 different coordinate systems used here !!
|
||||
o_coord3.m_Z = 0.5 * (m_Vy + l_Vy) * m_Tact;
|
||||
// INFO_LOG(m_logger) << "dX=" << o_coord3.m_Y << " dy=" << o_coord3.m_Z << END_LOG;
|
||||
|
||||
// Correction for Wind (approximative, not confirmed)
|
||||
if (m_XW != 0 && m_CrossWind != 0)
|
||||
{
|
||||
Float64 d_correction = o_coord3.m_Y / (m_Vx * cos(m_GunAngle.m_P));
|
||||
o_coord3.m_X = m_CrossWind * (m_Tact - d_correction) / m_XW;
|
||||
}
|
||||
|
||||
// correction for derivation (right drift due to rotation of bullet)
|
||||
if (m_Derivation != 0)
|
||||
o_coord3.m_X += o_coord3.m_Y * m_Derivation;
|
||||
|
||||
o_coord3 = o_coord3.rotateZ(m_GunAngle.m_H);
|
||||
o_coord3 = o_coord3 + m_MyPoints[0];
|
||||
|
||||
m_H = m_GunPos.m_Z + o_coord3.m_Z;
|
||||
// INFO_LOG(m_logger) << "-> Pos=" << o_coord3 << END_LOG;
|
||||
|
||||
m_Vx = l_Vx;
|
||||
m_Vy = l_Vy;
|
||||
// INFO_LOG(m_logger) << "Vx=" << m_Vx << " Vy=" << m_Vy << END_LOG;
|
||||
|
||||
return o_coord3;
|
||||
}
|
||||
|
||||
} // namespace N_Ballistic
|
||||
Executable
+47
@@ -0,0 +1,47 @@
|
||||
#pragma once
|
||||
|
||||
// **************************************************************************
|
||||
//
|
||||
// (C) Copyright 2009 Swiss SIMTEC AG
|
||||
//
|
||||
// **************************************************************************
|
||||
//
|
||||
// $HeadURL$
|
||||
// $LastChangedBy$
|
||||
// $LastChangedDate$
|
||||
// $LastChangedRevision$
|
||||
//
|
||||
// **************************************************************************
|
||||
|
||||
// from stereotyped includes
|
||||
#include "TrajectoryRungeKutta.hpp"
|
||||
|
||||
// manual class imports
|
||||
|
||||
namespace N_Ballistic
|
||||
{
|
||||
|
||||
/**
|
||||
* Simple RungeKutta implementation for trajectory calculations
|
||||
*
|
||||
* @author Daniel.Schmid
|
||||
* @version 1.0
|
||||
* @created 22-Jul-2010 12:12:41
|
||||
*/
|
||||
class TrajectoryRungeKuttaSimple : public TrajectoryRungeKutta
|
||||
{
|
||||
public:
|
||||
|
||||
TrajectoryRungeKuttaSimple() : TrajectoryRungeKutta("TrajectoryRungeKuttaSimple") {}
|
||||
|
||||
protected:
|
||||
|
||||
/**
|
||||
* calculates the next point of a tracer using the algorithm implemented in the
|
||||
* current class
|
||||
*/
|
||||
N_Types::Coord3 getNextPoint() override;
|
||||
|
||||
};
|
||||
|
||||
}
|
||||
+41
@@ -0,0 +1,41 @@
|
||||
#* **************************************************************************
|
||||
#*
|
||||
#* (C) Copyright 2009 Swiss SIMTEC AG
|
||||
#*
|
||||
#* **************************************************************************
|
||||
#*
|
||||
#* $HeadURL$
|
||||
#* $LastChangedBy$
|
||||
#* $LastChangedDate$
|
||||
#* $LastChangedRevision$
|
||||
#*
|
||||
#* **************************************************************************
|
||||
|
||||
SET(my_SRCS
|
||||
configsettings.cpp
|
||||
ammuconfig.cpp
|
||||
geoconfig.cpp
|
||||
# ../logger.cpp # wird nicht genutzt, warum nochmals übersetzen?
|
||||
)
|
||||
|
||||
SET(my_HDRS
|
||||
configsettings.h
|
||||
ammuconfig.h
|
||||
geoconfig.h
|
||||
# ../logger.h # wird nicht genutzt, warum nochmals übersetzen?
|
||||
)
|
||||
|
||||
NGL_TARGET_INCLUDE_DIRECTORIES(GBL_ConfigSystem
|
||||
PUBLIC
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/../
|
||||
${CMAKE_CURRENT_BINARY_DIR}/../
|
||||
)
|
||||
|
||||
|
||||
NGL_ADD_LIBRARY(AAR SV GBL_ConfigSystem STATIC ${my_SRCS} ${my_HDRS})
|
||||
NGL_TARGET_LINK_LIBRARIES(GBL_ConfigSystem
|
||||
Qt5::Core
|
||||
nglsettings
|
||||
FW_Ballistic
|
||||
situationMapElevationMap
|
||||
)
|
||||
+155
@@ -0,0 +1,155 @@
|
||||
/**
|
||||
* Geopairing Ammu Config
|
||||
* $Id$
|
||||
* $HeadURL$
|
||||
* $Author$
|
||||
* Created by Gerlinde Rudolphus, ESZS, 2016-04-14
|
||||
*/
|
||||
|
||||
#include "ammuconfig.h"
|
||||
#include <QStringList>
|
||||
|
||||
namespace N_ConfigSystem
|
||||
{
|
||||
|
||||
AmmuConfig *AmmuConfig::getInstance()
|
||||
{
|
||||
static AmmuConfig ammuConfig;
|
||||
return &ammuConfig;
|
||||
}
|
||||
|
||||
void AmmuConfig::initFilename(const QString &fileName)
|
||||
{
|
||||
ConfigSettings::initFilename(fileName);
|
||||
loadAmmunitions();
|
||||
}
|
||||
|
||||
// ---------------------------------------------------------------
|
||||
N_Ballistic::Ammunition AmmuConfig::loadAmmunition(QString a_group)
|
||||
{
|
||||
N_Ballistic::Ammunition p_ammu;
|
||||
|
||||
p_ammu.m_AmmunInfo.m_Name = getString(a_group, QStringLiteral("Name"), QStringLiteral("<unknown>"));
|
||||
p_ammu.m_AmmunInfo.m_Range = getFloat(a_group, QStringLiteral("Range"), 0);
|
||||
p_ammu.m_AmmunInfo.m_Caliber = getFloat(a_group, QStringLiteral("Caliber"), 0);
|
||||
p_ammu.m_AmmunInfo.m_Speed = getFloat(a_group, QStringLiteral("Speed"), 0);
|
||||
p_ammu.m_AmmunInfo.m_TimeOut = getFloat(a_group, QStringLiteral("TimeOut"), 0);
|
||||
p_ammu.m_AmmunInfo.m_ReasonToDetonate = getString(a_group, QStringLiteral("ReasonToDetonate"), QStringLiteral("OnImpact"));
|
||||
p_ammu.m_AmmunInfo.m_Algorithm = getString(a_group, QStringLiteral("Algorithm"), QStringLiteral("DAntonio"));
|
||||
p_ammu.m_AmmunInfo.m_Deviation = getFloat(a_group, QStringLiteral("Deviation"), 0.0);
|
||||
//INFO_LOG(m_logger) << a_group << " m_Deviation : " << p_ammu.m_AmmunInfo.m_Deviation ;
|
||||
p_ammu.m_AmmunInfo.m_Derivation = getFloat(a_group, QStringLiteral("Derivation"), 0.0);
|
||||
//INFO_LOG(m_logger) << a_group << " m_Derivation : " << p_ammu.m_AmmunInfo.m_Derivation ;
|
||||
|
||||
QString s_paramtype = getString(a_group, QStringLiteral("ParamType"), QString());
|
||||
a_group += QLatin1Char('/') + s_paramtype;
|
||||
|
||||
if (s_paramtype == QStringLiteral("PolygonParams"))
|
||||
{
|
||||
p_ammu.m_PolygonParams.m_InitialAX = getFloat(a_group, QStringLiteral("InitialAX"), 0);
|
||||
|
||||
QVector<int> l_axindex = getIntegerVector(a_group, QStringLiteral("AXIndex"));
|
||||
QVector<double> l_axcoeff = getFloatVector(a_group, QStringLiteral("AXCoeff"));
|
||||
for (int i = 0; i < l_axcoeff.size(); i++)
|
||||
{
|
||||
N_Ballistic::PolygonParamType::PolyCoefficientType o_coeff;
|
||||
o_coeff.m_Index = l_axindex[i];
|
||||
o_coeff.m_Coeff = l_axcoeff[i];
|
||||
p_ammu.m_PolygonParams.m_AX.push_back(std::move(o_coeff));
|
||||
}
|
||||
|
||||
QVector<int> l_ayindex = getIntegerVector(a_group, QStringLiteral("AYIndex"));
|
||||
QVector<double> l_aycoeff = getFloatVector(a_group, QStringLiteral("AYCoeff"));
|
||||
for (int i = 0; i < l_aycoeff.size(); i++)
|
||||
{
|
||||
N_Ballistic::PolygonParamType::PolyCoefficientType o_coeff;
|
||||
o_coeff.m_Index = l_ayindex[i];
|
||||
o_coeff.m_Coeff = l_aycoeff[i];
|
||||
p_ammu.m_PolygonParams.m_AY.push_back(std::move(o_coeff));
|
||||
}
|
||||
|
||||
p_ammu.m_PolygonParams.m_Valid = true;
|
||||
}
|
||||
else if (s_paramtype == QStringLiteral("StandardParams"))
|
||||
{
|
||||
p_ammu.m_StandardParams.m_Time.m_CRhoT = getFloat(a_group, QStringLiteral("Time_CRhoT"), 0);
|
||||
p_ammu.m_StandardParams.m_Time.m_CT = getFloat(a_group, QStringLiteral("Time_CT"), 0);
|
||||
p_ammu.m_StandardParams.m_Time.m_CV0T = getFloat(a_group, QStringLiteral("Time_CV0T"), 0);
|
||||
p_ammu.m_StandardParams.m_Time.m_ConstT = getFloat(a_group, QStringLiteral("Time_ConstT"), 0);
|
||||
|
||||
p_ammu.m_StandardParams.m_Angle.m_CRhoA = getFloat(a_group, QStringLiteral("Angle_CRhoA"), 0);
|
||||
p_ammu.m_StandardParams.m_Angle.m_CGammaA = getFloat(a_group, QStringLiteral("Angle_CGammaA"), 0);
|
||||
p_ammu.m_StandardParams.m_Angle.m_CA = getFloat(a_group, QStringLiteral("Angle_CA"), 0);
|
||||
p_ammu.m_StandardParams.m_Angle.m_CV0A = getFloat(a_group, QStringLiteral("Angle_CV0A"), 0);
|
||||
p_ammu.m_StandardParams.m_Angle.m_ConstA = getFloat(a_group, QStringLiteral("Angle_ConstA"), 0);
|
||||
|
||||
p_ammu.m_StandardParams.m_CrossWind.m_ConstX3 = getFloat(a_group, QStringLiteral("CrossWind_ConstX3"), 0);
|
||||
p_ammu.m_StandardParams.m_CrossWind.m_ConstX2 = getFloat(a_group, QStringLiteral("CrossWind_ConstX2"), 0);
|
||||
p_ammu.m_StandardParams.m_CrossWind.m_ConstX1 = getFloat(a_group, QStringLiteral("CrossWind_ConstX1"), 0);
|
||||
p_ammu.m_StandardParams.m_CrossWind.m_ConstX0 = getFloat(a_group, QStringLiteral("CrossWind_ConstX0"), 0);
|
||||
|
||||
p_ammu.m_StandardParams.m_Speed.m_V0ConstX0 = getFloat(a_group, QStringLiteral("Speed_V0ConstX0"), 0);
|
||||
p_ammu.m_StandardParams.m_Speed.m_V0ConstX1 = getFloat(a_group, QStringLiteral("Speed_V0ConstX1"), 0);
|
||||
|
||||
//INFO_LOG(m_logger) << a_group << " Speed_V0Const0 : " << p_ammu.m_StandardParams.m_Speed.m_V0ConstX0 ;
|
||||
//INFO_LOG(m_logger) << a_group << " Speed_V0Const1 : " << p_ammu.m_StandardParams.m_Speed.m_V0ConstX1 ;
|
||||
p_ammu.m_StandardParams.m_Valid = true;
|
||||
}
|
||||
else if (s_paramtype == QStringLiteral("CWParams"))
|
||||
{
|
||||
QString l_groupp = a_group.replace(QStringLiteral("Ammunition"), QStringLiteral("AmmunitionP"));
|
||||
p_ammu.m_CWParams.m_V0 = getFloatVector(l_groupp, QStringLiteral("V0"));
|
||||
p_ammu.m_CWParams.m_CW = getFloatVector(l_groupp, QStringLiteral("CW"));
|
||||
p_ammu.m_CWParams.m_XW = getFloatVector(l_groupp, QStringLiteral("XW"));
|
||||
p_ammu.m_CWParams.m_Weight = getFloat(l_groupp, QStringLiteral("Weight"), 1);
|
||||
|
||||
for (int i = 0; i < p_ammu.m_CWParams.m_CW.size(); i++)
|
||||
{
|
||||
//INFO_LOG(m_logger) << "CWParams V0 " << i << " : " << p_ammu.m_CWParams.m_V0[i] ;
|
||||
//INFO_LOG(m_logger) << "CWParams CW " << i << " : " << p_ammu.m_CWParams.m_CW[i] ;
|
||||
//INFO_LOG(m_logger) << "CWParams XW " << i << " : " << p_ammu.m_CWParams.m_XW[i] ;
|
||||
}
|
||||
//INFO_LOG(m_logger) << "CWParams read, V0 count=" << p_ammu.m_CWParams.m_V0.size() ;
|
||||
//INFO_LOG(m_logger) << "CWParams read, CW count=" << p_ammu.m_CWParams.m_CW.size() ;
|
||||
//INFO_LOG(m_logger) << "CWParams read, XW count=" << p_ammu.m_CWParams.m_XW.size() ;
|
||||
//INFO_LOG(m_logger) << "CWParams read, Weight = " << p_ammu.m_CWParams.m_Weight ;
|
||||
|
||||
p_ammu.m_CWParams.m_Valid = true;
|
||||
}
|
||||
else if (s_paramtype == QStringLiteral("DiscreteParams"))
|
||||
{
|
||||
//ERROR_LOG(m_logger) << "not yet implemented : " << s_paramtype ;
|
||||
}
|
||||
else
|
||||
{
|
||||
//ERROR_LOG(m_logger) << "Unknown ParamType : " << s_paramtype ;
|
||||
}
|
||||
return p_ammu;
|
||||
}
|
||||
|
||||
|
||||
//bool AmmuConfig::loadAmmunitions(const QString &a_configFilename, QVector<Ammunition *> &a_ammunitions)
|
||||
void AmmuConfig::loadAmmunitions()
|
||||
{
|
||||
m_ammunitions.clear();
|
||||
|
||||
int l_numberOfAmmunitions = getInteger(QStringLiteral("Ammunitions"), QStringLiteral("NumberOfEntries"), 0);
|
||||
//INFO_LOG(m_logger) << "d_numberOfEntries : " << d_numberOfEntries ;
|
||||
for (int i = 0; i < l_numberOfAmmunitions; i++)
|
||||
{
|
||||
QString s_ammu_group = QStringLiteral("Ammunition") + QString::number(i + 1);
|
||||
m_ammunitions.push_back(loadAmmunition(s_ammu_group));
|
||||
// INFO_LOG(m_logger) << "Ammunition " << p_ammu.m_AmmunInfo.m_Name << " added to list" ;
|
||||
}
|
||||
|
||||
bool l_RandomizerOff = existsKey(QStringLiteral("Ammunitions"), QStringLiteral("DisableRandomSeed"));
|
||||
if (!l_RandomizerOff)
|
||||
srand(time(nullptr));
|
||||
//else
|
||||
// WARNING_LOG(m_logger) << "Randomizer is NOT seeded with Time..." ;
|
||||
|
||||
//INFO_LOG(m_logger) << "Total Ammunition count : " << m_ammunitions.size() ;
|
||||
|
||||
}
|
||||
|
||||
} // namespace N_ConfigSystem
|
||||
+27
@@ -0,0 +1,27 @@
|
||||
#pragma once
|
||||
|
||||
#include <QString>
|
||||
#include <QVector>
|
||||
#include "configsettings.h"
|
||||
#include <FW_Ballistic/Ammunition.hpp>
|
||||
|
||||
namespace N_ConfigSystem
|
||||
{
|
||||
|
||||
class AmmuConfig: public ConfigSettings
|
||||
{
|
||||
private:
|
||||
AmmuConfig() = default;
|
||||
public:
|
||||
static AmmuConfig *getInstance();
|
||||
void initFilename(const QString &fileName);
|
||||
QVector<N_Ballistic::Ammunition>* GetAmmunitions(){return &m_ammunitions;}
|
||||
|
||||
private:
|
||||
N_Ballistic::Ammunition loadAmmunition(QString a_group);
|
||||
|
||||
void loadAmmunitions();
|
||||
|
||||
QVector<N_Ballistic::Ammunition> m_ammunitions;
|
||||
};
|
||||
}
|
||||
Executable
+102
@@ -0,0 +1,102 @@
|
||||
#include "configsettings.h"
|
||||
|
||||
ConfigSettings::~ConfigSettings()
|
||||
{
|
||||
delete m_settings;
|
||||
}
|
||||
|
||||
void ConfigSettings::initFilename(const QString &fileName)
|
||||
{
|
||||
delete m_settings;
|
||||
m_settings = new QSettings(fileName, QSettings::IniFormat);
|
||||
}
|
||||
|
||||
int ConfigSettings::getInteger(const QString &a_group, const QString &a_key, const int &defaultValue)
|
||||
{
|
||||
int result;
|
||||
if (!existsKey(a_group, a_key) )
|
||||
return defaultValue;
|
||||
QString keygrp = a_group + QLatin1Char('/') + a_key;
|
||||
result = m_settings->value(keygrp).toInt();
|
||||
return result;
|
||||
}
|
||||
|
||||
QVector<int> ConfigSettings::getIntegerVector(const QString &a_group, const QString &a_key)
|
||||
{
|
||||
QVector<int> result;
|
||||
if (!existsKey(a_group, a_key) )
|
||||
return result;
|
||||
const QString keygrp = a_group + QLatin1Char('/') + a_key;
|
||||
const QStringList list = m_settings->value(keygrp).toStringList();
|
||||
|
||||
result.reserve(list.size());
|
||||
for (const QString &value : list)
|
||||
result.append(value.toInt());
|
||||
return result;
|
||||
}
|
||||
|
||||
QMap<int, bool> ConfigSettings::getBoolMap(const QString &a_group, const QString &a_key)
|
||||
{
|
||||
QMap<int, bool> result;
|
||||
QVector<int> intVector = getIntegerVector(a_group, a_key);
|
||||
for (int i = 0; i < intVector.size(); i++)
|
||||
result.insert(i, static_cast<bool>(intVector.at(i)));
|
||||
return result;
|
||||
}
|
||||
|
||||
QString ConfigSettings::getString(const QString &a_group, const QString &a_key, const QString &defaultValue)
|
||||
{
|
||||
QString result;
|
||||
if ( !existsKey(a_group, a_key) )
|
||||
return defaultValue;
|
||||
QString keygrp = a_group + QLatin1Char('/') + a_key;
|
||||
result = m_settings->value(keygrp).toString();
|
||||
return result;
|
||||
}
|
||||
|
||||
double ConfigSettings::getFloat(const QString &a_group, const QString &a_key, const double &defaultValue)
|
||||
{
|
||||
double result;
|
||||
if ( !existsKey(a_group, a_key) )
|
||||
return defaultValue;
|
||||
QString keygrp = a_group + QLatin1Char('/') + a_key;
|
||||
result = m_settings->value(keygrp).toDouble();
|
||||
return result;
|
||||
}
|
||||
|
||||
QVector<double> ConfigSettings::getFloatVector(const QString &a_group, const QString &a_key)
|
||||
{
|
||||
QVector<double> result;
|
||||
if (!existsKey(a_group, a_key) )
|
||||
return result;
|
||||
const QString keygrp = a_group + QLatin1Char('/') + a_key;
|
||||
const QStringList list = m_settings->value(keygrp).toStringList();
|
||||
|
||||
result.reserve(list.size());
|
||||
for (const QString &value : list)
|
||||
result.append(value.toDouble());
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
bool ConfigSettings::existsGroup(const QString &a_group)
|
||||
{
|
||||
QStringList groups = m_settings->childGroups();
|
||||
|
||||
return groups.contains(a_group);
|
||||
}
|
||||
|
||||
QStringList ConfigSettings::getKeys(const QString &a_group)
|
||||
{
|
||||
QStringList keys;
|
||||
m_settings->beginGroup(a_group);
|
||||
keys = m_settings->allKeys();
|
||||
m_settings->endGroup();
|
||||
return keys;
|
||||
}
|
||||
|
||||
bool ConfigSettings::existsKey(const QString &a_group, const QString &a_key)
|
||||
{
|
||||
QStringList keys = getKeys(a_group);
|
||||
return keys.contains(a_key);
|
||||
}
|
||||
Executable
+32
@@ -0,0 +1,32 @@
|
||||
#ifndef CONFIGSETTINGS_H
|
||||
#define CONFIGSETTINGS_H
|
||||
|
||||
#include <QString>
|
||||
#include <QSettings>
|
||||
#include <QVector>
|
||||
#include <QStringList>
|
||||
|
||||
class ConfigSettings
|
||||
{
|
||||
protected:
|
||||
ConfigSettings() = default;
|
||||
virtual ~ConfigSettings();
|
||||
|
||||
public:
|
||||
void initFilename(const QString &fileName);
|
||||
int getInteger(const QString &a_group, const QString &a_key, const int &defaultValue);
|
||||
QVector<int> getIntegerVector(const QString &a_group, const QString &a_key);
|
||||
QMap<int, bool> getBoolMap(const QString &a_group, const QString &a_key);
|
||||
QString getString(const QString &a_group, const QString &a_key, const QString &defaultValue);
|
||||
double getFloat(const QString &a_group, const QString &a_key, const double &defaultValue);
|
||||
QVector<double> getFloatVector(const QString &a_group, const QString &a_key);
|
||||
bool existsGroup(const QString &a_group);
|
||||
QStringList getKeys(const QString &a_group);
|
||||
bool existsKey(const QString &a_group, const QString &a_key);
|
||||
|
||||
private:
|
||||
QSettings *m_settings = nullptr;
|
||||
|
||||
};
|
||||
|
||||
#endif // CONFIGSETTINGS_H
|
||||
+95
@@ -0,0 +1,95 @@
|
||||
/**
|
||||
* Geopairing Config
|
||||
* $Id$
|
||||
* $HeadURL$
|
||||
* $Author$
|
||||
* Created by Gerlinde Rudolphus, ESZS, 2016-04-14
|
||||
*/
|
||||
|
||||
#include "geoconfig.h"
|
||||
#include <QFileInfo>
|
||||
|
||||
namespace N_ConfigSystem
|
||||
{
|
||||
|
||||
GeoConfig::GeoConfig()
|
||||
//: m_logger(CesGeoPairing::getLogger("GeoConfig"))
|
||||
{
|
||||
}
|
||||
|
||||
GeoConfig::~GeoConfig()
|
||||
{
|
||||
}
|
||||
|
||||
GeoConfig *GeoConfig::getInstance()
|
||||
{
|
||||
static GeoConfig geoConfig;
|
||||
return &geoConfig;
|
||||
}
|
||||
|
||||
bool GeoConfig::initFilename(const QString &fileName)
|
||||
{
|
||||
// const QFileInfo qFileInfo(fileName);
|
||||
// INFO_LOG(m_logger) << LOGFUNCTION << " START, GeoConfig::absoluteFilePath ='" << qFileInfo.absoluteFilePath() << "'";
|
||||
|
||||
// AmmunitionMap
|
||||
ConfigSettings::initFilename(fileName);
|
||||
initializeAmmu();
|
||||
|
||||
// Elevation (srtm_38_02.tif -> Norddeutschland)
|
||||
const QString elevationName = getString(QStringLiteral("Elevation"), QStringLiteral("MapFile"), QStringLiteral("/usr/share/arcgis/resources/elevation/srtm_38_02.tif"));
|
||||
|
||||
const QStringList &filePaths_rough_to_fine = elevationName.split(QStringLiteral(";"));
|
||||
|
||||
// INFO_LOG(m_logger) << LOGFUNCTION << " use following file(s) for ElevationMap: '" << elevationName << "'";
|
||||
|
||||
if (!m_elevationMapManager)
|
||||
{
|
||||
m_elevationMapManager = std::make_shared<SituationMap::ElevationMapManager>();
|
||||
m_elevationMapManager->init(filePaths_rough_to_fine);
|
||||
}
|
||||
|
||||
// TRACE_LOG(m_logger) << LOGFUNCTION << " END, filename ='" << fileName << "'";
|
||||
return true;
|
||||
}
|
||||
|
||||
// ---------------------------------------------------------------
|
||||
// Initialize the GeoPairing implementation
|
||||
// ---------------------------------------------------------------
|
||||
void GeoConfig::initializeAmmu()
|
||||
{
|
||||
int l_numberOfAmmunitions = getInteger(QStringLiteral("GeoPairing"), QStringLiteral("NumberOfEntries"), 0);
|
||||
QString s_filter = getString(QStringLiteral("GeoPairing"), QStringLiteral("KeyOfEntries"), QStringLiteral("Ammunition"));
|
||||
|
||||
m_AmmuMap.clear();
|
||||
QString s_group = QStringLiteral("AmmunitionMap");
|
||||
for (int i=0; i< l_numberOfAmmunitions; i++)
|
||||
{
|
||||
QString s_ammu_group = s_filter + QString::number(i+1);
|
||||
QString s_unknown = QStringLiteral("<unknown>");
|
||||
QString s_ammu_value = getString(s_group, s_ammu_group, s_unknown);
|
||||
m_AmmuMap[i] = s_ammu_value;
|
||||
}
|
||||
|
||||
m_ChargeMap.clear();
|
||||
for (int i = 0; i < l_numberOfAmmunitions; i++)
|
||||
{
|
||||
QString s_ammu_group = s_filter + QString::number(i + 1);
|
||||
|
||||
QVector<double> l_charges = getFloatVector(QStringLiteral("ChargeMap"), s_ammu_group);
|
||||
m_ChargeMap[i] = l_charges;
|
||||
// INFO_LOG(m_logger) << "Store ChargeMap Entry: " << " i=" << i << " s_ammu_group = '" << s_ammu_group << "'";
|
||||
// for (int j = 0; j < l_charges.size(); j++)
|
||||
// INFO_LOG(m_logger) << j << " = " << l_charges[j];
|
||||
}
|
||||
}
|
||||
|
||||
double GeoConfig::getElevation(const double lon, const double lat) const
|
||||
{
|
||||
if (!m_elevationMapManager)
|
||||
return 0;
|
||||
m_elevationMapManager->waitForInitialization();
|
||||
return m_elevationMapManager->elevation(lon, lat);
|
||||
}
|
||||
|
||||
} // namespace N_ConfigSystem
|
||||
+62
@@ -0,0 +1,62 @@
|
||||
/**
|
||||
* Geopairing Config
|
||||
* $Id$
|
||||
* $HeadURL$
|
||||
* $Author$
|
||||
* Created by Gerlinde Rudolphus, ESZS, 2016-04-14
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
//class GeoConfig
|
||||
#include "configsettings.h"
|
||||
//#include "../logger.h"
|
||||
|
||||
#include <ElevationMap/elevation_map_manager.h>
|
||||
#include <QString>
|
||||
|
||||
#include <iostream> // std::cout, std::endl, std::cin
|
||||
#include <stdlib.h> // EXIT_SUCCESS
|
||||
#include <memory>
|
||||
|
||||
|
||||
// forward declaration:
|
||||
namespace SituationMap
|
||||
{
|
||||
class ElevationMap;
|
||||
}
|
||||
|
||||
namespace CesGeoPairing
|
||||
{
|
||||
class HandlerGeoPairing;
|
||||
}
|
||||
|
||||
|
||||
namespace N_ConfigSystem
|
||||
{
|
||||
class GeoConfig: public ConfigSettings
|
||||
{
|
||||
private:
|
||||
explicit GeoConfig();
|
||||
~GeoConfig();
|
||||
public:
|
||||
static GeoConfig *getInstance();
|
||||
|
||||
|
||||
QMap<int, QString> getAmmuMap() const { return m_AmmuMap; }
|
||||
QMap<int, QVector<double> > getChargeMap() const { return m_ChargeMap; }
|
||||
double getElevation(const double lon, const double lat) const;
|
||||
|
||||
private:
|
||||
friend class CesGeoPairing::HandlerGeoPairing; // for initFilename
|
||||
bool initFilename(const QString &fileName);
|
||||
|
||||
void initializeAmmu();
|
||||
QMap<int, QString> m_AmmuMap ;
|
||||
QMap<int, QVector<double> > m_ChargeMap;
|
||||
|
||||
std::shared_ptr<SituationMap::ElevationMapManager> m_elevationMapManager;
|
||||
|
||||
// CesGeoPairing::LOGGER_T m_logger;
|
||||
};
|
||||
}
|
||||
+9
@@ -0,0 +1,9 @@
|
||||
ADD_LIBRARY(GBL_Global INTERFACE)
|
||||
TARGET_SOURCES(GBL_Global INTERFACE
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/Constants.hpp
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/Types.hpp
|
||||
)
|
||||
TARGET_INCLUDE_DIRECTORIES(GBL_Global
|
||||
INTERFACE
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/../
|
||||
)
|
||||
+66
@@ -0,0 +1,66 @@
|
||||
// **************************************************************************
|
||||
//
|
||||
// (C) Copyright 2009 Swiss SIMTEC AG
|
||||
//
|
||||
// **************************************************************************
|
||||
//
|
||||
// $HeadURL$
|
||||
// $LastChangedBy$
|
||||
// $LastChangedDate$
|
||||
// $LastChangedRevision$
|
||||
//
|
||||
// **************************************************************************
|
||||
|
||||
#ifndef CONSTANTS_HPP
|
||||
#define CONSTANTS_HPP 1
|
||||
|
||||
|
||||
//============================================================================
|
||||
// additional include file(s)
|
||||
//============================================================================
|
||||
#include "Types.hpp"
|
||||
|
||||
namespace N_SST
|
||||
{
|
||||
|
||||
//==========================================================================
|
||||
// constant definitions
|
||||
//==========================================================================
|
||||
|
||||
// Archimedes' Constant
|
||||
//---------------------
|
||||
const Float64 PI = 3.141592653589793;
|
||||
|
||||
// Natural Logarithmic Base
|
||||
//-------------------------
|
||||
const Float64 E = 2.718281828459045;
|
||||
|
||||
// acceleration due to gravity m/s*s
|
||||
//----------------------------------
|
||||
const Float64 G = 9.81;
|
||||
|
||||
// Euler's Constant
|
||||
//-----------------
|
||||
const Float64 GAMMA = 0.577215664901532;
|
||||
|
||||
// Golden Ratio
|
||||
//-------------
|
||||
const Float64 PHI = 1.618033988749894;
|
||||
|
||||
const Float64 PI_OVER_2 = PI / 2.0;
|
||||
const Float64 PI_OVER_4 = PI / 4.0;
|
||||
const Float64 TWO_PI = PI * 2.0;
|
||||
const Float64 ONE_OVER_TWO_PI = 1.0 / TWO_PI;
|
||||
const Float64 INV_PI = 0.318309886183790;
|
||||
const Float64 INV_E = 0.367879441171442;
|
||||
|
||||
const Float64 INV_PI_OVER_180 = 180.0 / PI;
|
||||
const Float64 PI_OVER_180 = PI / 180.0;
|
||||
|
||||
const Float64 ZERO_CELSIUS_IN_KELVIN = 273.16;
|
||||
|
||||
} // namespace N_SST
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
+28
@@ -0,0 +1,28 @@
|
||||
// **************************************************************************
|
||||
//
|
||||
// (C) Copyright 2009 Swiss SIMTEC AG
|
||||
//
|
||||
// **************************************************************************
|
||||
//
|
||||
// $HeadURL$
|
||||
// $LastChangedBy$
|
||||
// $LastChangedDate$
|
||||
// $LastChangedRevision$
|
||||
//
|
||||
// **************************************************************************
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <cstdint>
|
||||
|
||||
using Float64 = double;
|
||||
|
||||
// just renamed to use stdint stuff
|
||||
using SInt8 = int8_t;
|
||||
using UInt8 = uint8_t;
|
||||
using SInt16 = int16_t;
|
||||
using UInt16 = uint16_t;
|
||||
using SInt32 = int32_t;
|
||||
using UInt32 = uint32_t;
|
||||
using SInt64 = int64_t;
|
||||
using UInt64 = uint64_t;
|
||||
+401
@@ -0,0 +1,401 @@
|
||||
// **************************************************************************
|
||||
//
|
||||
// (C) Copyright 2009 Swiss SIMTEC AG
|
||||
//
|
||||
// **************************************************************************
|
||||
//
|
||||
// $HeadURL$
|
||||
// $LastChangedBy$
|
||||
// $LastChangedDate$
|
||||
// $LastChangedRevision$
|
||||
//
|
||||
// **************************************************************************
|
||||
|
||||
// manual class headers
|
||||
#include "Angle3.hpp"
|
||||
#include <math.h>
|
||||
|
||||
using N_Types::Angle3;
|
||||
using namespace N_Types;
|
||||
|
||||
// ---------------------------------------------------------------
|
||||
// Method getEulerAngle : returns Contents of the Angle3. The
|
||||
// pitch angle is limited to +/-PI/2. If the parameter is
|
||||
// true and the pitch angles are more than +/_PI/2, it will
|
||||
// be imitted to +/PI/2. If the patameter is false the
|
||||
// heading, pitch and roll will be recalculated as in the
|
||||
// following formula: if ( P > PI/2) { P = PI - P H = PI + H
|
||||
// R = PI +R } else if ( P < PI/2) { P = -PI - P H = PI + H R
|
||||
// = PI +R }
|
||||
// ---------------------------------------------------------------
|
||||
Angle3 Angle3::getEulerAngle(bool ab_limitToHalfPI) const
|
||||
{
|
||||
Angle3 o_tmp = *this;
|
||||
if (ab_limitToHalfPI)
|
||||
{
|
||||
if (o_tmp.m_P > M_PI_2)
|
||||
o_tmp.m_P = M_PI_2;
|
||||
else if (o_tmp.m_P < -M_PI_2)
|
||||
o_tmp.m_P = -M_PI_2;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (o_tmp.m_P > M_PI_2)
|
||||
{
|
||||
o_tmp.m_P = M_PI - o_tmp.m_P;
|
||||
o_tmp.m_R = M_PI + o_tmp.m_R;
|
||||
o_tmp.m_H = M_PI + o_tmp.m_H;
|
||||
}
|
||||
else if (o_tmp.m_P < -M_PI_2)
|
||||
{
|
||||
o_tmp.m_P = -M_PI - o_tmp.m_P;
|
||||
o_tmp.m_R = M_PI + o_tmp.m_R;
|
||||
o_tmp.m_H = M_PI + o_tmp.m_H;
|
||||
}
|
||||
}
|
||||
|
||||
return o_tmp;
|
||||
}
|
||||
|
||||
// ---------------------------------------------------------------
|
||||
// This method returns the resultant angle between two Euler
|
||||
// angles. If an articulated part of an abject is rotated in
|
||||
// ang2 relative to the parent object, -And if a parent object
|
||||
// itself is rotated to ang1 Then the resultant angle of the
|
||||
// ariculated part will be: angle3 = ang1.multiply (ang2)
|
||||
// used formula: C=A*B C: Euler matrix of Resulting angle A:
|
||||
// Euler matrix of angle of the parent Object. B: Euler
|
||||
// matrix of angle of the articulated part. Important: The
|
||||
// Pitch angle should not eceed +/- PI/2
|
||||
// ---------------------------------------------------------------
|
||||
Angle3 Angle3::multiply(const Angle3 &ao_angle3) const
|
||||
{
|
||||
//begin_operation_{D5B1F944-7C7D-40bc-92C5-B601EF2B4C59}
|
||||
Angle3 o_returnAngle3;
|
||||
Angle3 o_ang3 = *this;
|
||||
o_ang3 = o_ang3.getEulerAngle(); // limit pitch to +/-PI/2
|
||||
Float64 leftValue[3][3]; // Matrix A (articulated part)
|
||||
Float64 rightValue[3][3]; // Matrix B (Base Part)
|
||||
Float64 resultValue[3][3]; // Matrix C (resultant)
|
||||
|
||||
// Formula
|
||||
// C = A * B
|
||||
|
||||
leftValue[0][0] = cos(o_ang3.m_H) * cos(o_ang3.m_R) - sin(o_ang3.m_H) * sin(o_ang3.m_P) * sin(o_ang3.m_R);
|
||||
leftValue[0][1] = -sin(o_ang3.m_H) * cos(o_ang3.m_P);
|
||||
leftValue[0][2] = cos(o_ang3.m_H) * sin(o_ang3.m_R) + sin(o_ang3.m_H) * sin(o_ang3.m_P) * cos(o_ang3.m_R);
|
||||
leftValue[1][0] = sin(o_ang3.m_H) * cos(o_ang3.m_R) + cos(o_ang3.m_H) * sin(o_ang3.m_P) * sin(o_ang3.m_R);
|
||||
leftValue[1][1] = cos(o_ang3.m_H) * cos(o_ang3.m_P);
|
||||
leftValue[1][2] = sin(o_ang3.m_H) * sin(o_ang3.m_R) - cos(o_ang3.m_H) * sin(o_ang3.m_P) * cos(o_ang3.m_R);
|
||||
leftValue[2][0] = -cos(o_ang3.m_P) * sin(o_ang3.m_R);
|
||||
leftValue[2][1] = sin(o_ang3.m_P);
|
||||
leftValue[2][2] = cos(o_ang3.m_P) * cos(o_ang3.m_R);
|
||||
|
||||
o_ang3 = ao_angle3;
|
||||
o_ang3 = o_ang3.getEulerAngle(); // limit pitch to +/-PI/2
|
||||
rightValue[0][0] = cos(o_ang3.m_H) * cos(o_ang3.m_R) - sin(o_ang3.m_H) * sin(o_ang3.m_P) * sin(o_ang3.m_R);
|
||||
rightValue[0][1] = -sin(o_ang3.m_H) * cos(o_ang3.m_P);
|
||||
rightValue[0][2] = cos(o_ang3.m_H) * sin(o_ang3.m_R) + sin(o_ang3.m_H) * sin(o_ang3.m_P) * cos(o_ang3.m_R);
|
||||
rightValue[1][0] = sin(o_ang3.m_H) * cos(o_ang3.m_R) + cos(o_ang3.m_H) * sin(o_ang3.m_P) * sin(o_ang3.m_R);
|
||||
rightValue[1][1] = cos(o_ang3.m_H) * cos(o_ang3.m_P);
|
||||
rightValue[1][2] = sin(o_ang3.m_H) * sin(o_ang3.m_R) - cos(o_ang3.m_H) * sin(o_ang3.m_P) * cos(o_ang3.m_R);
|
||||
rightValue[2][0] = -cos(o_ang3.m_P) * sin(o_ang3.m_R);
|
||||
rightValue[2][1] = sin(o_ang3.m_P);
|
||||
rightValue[2][2] = cos(o_ang3.m_P) * cos(o_ang3.m_R);
|
||||
|
||||
resultValue[0][0] = leftValue[0][0] * rightValue[0][0] + leftValue[0][1] * rightValue[1][0] + leftValue[0][2] * rightValue[2][0];
|
||||
resultValue[0][1] = leftValue[0][0] * rightValue[0][1] + leftValue[0][1] * rightValue[1][1] + leftValue[0][2] * rightValue[2][1];
|
||||
resultValue[0][2] = leftValue[0][0] * rightValue[0][2] + leftValue[0][1] * rightValue[1][2] + leftValue[0][2] * rightValue[2][2];
|
||||
resultValue[1][0] = leftValue[1][0] * rightValue[0][0] + leftValue[1][1] * rightValue[1][0] + leftValue[1][2] * rightValue[2][0];
|
||||
resultValue[1][1] = leftValue[1][0] * rightValue[0][1] + leftValue[1][1] * rightValue[1][1] + leftValue[1][2] * rightValue[2][1];
|
||||
resultValue[1][2] = leftValue[1][0] * rightValue[0][2] + leftValue[1][1] * rightValue[1][2] + leftValue[1][2] * rightValue[2][2];
|
||||
resultValue[2][0] = leftValue[2][0] * rightValue[0][0] + leftValue[2][1] * rightValue[1][0] + leftValue[2][2] * rightValue[2][0];
|
||||
resultValue[2][1] = leftValue[2][0] * rightValue[0][1] + leftValue[2][1] * rightValue[1][1] + leftValue[2][2] * rightValue[2][1];
|
||||
resultValue[2][2] = leftValue[2][0] * rightValue[0][2] + leftValue[2][1] * rightValue[1][2] + leftValue[2][2] * rightValue[2][2];
|
||||
|
||||
if (resultValue[2][1] < -1.0) // only for safty
|
||||
resultValue[2][1] = -1.0;
|
||||
if (resultValue[2][1] > 1.0) // only for safty
|
||||
resultValue[2][1] = 1.0;
|
||||
|
||||
o_returnAngle3.m_R = -atan2(resultValue[2][0], resultValue[2][2]);
|
||||
o_returnAngle3.m_P = asin(resultValue[2][1]);
|
||||
o_returnAngle3.m_H = -atan2(resultValue[0][1], resultValue[1][1]);
|
||||
|
||||
return o_returnAngle3;
|
||||
//end_operation_{D5B1F944-7C7D-40bc-92C5-B601EF2B4C59}
|
||||
}
|
||||
|
||||
|
||||
// ---------------------------------------------------------------
|
||||
// This method returns the difference angle between two Euler
|
||||
// angles. Suppose the following case: -an articulated part
|
||||
// of an abject is rotated in ang2 relative to the parent
|
||||
// object. -the parent object itself is rotated in ang1 -
|
||||
// the resultant angle is ang3. If ang1 and ang3 are given
|
||||
// ang2 can be calculated as follows: angle2 = ang3.
|
||||
// multiplInvA(angle1). used formula: C = A*B then B =
|
||||
// A_INV * C A,B,C - Euler matrices. A_Inv - Inverse of A
|
||||
// Important: The Pitch angle should not eceed +/- PI/2
|
||||
// ---------------------------------------------------------------
|
||||
Angle3 Angle3::multiplyInvA(const Angle3 &ao_angle3) const
|
||||
{
|
||||
//begin_operation_{D0A8D027-46D5-4adc-A882-88C7E1BB22DC}
|
||||
Angle3 o_returnAngle3;
|
||||
Angle3 o_ang3 = ao_angle3;
|
||||
o_ang3 = o_ang3.getEulerAngle(); // limit pitch to +/-PI/2
|
||||
Float64 leftValue[3][3]; // Matrix A (articulated part)
|
||||
Float64 rightValue[3][3]; // Matrix C resultant
|
||||
Float64 resultValue[3][3]; // Matrix B (Base part)
|
||||
Float64 ad_X[3][3]; // Matrix A (articulated part) (before inversion)
|
||||
Float64 d_D = 1.0; // determinent
|
||||
|
||||
// Formula
|
||||
// B = A_Inv * C
|
||||
|
||||
ad_X[0][0] = cos(o_ang3.m_H) * cos(o_ang3.m_R) - sin(o_ang3.m_H) * sin(o_ang3.m_P) * sin(o_ang3.m_R);
|
||||
ad_X[0][1] = -sin(o_ang3.m_H) * cos(o_ang3.m_P);
|
||||
ad_X[0][2] = cos(o_ang3.m_H) * sin(o_ang3.m_R) + sin(o_ang3.m_H) * sin(o_ang3.m_P) * cos(o_ang3.m_R);
|
||||
ad_X[1][0] = sin(o_ang3.m_H) * cos(o_ang3.m_R) + cos(o_ang3.m_H) * sin(o_ang3.m_P) * sin(o_ang3.m_R);
|
||||
ad_X[1][1] = cos(o_ang3.m_H) * cos(o_ang3.m_P);
|
||||
ad_X[1][2] = sin(o_ang3.m_H) * sin(o_ang3.m_R) - cos(o_ang3.m_H) * sin(o_ang3.m_P) * cos(o_ang3.m_R);
|
||||
ad_X[2][0] = -cos(o_ang3.m_P) * sin(o_ang3.m_R);
|
||||
ad_X[2][1] = sin(o_ang3.m_P);
|
||||
ad_X[2][2] = cos(o_ang3.m_P) * cos(o_ang3.m_R);
|
||||
|
||||
d_D =
|
||||
(
|
||||
ad_X[0][0] * ad_X[1][1] * ad_X[2][2] +
|
||||
ad_X[0][1] * ad_X[1][2] * ad_X[2][0] +
|
||||
ad_X[1][0] * ad_X[2][1] * ad_X[0][2]
|
||||
)
|
||||
-
|
||||
(
|
||||
ad_X[0][2] * ad_X[1][1] * ad_X[2][0] +
|
||||
ad_X[1][2] * ad_X[2][1] * ad_X[0][0] +
|
||||
ad_X[0][1] * ad_X[1][0] * ad_X[2][2]
|
||||
);
|
||||
|
||||
if (d_D == 0.0)
|
||||
return o_returnAngle3;
|
||||
|
||||
leftValue[0][0] = (ad_X[1][1] * ad_X[2][2] - ad_X[1][2] * ad_X[2][1]) / d_D ;
|
||||
leftValue[0][1] = (ad_X[0][2] * ad_X[2][1] - ad_X[0][1] * ad_X[2][2]) / d_D ;
|
||||
leftValue[0][2] = (ad_X[0][1] * ad_X[1][2] - ad_X[0][2] * ad_X[1][1]) / d_D ;
|
||||
|
||||
leftValue[1][0] = (ad_X[1][2] * ad_X[2][0] - ad_X[1][0] * ad_X[2][2]) / d_D ;
|
||||
leftValue[1][1] = (ad_X[0][0] * ad_X[2][2] - ad_X[0][2] * ad_X[2][0]) / d_D ;
|
||||
leftValue[1][2] = (ad_X[0][2] * ad_X[1][0] - ad_X[0][0] * ad_X[1][2]) / d_D ;
|
||||
|
||||
leftValue[2][0] = (ad_X[1][0] * ad_X[2][1] - ad_X[1][1] * ad_X[2][0]) / d_D ;
|
||||
leftValue[2][1] = (ad_X[0][1] * ad_X[2][0] - ad_X[0][0] * ad_X[2][1]) / d_D ;
|
||||
leftValue[2][2] = (ad_X[0][0] * ad_X[1][1] - ad_X[0][1] * ad_X[1][0]) / d_D ;
|
||||
|
||||
|
||||
|
||||
o_ang3 = *this;
|
||||
o_ang3 = o_ang3.getEulerAngle(); // limit pitch to +/-PI/2
|
||||
rightValue[0][0] = cos(o_ang3.m_H) * cos(o_ang3.m_R) - sin(o_ang3.m_H) * sin(o_ang3.m_P) * sin(o_ang3.m_R);
|
||||
rightValue[0][1] = -sin(o_ang3.m_H) * cos(o_ang3.m_P);
|
||||
rightValue[0][2] = cos(o_ang3.m_H) * sin(o_ang3.m_R) + sin(o_ang3.m_H) * sin(o_ang3.m_P) * cos(o_ang3.m_R);
|
||||
rightValue[1][0] = sin(o_ang3.m_H) * cos(o_ang3.m_R) + cos(o_ang3.m_H) * sin(o_ang3.m_P) * sin(o_ang3.m_R);
|
||||
rightValue[1][1] = cos(o_ang3.m_H) * cos(o_ang3.m_P);
|
||||
rightValue[1][2] = sin(o_ang3.m_H) * sin(o_ang3.m_R) - cos(o_ang3.m_H) * sin(o_ang3.m_P) * cos(o_ang3.m_R);
|
||||
rightValue[2][0] = -cos(o_ang3.m_P) * sin(o_ang3.m_R);
|
||||
rightValue[2][1] = sin(o_ang3.m_P);
|
||||
rightValue[2][2] = cos(o_ang3.m_P) * cos(o_ang3.m_R);
|
||||
|
||||
resultValue[0][0] = leftValue[0][0] * rightValue[0][0] + leftValue[0][1] * rightValue[1][0] + leftValue[0][2] * rightValue[2][0];
|
||||
resultValue[0][1] = leftValue[0][0] * rightValue[0][1] + leftValue[0][1] * rightValue[1][1] + leftValue[0][2] * rightValue[2][1];
|
||||
resultValue[0][2] = leftValue[0][0] * rightValue[0][2] + leftValue[0][1] * rightValue[1][2] + leftValue[0][2] * rightValue[2][2];
|
||||
resultValue[1][0] = leftValue[1][0] * rightValue[0][0] + leftValue[1][1] * rightValue[1][0] + leftValue[1][2] * rightValue[2][0];
|
||||
resultValue[1][1] = leftValue[1][0] * rightValue[0][1] + leftValue[1][1] * rightValue[1][1] + leftValue[1][2] * rightValue[2][1];
|
||||
resultValue[1][2] = leftValue[1][0] * rightValue[0][2] + leftValue[1][1] * rightValue[1][2] + leftValue[1][2] * rightValue[2][2];
|
||||
resultValue[2][0] = leftValue[2][0] * rightValue[0][0] + leftValue[2][1] * rightValue[1][0] + leftValue[2][2] * rightValue[2][0];
|
||||
resultValue[2][1] = leftValue[2][0] * rightValue[0][1] + leftValue[2][1] * rightValue[1][1] + leftValue[2][2] * rightValue[2][1];
|
||||
resultValue[2][2] = leftValue[2][0] * rightValue[0][2] + leftValue[2][1] * rightValue[1][2] + leftValue[2][2] * rightValue[2][2];
|
||||
|
||||
if (resultValue[2][1] < -1.0) // only for safty
|
||||
resultValue[2][1] = -1.0;
|
||||
if (resultValue[2][1] > 1.0) // only for safty
|
||||
resultValue[2][1] = 1.0;
|
||||
o_returnAngle3.m_R = -atan2(resultValue[2][0], resultValue[2][2]);
|
||||
o_returnAngle3.m_P = asin(resultValue[2][1]);
|
||||
o_returnAngle3.m_H = -atan2(resultValue[0][1], resultValue[1][1]);
|
||||
|
||||
|
||||
return o_returnAngle3;
|
||||
//end_operation_{D0A8D027-46D5-4adc-A882-88C7E1BB22DC}
|
||||
}
|
||||
|
||||
|
||||
// ---------------------------------------------------------------
|
||||
// This method returns the difference angle between two Euler
|
||||
// angles. Suppose the following case: -an articulated part
|
||||
// of an abject has anmangle ang2 relative to the parent
|
||||
// object -a parent object an angle ang1 -the resultant
|
||||
// angle is ang3. If ang2 and ang3 are given ang1 will be:
|
||||
// angle1 = ang3. multiplyInvB(ang2) used formula: C= A*B
|
||||
// then A = C* B_INV A,B,C - Euler matrices. B_Inv -
|
||||
// Inverse of B Important: The Pitch angle should not eceed
|
||||
// +/- PI/2
|
||||
// ---------------------------------------------------------------
|
||||
Angle3 Angle3::multiplyInvB(const Angle3 &ao_angle3) const
|
||||
{
|
||||
//begin_operation_{EE1AC697-198F-4223-AE9E-F7E6EFC2B452}
|
||||
Angle3 o_returnAngle3;
|
||||
Angle3 o_ang3 = ao_angle3;
|
||||
o_ang3 = o_ang3.getEulerAngle(); // limit pitch to +/-PI/2
|
||||
Float64 leftValue[3][3]; // Matrix A (articulated part)
|
||||
Float64 rightValue[3][3]; // Matrix C resultant
|
||||
Float64 resultValue[3][3]; // Matrix B (Base part)
|
||||
Float64 ad_X[3][3]; // Matrix A (articulated part) (before inversion)
|
||||
Float64 d_D = 1.0; // determinent
|
||||
|
||||
// Formula
|
||||
// A = C * B_Inv
|
||||
|
||||
ad_X[0][0] = cos(o_ang3.m_H) * cos(o_ang3.m_R) - sin(o_ang3.m_H) * sin(o_ang3.m_P) * sin(o_ang3.m_R);
|
||||
ad_X[0][1] = -sin(o_ang3.m_H) * cos(o_ang3.m_P);
|
||||
ad_X[0][2] = cos(o_ang3.m_H) * sin(o_ang3.m_R) + sin(o_ang3.m_H) * sin(o_ang3.m_P) * cos(o_ang3.m_R);
|
||||
ad_X[1][0] = sin(o_ang3.m_H) * cos(o_ang3.m_R) + cos(o_ang3.m_H) * sin(o_ang3.m_P) * sin(o_ang3.m_R);
|
||||
ad_X[1][1] = cos(o_ang3.m_H) * cos(o_ang3.m_P);
|
||||
ad_X[1][2] = sin(o_ang3.m_H) * sin(o_ang3.m_R) - cos(o_ang3.m_H) * sin(o_ang3.m_P) * cos(o_ang3.m_R);
|
||||
ad_X[2][0] = -cos(o_ang3.m_P) * sin(o_ang3.m_R);
|
||||
ad_X[2][1] = sin(o_ang3.m_P);
|
||||
ad_X[2][2] = cos(o_ang3.m_P) * cos(o_ang3.m_R);
|
||||
|
||||
d_D =
|
||||
(
|
||||
ad_X[0][0] * ad_X[1][1] * ad_X[2][2] +
|
||||
ad_X[0][1] * ad_X[1][2] * ad_X[2][0] +
|
||||
ad_X[1][0] * ad_X[2][1] * ad_X[0][2]
|
||||
)
|
||||
-
|
||||
(
|
||||
ad_X[0][2] * ad_X[1][1] * ad_X[2][0] +
|
||||
ad_X[1][2] * ad_X[2][1] * ad_X[0][0] +
|
||||
ad_X[0][1] * ad_X[1][0] * ad_X[2][2]
|
||||
);
|
||||
|
||||
if (d_D == 0.0)
|
||||
return o_returnAngle3;
|
||||
|
||||
rightValue[0][0] = (ad_X[1][1] * ad_X[2][2] - ad_X[1][2] * ad_X[2][1]) / d_D ;
|
||||
rightValue[0][1] = (ad_X[0][2] * ad_X[2][1] - ad_X[0][1] * ad_X[2][2]) / d_D ;
|
||||
rightValue[0][2] = (ad_X[0][1] * ad_X[1][2] - ad_X[0][2] * ad_X[1][1]) / d_D ;
|
||||
|
||||
rightValue[1][0] = (ad_X[1][2] * ad_X[2][0] - ad_X[1][0] * ad_X[2][2]) / d_D ;
|
||||
rightValue[1][1] = (ad_X[0][0] * ad_X[2][2] - ad_X[0][2] * ad_X[2][0]) / d_D ;
|
||||
rightValue[1][2] = (ad_X[0][2] * ad_X[1][0] - ad_X[0][0] * ad_X[1][2]) / d_D ;
|
||||
|
||||
rightValue[2][0] = (ad_X[1][0] * ad_X[2][1] - ad_X[1][1] * ad_X[2][0]) / d_D ;
|
||||
rightValue[2][1] = (ad_X[0][1] * ad_X[2][0] - ad_X[0][0] * ad_X[2][1]) / d_D ;
|
||||
rightValue[2][2] = (ad_X[0][0] * ad_X[1][1] - ad_X[0][1] * ad_X[1][0]) / d_D ;
|
||||
|
||||
|
||||
|
||||
o_ang3 = *this;
|
||||
o_ang3 = o_ang3.getEulerAngle(); // limit pitch to +/-PI/2
|
||||
leftValue[0][0] = cos(o_ang3.m_H) * cos(o_ang3.m_R) - sin(o_ang3.m_H) * sin(o_ang3.m_P) * sin(o_ang3.m_R);
|
||||
leftValue[0][1] = -sin(o_ang3.m_H) * cos(o_ang3.m_P);
|
||||
leftValue[0][2] = cos(o_ang3.m_H) * sin(o_ang3.m_R) + sin(o_ang3.m_H) * sin(o_ang3.m_P) * cos(o_ang3.m_R);
|
||||
leftValue[1][0] = sin(o_ang3.m_H) * cos(o_ang3.m_R) + cos(o_ang3.m_H) * sin(o_ang3.m_P) * sin(o_ang3.m_R);
|
||||
leftValue[1][1] = cos(o_ang3.m_H) * cos(o_ang3.m_P);
|
||||
leftValue[1][2] = sin(o_ang3.m_H) * sin(o_ang3.m_R) - cos(o_ang3.m_H) * sin(o_ang3.m_P) * cos(o_ang3.m_R);
|
||||
leftValue[2][0] = -cos(o_ang3.m_P) * sin(o_ang3.m_R);
|
||||
leftValue[2][1] = sin(o_ang3.m_P);
|
||||
leftValue[2][2] = cos(o_ang3.m_P) * cos(o_ang3.m_R);
|
||||
|
||||
resultValue[0][0] = leftValue[0][0] * rightValue[0][0] + leftValue[0][1] * rightValue[1][0] + leftValue[0][2] * rightValue[2][0];
|
||||
resultValue[0][1] = leftValue[0][0] * rightValue[0][1] + leftValue[0][1] * rightValue[1][1] + leftValue[0][2] * rightValue[2][1];
|
||||
resultValue[0][2] = leftValue[0][0] * rightValue[0][2] + leftValue[0][1] * rightValue[1][2] + leftValue[0][2] * rightValue[2][2];
|
||||
resultValue[1][0] = leftValue[1][0] * rightValue[0][0] + leftValue[1][1] * rightValue[1][0] + leftValue[1][2] * rightValue[2][0];
|
||||
resultValue[1][1] = leftValue[1][0] * rightValue[0][1] + leftValue[1][1] * rightValue[1][1] + leftValue[1][2] * rightValue[2][1];
|
||||
resultValue[1][2] = leftValue[1][0] * rightValue[0][2] + leftValue[1][1] * rightValue[1][2] + leftValue[1][2] * rightValue[2][2];
|
||||
resultValue[2][0] = leftValue[2][0] * rightValue[0][0] + leftValue[2][1] * rightValue[1][0] + leftValue[2][2] * rightValue[2][0];
|
||||
resultValue[2][1] = leftValue[2][0] * rightValue[0][1] + leftValue[2][1] * rightValue[1][1] + leftValue[2][2] * rightValue[2][1];
|
||||
resultValue[2][2] = leftValue[2][0] * rightValue[0][2] + leftValue[2][1] * rightValue[1][2] + leftValue[2][2] * rightValue[2][2];
|
||||
|
||||
if (resultValue[2][1] < -1.0) // only for safty
|
||||
resultValue[2][1] = -1.0;
|
||||
if (resultValue[2][1] > 1.0) // only for safty
|
||||
resultValue[2][1] = 1.0;
|
||||
o_returnAngle3.m_R = -atan2(resultValue[2][0], resultValue[2][2]);
|
||||
o_returnAngle3.m_P = asin(resultValue[2][1]);
|
||||
o_returnAngle3.m_H = -atan2(resultValue[0][1], resultValue[1][1]);
|
||||
|
||||
|
||||
return o_returnAngle3;
|
||||
}
|
||||
|
||||
|
||||
// ---------------------------------------------------------------
|
||||
// Minus operator
|
||||
// ---------------------------------------------------------------
|
||||
Angle3 Angle3::operator -(const Angle3 &ao_angle3) const
|
||||
{
|
||||
Angle3 o_angle3 = *this;;
|
||||
o_angle3.m_H -= ao_angle3.m_H;
|
||||
o_angle3.m_P -= ao_angle3.m_P;
|
||||
o_angle3.m_R -= ao_angle3.m_R;
|
||||
return o_angle3;
|
||||
}
|
||||
|
||||
|
||||
// ---------------------------------------------------------------
|
||||
// Negation operator
|
||||
// ---------------------------------------------------------------
|
||||
Angle3 Angle3::operator -() const
|
||||
{
|
||||
Angle3 o_angle3;
|
||||
o_angle3.m_H = -m_H;
|
||||
o_angle3.m_P = -m_P;
|
||||
o_angle3.m_R = -m_R;
|
||||
return o_angle3;
|
||||
}
|
||||
|
||||
// ---------------------------------------------------------------
|
||||
// Plus operator
|
||||
// ---------------------------------------------------------------
|
||||
Angle3 Angle3::operator +(const Angle3 &ao_angle3) const
|
||||
{
|
||||
Angle3 o_angle3 = *this;
|
||||
o_angle3.m_H += ao_angle3.m_H;
|
||||
o_angle3.m_P += ao_angle3.m_P;
|
||||
o_angle3.m_R += ao_angle3.m_R;
|
||||
return o_angle3;
|
||||
}
|
||||
|
||||
// ---------------------------------------------------------------
|
||||
// Operator==: Compare all parameters of the argument with the
|
||||
// own parameter and returns true if all parameters are equal.
|
||||
// ---------------------------------------------------------------
|
||||
bool Angle3::operator ==(const Angle3 &ao_angle3) const
|
||||
{
|
||||
return ((m_H == ao_angle3.m_H) &&
|
||||
(m_P == ao_angle3.m_P) &&
|
||||
(m_R == ao_angle3.m_R));
|
||||
}
|
||||
|
||||
|
||||
// ---------------------------------------------------------------
|
||||
// Set pitch and roll parameters.
|
||||
// ---------------------------------------------------------------
|
||||
void Angle3::set(const Float64 &ad_h, const Float64 &ad_p, const Float64 &ad_r)
|
||||
{
|
||||
m_H = ad_h;
|
||||
m_P = ad_p;
|
||||
m_R = ad_r;
|
||||
}
|
||||
|
||||
// ---------------------------------------------------------------
|
||||
// Function setNull : Sets all values of the angle to 0.0
|
||||
// ---------------------------------------------------------------
|
||||
const Angle3 &Angle3::setNull()
|
||||
{
|
||||
m_H = 0.0;
|
||||
m_P = 0.0;
|
||||
m_R = 0.0;
|
||||
return *this;
|
||||
}
|
||||
+206
@@ -0,0 +1,206 @@
|
||||
// **************************************************************************
|
||||
//
|
||||
// (C) Copyright 2009 Swiss SIMTEC AG
|
||||
//
|
||||
// **************************************************************************
|
||||
//
|
||||
// $HeadURL$
|
||||
// $LastChangedBy$
|
||||
// $LastChangedDate$
|
||||
// $LastChangedRevision$
|
||||
//
|
||||
// **************************************************************************
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <GBL_Global/Types.hpp>
|
||||
#include "Radian64.hpp"
|
||||
|
||||
|
||||
namespace N_Types
|
||||
{
|
||||
/**
|
||||
* Diese Klasse repräsentiert eine 3D Winkel
|
||||
*
|
||||
* @author Daniel.Schmid
|
||||
* @version 1.0
|
||||
* @created 08-Jul-2009 08:28:18
|
||||
*/
|
||||
class Angle3 final
|
||||
{
|
||||
public:
|
||||
/**
|
||||
* Heading
|
||||
*/
|
||||
Radian64 m_H;
|
||||
/**
|
||||
* Pitch
|
||||
*/
|
||||
Radian64 m_P;
|
||||
/**
|
||||
* Roll
|
||||
*/
|
||||
Radian64 m_R;
|
||||
|
||||
Angle3() = default;
|
||||
|
||||
/**
|
||||
* The constuctor initialize all the angles as parameter. The first parameter is
|
||||
* heading, the second is pitch and the third is roll.
|
||||
*
|
||||
* @param ad_h Heading angle
|
||||
* @param ad_p Pitch angle
|
||||
* @param ad_r Roll angle
|
||||
*/
|
||||
Angle3(const Radian64 &ad_h, const Radian64 &ad_p, const Radian64 &ad_r)
|
||||
: m_H(ad_h)
|
||||
, m_P(ad_p)
|
||||
, m_R(ad_r)
|
||||
{}
|
||||
|
||||
/**
|
||||
* Method get: get heading, pitch and roll parameters.
|
||||
*
|
||||
* @param ad_h Heading
|
||||
* @param ad_p Pitch
|
||||
* @param ad_r Roll
|
||||
*/
|
||||
void get(Float64 &ad_h, Float64 &ad_p, Float64 &ad_r) const
|
||||
{
|
||||
ad_h = m_H;
|
||||
ad_p = m_P;
|
||||
ad_r = m_R;
|
||||
}
|
||||
|
||||
/**
|
||||
* Method getEulerAngle : returns Contents of the Angle3. The pitch angle is
|
||||
* limited to +/-PI/2. If the parameter is true and the pitch angles are more
|
||||
* than +/_PI/2, it will be imitted to +/PI/2. If the patameter is false the
|
||||
* heading, pitch and roll will be recalculated as in the following formula: if (
|
||||
* P > PI/2) { P = PI - P H = PI + H R = PI +R } else if ( P < PI/2) { P = -PI -
|
||||
* P H = PI + H R = PI +R }
|
||||
*
|
||||
* @param ab_limitToHalfPI
|
||||
*/
|
||||
Angle3 getEulerAngle(bool ab_limitToHalfPI = true) const;
|
||||
|
||||
const Radian64 &getH() const { return m_H; }
|
||||
const Radian64 &getP() const { return m_P; }
|
||||
const Radian64 &getR() const { return m_R; }
|
||||
void setH(const Radian64 &val) { m_H = val; }
|
||||
void setP(const Radian64 &val) { m_P = val; }
|
||||
void setR(const Radian64 &val) { m_R = val; }
|
||||
|
||||
/**
|
||||
* This method returns the resultant angle between two Euler angles. If an
|
||||
* articulated part of an abject is rotated in ang2 relative to the parent object,
|
||||
* -And if a parent object itself is rotated to ang1 Then the resultant angle of
|
||||
* the ariculated part will be: angle3 = ang1.multiply (ang2) used formula:
|
||||
* C=A*B C: Euler matrix of Resulting angle A: Euler matrix of angle of the
|
||||
* parent Object. B: Euler matrix of angle of the articulated part. Important:
|
||||
* The Pitch angle should not eceed +/- PI/2
|
||||
*
|
||||
* @param ao_angle3
|
||||
*/
|
||||
Angle3 multiply(const Angle3 &ao_angle3) const;
|
||||
|
||||
/**
|
||||
* This method returns the difference angle between two Euler angles. Suppose the
|
||||
* following case: -an articulated part of an abject is rotated in ang2 relative
|
||||
* to the parent object. -the parent object itself is rotated in ang1 -the
|
||||
* resultant angle is ang3. If ang1 and ang3 are given ang2 can be calculated as
|
||||
* follows: angle2 = ang3.multiplInvA(angle1). used formula: C = A*B then B =
|
||||
* A_INV * C A,B,C - Euler matrices. A_Inv - Inverse of A Important: The Pitch
|
||||
* angle should not eceed +/- PI/2
|
||||
*
|
||||
* @param ao_angle3
|
||||
*/
|
||||
Angle3 multiplyInvA(const Angle3 &ao_angle3) const;
|
||||
|
||||
/**
|
||||
* This method returns the difference angle between two Euler angles. Suppose the
|
||||
* following case: -an articulated part of an abject has anmangle ang2 relative
|
||||
* to the parent object -a parent object an angle ang1 -the resultant angle is
|
||||
* ang3. If ang2 and ang3 are given ang1 will be: angle1 = ang3.
|
||||
* multiplyInvB(ang2) used formula: C= A*B then A = C* B_INV A,B,C - Euler
|
||||
* matrices. B_Inv - Inverse of B Important: The Pitch angle should not eceed +/-
|
||||
* PI/2
|
||||
*
|
||||
* @param ao_angle3
|
||||
*/
|
||||
Angle3 multiplyInvB(const Angle3 &ao_angle3) const;
|
||||
|
||||
/**
|
||||
* Minus operator
|
||||
*
|
||||
* @param ao_angle3
|
||||
*/
|
||||
Angle3 operator -(const Angle3 &ao_angle3) const;
|
||||
|
||||
/**
|
||||
* Negation operator
|
||||
*/
|
||||
Angle3 operator -() const;
|
||||
|
||||
/**
|
||||
* Operator!=: Compare all parameters of the argument with the own parameter and
|
||||
* returns true if any of the parameters are not equal
|
||||
*
|
||||
* @param ao_angle3
|
||||
*/
|
||||
bool operator !=(const Angle3 &ao_angle3) const { return !operator ==(ao_angle3); }
|
||||
|
||||
/**
|
||||
* Plus operator
|
||||
*
|
||||
* @param ao_angle3
|
||||
*/
|
||||
Angle3 operator +(const Angle3 &ao_angle3) const;
|
||||
|
||||
/**
|
||||
* Stream operator<<: The angle values may be written to the output stream using
|
||||
* this operator. format: h= xxxx; p=xxxxx; r=xxxx
|
||||
*
|
||||
* @param ao_os
|
||||
* @param ao_angle3
|
||||
*/
|
||||
friend std::ostream &operator <<(std::ostream &ao_os, const Angle3 &ao_angle3)
|
||||
{
|
||||
ao_os << " h=" << ao_angle3.m_H
|
||||
<< "; p=" << ao_angle3.m_P
|
||||
<< "; r=" << ao_angle3.m_R << ";";
|
||||
return ao_os;
|
||||
}
|
||||
friend std::wostream &operator <<(std::wostream &ao_os, const Angle3 &ao_angle3)
|
||||
{
|
||||
ao_os << " h=" << ao_angle3.m_H
|
||||
<< "; p=" << ao_angle3.m_P
|
||||
<< "; r=" << ao_angle3.m_R << ";";
|
||||
return ao_os;
|
||||
}
|
||||
|
||||
/**
|
||||
* Operator==: Compare all parameters of the argument with the own parameter and
|
||||
* returns true if all parameters are equal.
|
||||
*
|
||||
* @param ao_angle3
|
||||
*/
|
||||
bool operator ==(const Angle3 &ao_angle3) const;
|
||||
|
||||
/**
|
||||
* Set pitch and roll parameters.
|
||||
*
|
||||
* @param ad_h Heading
|
||||
* @param ad_p Pitch
|
||||
* @param ad_r Roll
|
||||
*/
|
||||
void set(const Float64 &ad_h, const Float64 &ad_p, const Float64 &ad_r);
|
||||
|
||||
/**
|
||||
* Function setNull : Sets all values of the angle to 0.0
|
||||
*/
|
||||
const Angle3 &setNull();
|
||||
|
||||
};
|
||||
|
||||
}
|
||||
+23
@@ -0,0 +1,23 @@
|
||||
SET(my_SRCS
|
||||
Angle3.cpp
|
||||
Angle3.hpp
|
||||
Coord3.hpp
|
||||
GeoCoord.cpp
|
||||
GeoCoord.hpp
|
||||
Polar3.hpp
|
||||
Radian64.hpp
|
||||
Radian.hpp
|
||||
Vec3.cpp
|
||||
Vec3.hpp
|
||||
)
|
||||
|
||||
NGL_ADD_LIBRARY(AAR SV GBL_Types STATIC ${my_SRCS})
|
||||
NGL_TARGET_LINK_LIBRARIES(GBL_Types
|
||||
PUBLIC
|
||||
GBL_Global
|
||||
LtsCoordTrans
|
||||
)
|
||||
NGL_TARGET_INCLUDE_DIRECTORIES(GBL_Types
|
||||
PUBLIC
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/../
|
||||
)
|
||||
+27
@@ -0,0 +1,27 @@
|
||||
// **************************************************************************
|
||||
//
|
||||
// (C) Copyright 2009 Swiss SIMTEC AG
|
||||
//
|
||||
// **************************************************************************
|
||||
//
|
||||
// $HeadURL$
|
||||
// $LastChangedBy$
|
||||
// $LastChangedDate$
|
||||
// $LastChangedRevision$
|
||||
//
|
||||
// **************************************************************************
|
||||
|
||||
#if !defined(COORD3_HPP_0C4EE71B_E082_4769_AEC3_E07770B68C15)
|
||||
#define COORD3_HPP_0C4EE71B_E082_4769_AEC3_E07770B68C15
|
||||
|
||||
#include "Vec3.hpp"
|
||||
|
||||
/**
|
||||
* @namespace N_Types contains some basic types for 2D and 3D calculations
|
||||
*/
|
||||
namespace N_Types
|
||||
{
|
||||
using Coord3 = Vec3;
|
||||
}
|
||||
|
||||
#endif // !defined(COORD3_HPP_0C4EE71B_E082_4769_AEC3_E07770B68C15)
|
||||
+99
@@ -0,0 +1,99 @@
|
||||
// **************************************************************************
|
||||
//
|
||||
// (C) Copyright 2009 Swiss SIMTEC AG
|
||||
//
|
||||
// **************************************************************************
|
||||
//
|
||||
// $HeadURL$
|
||||
// $LastChangedBy$
|
||||
// $LastChangedDate$
|
||||
// $LastChangedRevision$
|
||||
//
|
||||
// **************************************************************************
|
||||
|
||||
#include "GeoCoord.hpp"
|
||||
#include <LtsCoordTrans/lts_coord_trans.h>
|
||||
#include <QPointF>
|
||||
|
||||
namespace N_Math
|
||||
{
|
||||
|
||||
GeoCoord::GeoCoord()
|
||||
: m_LlLat(0.0)
|
||||
, m_LlLong(0.0)
|
||||
, m_height(0.0)
|
||||
, m_coordValid(false)
|
||||
{}
|
||||
|
||||
void GeoCoord::setLlPositionDegree(Float64 ad_lat, Float64 ad_long, Float64 ad_height)
|
||||
{
|
||||
m_LlLat = ad_lat;
|
||||
m_LlLong = ad_long;
|
||||
m_height = ad_height;
|
||||
|
||||
convertLlToUtm();
|
||||
|
||||
m_coordValid = true;
|
||||
}
|
||||
|
||||
void GeoCoord::setTotalUtmPosition(Float64 ad_east, Float64 ad_north, Float64 ad_height, SInt32 ai_zone, bool ai_northP)
|
||||
{
|
||||
m_utmCoord.x = ad_east;
|
||||
m_utmCoord.y = ad_north;
|
||||
m_utmCoord.zone = ai_zone;
|
||||
m_utmCoord.northp = ai_northP;
|
||||
m_height = ad_height;
|
||||
|
||||
convertUtmToLl();
|
||||
|
||||
m_coordValid = true;
|
||||
}
|
||||
|
||||
N_Types::Radian64 GeoCoord::getAzimuth(const GeoCoord &ao_Coordinate) const
|
||||
{
|
||||
if (!m_coordValid || !ao_Coordinate.m_coordValid)
|
||||
return N_Types::Radian64(0.0);
|
||||
|
||||
double d_b = LtsCoordTrans::deg2rad() * (90.0 - ao_Coordinate.m_LlLat);
|
||||
double d_c = LtsCoordTrans::deg2rad() * (90.0 - m_LlLat);
|
||||
double d_A = ao_Coordinate.m_LlLong - m_LlLong;
|
||||
|
||||
while (d_A > 180.0)
|
||||
d_A -= 360.0;
|
||||
|
||||
while (d_A <= -180.0)
|
||||
d_A += 360.0;
|
||||
d_A = LtsCoordTrans::deg2rad() * d_A;
|
||||
|
||||
const double d_CosA = cos(d_b) * cos(d_c) + sin(d_b) * sin(d_c) * cos(d_A);
|
||||
double d_a = acos(d_CosA);
|
||||
|
||||
if (fabs(d_a) <= std::numeric_limits<decltype(d_a)>::epsilon())
|
||||
return N_Types::Radian64(0.0); // Azimuth in radians
|
||||
|
||||
const double d_SinB = sin(d_b) * sin(d_A) / sin(d_a);
|
||||
Float64 d_B = asin(d_SinB);
|
||||
|
||||
if (d_A < 0)
|
||||
d_B = -d_B;
|
||||
|
||||
if (ao_Coordinate.m_LlLat < m_LlLat)
|
||||
d_B = M_PI - d_B;
|
||||
return N_Types::Radian64(d_B); // Azimuth in radians
|
||||
}
|
||||
|
||||
void GeoCoord::convertLlToUtm(SInt32 ai_overrideZone)
|
||||
{
|
||||
m_utmCoord = LtsCoordTrans::UtmCoordinate::fromGeographic(m_LlLong * LtsCoordTrans::deg2rad(),
|
||||
m_LlLat * LtsCoordTrans::deg2rad(),
|
||||
ai_overrideZone);
|
||||
}
|
||||
|
||||
void GeoCoord::convertUtmToLl()
|
||||
{
|
||||
const QPointF lonLat = m_utmCoord.geographic();
|
||||
m_LlLat = lonLat.y() * LtsCoordTrans::rad2deg();
|
||||
m_LlLong = lonLat.x() * LtsCoordTrans::rad2deg();
|
||||
}
|
||||
|
||||
} // namespace N_Math
|
||||
+118
@@ -0,0 +1,118 @@
|
||||
// **************************************************************************
|
||||
//
|
||||
// (C) Copyright 2009 Swiss SIMTEC AG
|
||||
//
|
||||
// **************************************************************************
|
||||
//
|
||||
// $HeadURL$
|
||||
// $LastChangedBy$
|
||||
// $LastChangedDate$
|
||||
// $LastChangedRevision$
|
||||
//
|
||||
// **************************************************************************
|
||||
|
||||
#pragma once
|
||||
#include <GBL_Global/Types.hpp>
|
||||
|
||||
// from stereotyped includes
|
||||
#include <GBL_Types/Radian64.hpp>
|
||||
#include <LtsCoordTrans/lts_coord_trans.h>
|
||||
|
||||
namespace N_Math
|
||||
{
|
||||
|
||||
/**
|
||||
* This class is defined for converting different Geo coordinate systems. This
|
||||
* defines the following coordinate systems:
|
||||
* 1. Geo coordinates (Latitude/Longitude/Altitude).
|
||||
* 2. UTM coordinates (UTMEast, UTMNorth, UTMHeight, UTMZone)
|
||||
*/
|
||||
class GeoCoord
|
||||
{
|
||||
public:
|
||||
/**
|
||||
* ## Constructors (generated)
|
||||
*/
|
||||
GeoCoord();
|
||||
|
||||
/**
|
||||
* This method set the Geo Coordinates in degree. All other coordinates will be
|
||||
* converted automatically.
|
||||
*
|
||||
* @param ad_lat Latitude in degrees
|
||||
* @param ad_long Longitude in degrees
|
||||
* @param ad_height Height in meter
|
||||
*/
|
||||
void setLlPositionDegree(Float64 ad_lat, Float64 ad_long, Float64 ad_height);
|
||||
|
||||
/**
|
||||
* This method set the UTM Coordinates completely. All other coordinates will be
|
||||
* converted automatically.
|
||||
*
|
||||
* @param ad_east east value in meter
|
||||
* @param ad_north north value in meter
|
||||
* @param ad_height height in meter
|
||||
* @param ai_zone zone number
|
||||
* @param ai_northp northern hemisphere
|
||||
*/
|
||||
void setTotalUtmPosition(Float64 ad_east, Float64 ad_north, Float64 ad_height, SInt32 ai_zone, bool ai_northP);
|
||||
|
||||
/**
|
||||
* This method returns the Azimuth of the Geo coordinates in radians.
|
||||
*
|
||||
* @param ao_Coordinate
|
||||
*/
|
||||
N_Types::Radian64 getAzimuth(const GeoCoord &ao_Coordinate) const;
|
||||
|
||||
|
||||
double utmEasting() const { return m_utmCoord.x; }
|
||||
double utmNorthing() const { return m_utmCoord.y; }
|
||||
int utmZone() const { return m_utmCoord.zone; }
|
||||
bool northP() const { return m_utmCoord.northp; }
|
||||
|
||||
double latDeg() const { return m_LlLat; }
|
||||
double lonDeg() const { return m_LlLong; }
|
||||
|
||||
double height() const { return m_height; }
|
||||
private:
|
||||
/**
|
||||
* Converts lat/long to UTM coordinatess. Equations from USGS Bulletin 1532. East
|
||||
* longitudes are positive, West longitudes are negative. North latitudes are
|
||||
* positive, South latitudes are negative. Latitude and longitudes are in decimal
|
||||
* degrees.
|
||||
*
|
||||
* @param ai_overrideZone
|
||||
*/
|
||||
void convertLlToUtm(SInt32 ai_overrideZone = -1);
|
||||
|
||||
/**
|
||||
* Converts UTM coords to lat/long. Equations from USGS Bulletin 1532. East
|
||||
* ongitudes are positive, West longitudes are negative. North latitudes are
|
||||
* positive, South latitudes are negative. Lat and Long are in decimal degrees.
|
||||
*/
|
||||
void convertUtmToLl();
|
||||
private:
|
||||
/**
|
||||
* Latitude of Geo Coordinates (Degrees)
|
||||
*/
|
||||
Float64 m_LlLat;
|
||||
/**
|
||||
* Longitude of Geo Coordinates (Degrees)
|
||||
*/
|
||||
Float64 m_LlLong;
|
||||
/**
|
||||
* Height of Geo Coordinates (Degrees)
|
||||
*/
|
||||
Float64 m_height;
|
||||
|
||||
// the utm coordinate
|
||||
LtsCoordTrans::UtmCoordinate m_utmCoord;
|
||||
|
||||
/**
|
||||
* This Flag is to check the validity of the coordinates. If the value is equal to
|
||||
* 1 the coordinate is not valid otherwise valid.
|
||||
*/
|
||||
bool m_coordValid;
|
||||
};
|
||||
|
||||
}
|
||||
+131
@@ -0,0 +1,131 @@
|
||||
// **************************************************************************
|
||||
//
|
||||
// (C) Copyright 2009 Swiss SIMTEC AG
|
||||
//
|
||||
// **************************************************************************
|
||||
//
|
||||
// $HeadURL$
|
||||
// $LastChangedBy$
|
||||
// $LastChangedDate$
|
||||
// $LastChangedRevision$
|
||||
//
|
||||
// **************************************************************************
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <GBL_Global/Types.hpp>
|
||||
#include "Radian64.hpp"
|
||||
|
||||
|
||||
namespace N_Types
|
||||
{
|
||||
/**
|
||||
* This class represents a 3D polar coordinates
|
||||
*
|
||||
* @author Daniel.Schmid
|
||||
* @version 1.0
|
||||
* @created 08-Jul-2009 08:28:57
|
||||
*/
|
||||
class Polar3 final
|
||||
{
|
||||
public:
|
||||
|
||||
/**
|
||||
* Azimuth in radian
|
||||
*/
|
||||
Radian64 m_Azimuth = 0.0;
|
||||
/**
|
||||
* Elevation in radian
|
||||
*/
|
||||
Radian64 m_Elevation = 0.0;
|
||||
/**
|
||||
* Radius in meters
|
||||
*/
|
||||
Float64 m_Radius = 0.0;
|
||||
|
||||
|
||||
/**
|
||||
* ## Constructors (generated)
|
||||
*/
|
||||
Polar3() = default;
|
||||
|
||||
/**
|
||||
* Constructor with radius, azimuth and elevation as parameters.
|
||||
*
|
||||
* @param ad_radius Radius in meters
|
||||
* @param ad_azimuth Azimuth in radian
|
||||
* @param ad_elevation Elevation in radian
|
||||
*/
|
||||
Polar3(Float64 ad_radius, Radian64 ad_azimuth, Radian64 ad_elevation)
|
||||
: m_Azimuth(ad_azimuth)
|
||||
, m_Elevation(ad_elevation)
|
||||
, m_Radius(ad_radius)
|
||||
{}
|
||||
|
||||
/**
|
||||
* Azimuth of the polar coordinate in meters
|
||||
*/
|
||||
Radian64 getAzimuth() const
|
||||
{
|
||||
return m_Azimuth;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param a_azimuth
|
||||
*/
|
||||
void setAzimuth(Radian64 a_azimuth)
|
||||
{
|
||||
m_Azimuth = a_azimuth;
|
||||
}
|
||||
|
||||
/**
|
||||
* Elevation of the polar coordinate in meters
|
||||
*/
|
||||
Radian64 getElevation() const
|
||||
{
|
||||
return m_Elevation;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param a_elevation
|
||||
*/
|
||||
void setElevation(Radian64 a_elevation)
|
||||
{
|
||||
m_Elevation = a_elevation;
|
||||
}
|
||||
|
||||
/**
|
||||
* Radius of the polar coordinate in meters.
|
||||
*/
|
||||
Float64 getRadius() const
|
||||
{
|
||||
return m_Radius;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param a_radius
|
||||
*/
|
||||
void setRadius(Float64 a_radius)
|
||||
{
|
||||
m_Radius = a_radius;
|
||||
}
|
||||
|
||||
/**
|
||||
* Stream operator<<: Writes attibute values to the output stream in the
|
||||
* following format: radius=???; y=???; azimuth=???; elevation=???;
|
||||
*
|
||||
* @param ao_os
|
||||
* @param ao_polar3
|
||||
*/
|
||||
friend std::ostream &operator <<(std::ostream &ao_os, const Polar3 &ao_polar3)
|
||||
{
|
||||
ao_os << " radius=" << ao_polar3.m_Radius << "; azimuth=" << ao_polar3.m_Azimuth << "; elevation=" << ao_polar3.m_Elevation << ";";
|
||||
return ao_os;
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
}
|
||||
+249
@@ -0,0 +1,249 @@
|
||||
// **************************************************************************
|
||||
//
|
||||
// (C) Copyright 2009 Swiss SIMTEC AG
|
||||
//
|
||||
// **************************************************************************
|
||||
//
|
||||
// $HeadURL$
|
||||
// $LastChangedBy$
|
||||
// $LastChangedDate$
|
||||
// $LastChangedRevision$
|
||||
//
|
||||
// **************************************************************************
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <GBL_Global/Constants.hpp>
|
||||
#include <GBL_Global/Types.hpp>
|
||||
#include <cmath>
|
||||
#include <ostream>
|
||||
|
||||
|
||||
namespace N_Types
|
||||
{
|
||||
/**
|
||||
* This class is the template for all Radian derivates
|
||||
*
|
||||
* @author Daniel.Schmid
|
||||
* @version 1.0
|
||||
* @created 08-Jul-2009 13:28:28
|
||||
*/
|
||||
template<class T>
|
||||
class Radian
|
||||
{
|
||||
public:
|
||||
|
||||
Radian() = default;
|
||||
|
||||
Radian(T ao_radian)
|
||||
: m_MyRadian(convert(ao_radian))
|
||||
{}
|
||||
|
||||
/**
|
||||
* Returns its value in the template type T in degrees range +/-180 degrees
|
||||
*/
|
||||
T getDegree() const
|
||||
{
|
||||
return (m_MyRadian * N_SST::INV_PI_OVER_180);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns its value in the template type T
|
||||
*/
|
||||
T getItsValue() const
|
||||
{
|
||||
return m_MyRadian;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns its value in degree in range 0 to 360.
|
||||
*/
|
||||
T getZeroTo360() const
|
||||
{
|
||||
if (m_MyRadian < 0.0)
|
||||
return ((m_MyRadian + N_SST::TWO_PI) * (N_SST::INV_PI_OVER_180));
|
||||
return (m_MyRadian * N_SST::INV_PI_OVER_180);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns its value in degree in range 0 to Two PI
|
||||
*/
|
||||
T getZeroToTwoPi() const
|
||||
{
|
||||
if (m_MyRadian < 0.0)
|
||||
return (m_MyRadian + N_SST::TWO_PI);
|
||||
return m_MyRadian;
|
||||
}
|
||||
|
||||
/**
|
||||
* Operator -=
|
||||
*
|
||||
* @param ao_radian
|
||||
*/
|
||||
const Radian<T> &operator -=(const Radian<T> &ao_radian)
|
||||
{
|
||||
m_MyRadian = convert(m_MyRadian - ao_radian.m_MyRadian);
|
||||
return *this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Inequality operator. Returns true if the values of the argument is not equal
|
||||
* to the attribute value.
|
||||
*
|
||||
* @param ao_radian
|
||||
*/
|
||||
bool operator !=(const Radian<T> &ao_radian) const
|
||||
{
|
||||
return (m_MyRadian != ao_radian.m_MyRadian);
|
||||
}
|
||||
|
||||
/**
|
||||
* Inequality operator. Returns true if the values of the argument is not equal
|
||||
* to the attribute value.
|
||||
*
|
||||
* @param ad_value
|
||||
*/
|
||||
bool operator !=(T ad_value) const
|
||||
{
|
||||
return (m_MyRadian != ad_value);
|
||||
}
|
||||
|
||||
/**
|
||||
* Operator *=
|
||||
*
|
||||
* @param ao_radian
|
||||
*/
|
||||
const Radian<T> &operator *=(const Radian<T> &ao_radian)
|
||||
{
|
||||
m_MyRadian = convert(m_MyRadian * ao_radian.m_MyRadian);
|
||||
return *this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Operator /=
|
||||
*
|
||||
* @param ao_radian
|
||||
*/
|
||||
const Radian<T> &operator /=(const Radian<T> &ao_radian)
|
||||
{
|
||||
m_MyRadian = convert(m_MyRadian / ao_radian.m_MyRadian);
|
||||
return *this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Operator +=
|
||||
*
|
||||
* @param ao_radian
|
||||
*/
|
||||
const Radian<T> &operator +=(const Radian<T> &ao_radian)
|
||||
{
|
||||
m_MyRadian = convert(m_MyRadian + ao_radian.m_MyRadian);
|
||||
return *this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Stream operator << . This enables the user to write the radian into output
|
||||
* staream.
|
||||
*
|
||||
* @param apo_os
|
||||
* @param ao_radian
|
||||
*/
|
||||
friend std::ostream &operator <<(std::ostream &apo_os, const Radian<T> &ao_radian)
|
||||
{
|
||||
apo_os << ao_radian.m_MyRadian;
|
||||
return apo_os;
|
||||
}
|
||||
|
||||
/**
|
||||
* Equality operator. Returns true if the values of the argument is equal to the
|
||||
* attribute value.
|
||||
*
|
||||
* @param ao_radian
|
||||
*/
|
||||
bool operator ==(const Radian<T> &ao_radian) const
|
||||
{
|
||||
return (m_MyRadian == ao_radian.m_MyRadian);
|
||||
}
|
||||
|
||||
/**
|
||||
* Equality operator. Returns true if the values of the argument is equal to the
|
||||
* attribute value.
|
||||
*
|
||||
* @param ad_value
|
||||
*/
|
||||
bool operator ==(T ad_value) const
|
||||
{
|
||||
return (m_MyRadian == ad_value);
|
||||
}
|
||||
|
||||
/**
|
||||
* Stream operator >>. This enables the user to read the radian from the iutput
|
||||
* stream.
|
||||
*
|
||||
* @param apo_is
|
||||
* @param ao_radian
|
||||
*/
|
||||
friend std::istream &operator >>(std::istream &apo_is, Radian<T> &ao_radian)
|
||||
{
|
||||
// M_TRACE_METHOD;
|
||||
|
||||
T Lg_Tmp ;
|
||||
apo_is >> Lg_Tmp;
|
||||
Lg_Tmp = fmod(Lg_Tmp, N_SST::TWO_PI);
|
||||
if (Lg_Tmp > M_PI)
|
||||
Lg_Tmp -= N_SST::TWO_PI;
|
||||
if (Lg_Tmp <= -M_PI)
|
||||
Lg_Tmp += N_SST::TWO_PI;
|
||||
ao_radian.m_MyRadian = Lg_Tmp;
|
||||
return apo_is;
|
||||
}
|
||||
|
||||
/**
|
||||
* Type conversion operator.
|
||||
*/
|
||||
operator T() const
|
||||
{
|
||||
return m_MyRadian;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set its value in degree. The value will be converted internally and stored in
|
||||
* the attribute as radian.
|
||||
*
|
||||
* @param ao_degree
|
||||
*/
|
||||
void setDegree(T ao_degree)
|
||||
{
|
||||
m_MyRadian = convert(ao_degree * N_SST::PI_OVER_180);
|
||||
}
|
||||
|
||||
private:
|
||||
|
||||
/**
|
||||
* Value of the template class.
|
||||
*/
|
||||
T m_MyRadian = T();
|
||||
|
||||
|
||||
/**
|
||||
* This function converts float values in radian.
|
||||
*
|
||||
* @param ao_radian
|
||||
*/
|
||||
static T convert(const T ao_radian)
|
||||
{
|
||||
T Lg_Tmp = ao_radian;
|
||||
|
||||
Lg_Tmp = fmod(Lg_Tmp, N_SST::TWO_PI); // ###Sr add (double)
|
||||
if (Lg_Tmp > M_PI)
|
||||
Lg_Tmp -= N_SST::TWO_PI;
|
||||
|
||||
if (Lg_Tmp <= -M_PI)
|
||||
Lg_Tmp += N_SST::TWO_PI;
|
||||
|
||||
return (Lg_Tmp);
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
}
|
||||
+30
@@ -0,0 +1,30 @@
|
||||
// **************************************************************************
|
||||
//
|
||||
// (C) Copyright 2009 Swiss SIMTEC AG
|
||||
//
|
||||
// **************************************************************************
|
||||
//
|
||||
// $HeadURL$
|
||||
// $LastChangedBy$
|
||||
// $LastChangedDate$
|
||||
// $LastChangedRevision$
|
||||
//
|
||||
// **************************************************************************
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <GBL_Global/Types.hpp>
|
||||
#include "Radian.hpp"
|
||||
|
||||
namespace N_Types
|
||||
{
|
||||
/**
|
||||
* This is a radian of 64 bit resolution
|
||||
*
|
||||
* @author Daniel.Schmid
|
||||
* @version 1.0
|
||||
* @created 08-Jul-2009 14:45:20
|
||||
*/
|
||||
using Radian64 = Radian<Float64>;
|
||||
|
||||
}
|
||||
+362
@@ -0,0 +1,362 @@
|
||||
// **************************************************************************
|
||||
//
|
||||
// (C) Copyright 2009 Swiss SIMTEC AG
|
||||
//
|
||||
// **************************************************************************
|
||||
//
|
||||
// $HeadURL$
|
||||
// $LastChangedBy$
|
||||
// $LastChangedDate$
|
||||
// $LastChangedRevision$
|
||||
//
|
||||
// **************************************************************************
|
||||
|
||||
// manual class headers
|
||||
#include "Vec3.hpp"
|
||||
#include <iostream>
|
||||
|
||||
using N_Types::Vec3;
|
||||
|
||||
|
||||
using namespace N_Types;
|
||||
|
||||
|
||||
// ---------------------------------------------------------------
|
||||
// This method returns the 3D polar coordinates of the given
|
||||
// vector.
|
||||
// ---------------------------------------------------------------
|
||||
Polar3 Vec3::getPolar3() const
|
||||
{
|
||||
Polar3 o_polar3;
|
||||
|
||||
if ((m_X == 00) && (m_Y == 0.0)) // if x and y are zero
|
||||
{
|
||||
if (m_Z == 0.0) // if z is zero it is a null Coordtor
|
||||
{
|
||||
o_polar3.m_Radius = 0.0;
|
||||
o_polar3.m_Azimuth = 0.0;
|
||||
o_polar3.m_Elevation = 0.0;
|
||||
}
|
||||
else // it is Coordtor along z axis
|
||||
{
|
||||
o_polar3.m_Radius = fabs(m_Z);
|
||||
o_polar3.m_Azimuth = 0.0;
|
||||
o_polar3.m_Elevation = atan2(m_Z, 0.0);
|
||||
}
|
||||
}
|
||||
else // if x and y not zero
|
||||
{
|
||||
o_polar3.m_Azimuth = atan2(-m_X, m_Y); // negation of x is for world coord system
|
||||
const auto d_temp = pow(m_X, Float64(2)) + pow(m_Y, Float64(2)); // x**2 + y**2
|
||||
o_polar3.m_Elevation = atan2(m_Z, sqrt(d_temp)); // z / sqrt(x**2 + y**2)
|
||||
o_polar3.m_Radius = sqrt(d_temp + pow(m_Z, Float64(2))); // sqrt(x**2 + y**2 + z**2)
|
||||
}
|
||||
|
||||
return o_polar3;
|
||||
}
|
||||
|
||||
|
||||
// ---------------------------------------------------------------
|
||||
// This method set 3D polar coordinates to the vector.
|
||||
// ---------------------------------------------------------------
|
||||
void Vec3::setPolar3(const Polar3 &ao_polar3)
|
||||
{
|
||||
Polar3 o_polar3(ao_polar3);
|
||||
|
||||
if (ao_polar3.m_Radius == 0.0) // if the magnitude is zero it is a null Vector
|
||||
{
|
||||
m_X = 0.0;
|
||||
m_Y = 0.0;
|
||||
m_Z = 0.0;
|
||||
}
|
||||
else
|
||||
{
|
||||
const auto d_temp = o_polar3.m_Radius * cos(o_polar3.m_Elevation); // r * cos(a)
|
||||
m_Z = o_polar3.m_Radius * sin(o_polar3.m_Elevation); // r * sin(a)
|
||||
m_Y = d_temp * cos(o_polar3.m_Azimuth); // y component
|
||||
m_X = -d_temp * sin(o_polar3.m_Azimuth); // x component. negation because of wcs
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// ---------------------------------------------------------------
|
||||
// This method returns the cross product of the vectors.
|
||||
// ---------------------------------------------------------------
|
||||
Vec3 Vec3::cross(const Vec3 &ao_vec3) const
|
||||
{
|
||||
Vec3 o_vec3;
|
||||
|
||||
o_vec3.m_X = ((m_Y * ao_vec3.m_Z) - (m_Z * ao_vec3.m_Y));
|
||||
o_vec3.m_Y = ((m_Z * ao_vec3.m_X) - (m_X * ao_vec3.m_Z));
|
||||
o_vec3.m_Z = ((m_X * ao_vec3.m_Y) - (m_Y * ao_vec3.m_X));
|
||||
|
||||
return o_vec3;
|
||||
}
|
||||
|
||||
|
||||
// ---------------------------------------------------------------
|
||||
// This method returns the direction of the difference vector
|
||||
// ---------------------------------------------------------------
|
||||
Vec3 Vec3::direction(const Vec3 &ao_vec3)
|
||||
{
|
||||
Vec3 o_vec3 = ao_vec3;
|
||||
Float64 d_magnitude = o_vec3.magnitude();
|
||||
|
||||
if (d_magnitude != 0.0)
|
||||
{
|
||||
o_vec3.m_X /= d_magnitude;
|
||||
o_vec3.m_Y /= d_magnitude;
|
||||
o_vec3.m_Z /= d_magnitude;
|
||||
}
|
||||
|
||||
return o_vec3;
|
||||
}
|
||||
|
||||
|
||||
// ---------------------------------------------------------------
|
||||
// This method returns the distance between two coordinates.
|
||||
// ---------------------------------------------------------------
|
||||
Float64 Vec3::length(const Vec3 &ao_coord3) const
|
||||
{
|
||||
Vec3 o_coord3(*this);
|
||||
o_coord3 -= ao_coord3;
|
||||
return o_coord3.magnitude();
|
||||
}
|
||||
|
||||
// ---------------------------------------------------------------
|
||||
// This method returns the magnitude of the vector.
|
||||
// ---------------------------------------------------------------
|
||||
Float64 Vec3::magnitude() const
|
||||
{
|
||||
return sqrt(pow(m_X, Float64(2)) + pow(m_Y, Float64(2)) + pow(m_Z, Float64(2))); // sqrt(x**2 + y**2 + z**2)
|
||||
}
|
||||
|
||||
// ---------------------------------------------------------------
|
||||
// Operator "-". Negation operator. Each attribute is negated.
|
||||
// ---------------------------------------------------------------
|
||||
Vec3 Vec3::operator -() const
|
||||
{
|
||||
Vec3 po_tmp;
|
||||
|
||||
po_tmp.m_X = -m_X;
|
||||
po_tmp.m_Y = -m_Y;
|
||||
po_tmp.m_Z = -m_Z;
|
||||
|
||||
return po_tmp;
|
||||
}
|
||||
|
||||
|
||||
// ---------------------------------------------------------------
|
||||
// Operator "-". Subtraction of 2 vectors. The attributes of
|
||||
// the calling object remain unchanged.
|
||||
// ---------------------------------------------------------------
|
||||
Vec3 Vec3::operator -(const Vec3 &ao_vec3) const
|
||||
{
|
||||
Vec3 pr_Vec3(*this);
|
||||
pr_Vec3 -= ao_vec3;
|
||||
return pr_Vec3;
|
||||
}
|
||||
|
||||
// ---------------------------------------------------------------
|
||||
// Operator "*". The attributes are multiplied by the
|
||||
// argument and the product is returned. The attributes of
|
||||
// the calling object remain unchanged.
|
||||
// ---------------------------------------------------------------
|
||||
Vec3 Vec3::operator *(Float64 ad_scale) const
|
||||
{
|
||||
Vec3 o_vec3(*this);
|
||||
o_vec3.m_X *= ad_scale;
|
||||
o_vec3.m_Y *= ad_scale;
|
||||
o_vec3.m_Z *= ad_scale;
|
||||
return o_vec3;
|
||||
}
|
||||
|
||||
|
||||
// ---------------------------------------------------------------
|
||||
// Operator "*". Dot product (scalar product) of 2 vectors A.
|
||||
// B = |A|*|B|*cos (alpha), where alpha is the angle between
|
||||
// the vectors.
|
||||
// ---------------------------------------------------------------
|
||||
Float64 Vec3::operator *(const Vec3 &ao_vec3) const
|
||||
{
|
||||
return ((m_X * ao_vec3.m_X) + (m_Y * ao_vec3.m_Y) + (m_Z * ao_vec3.m_Z));
|
||||
}
|
||||
|
||||
|
||||
// ---------------------------------------------------------------
|
||||
// Operator "*=". The attributes are multiplied by the
|
||||
// argument and the product is returned. The attributes of
|
||||
// the calling object are set to the changed value.
|
||||
// ---------------------------------------------------------------
|
||||
Vec3 &Vec3::operator *=(Float64 ad_scale)
|
||||
{
|
||||
m_X *= ad_scale;
|
||||
m_Y *= ad_scale;
|
||||
m_Z *= ad_scale;
|
||||
return *this;
|
||||
}
|
||||
|
||||
|
||||
// ---------------------------------------------------------------
|
||||
// Operator "/". The attributes are divided by the argument
|
||||
// and the result is returned. The attributes of the calling
|
||||
// object remain unchanged.
|
||||
// ---------------------------------------------------------------
|
||||
Vec3 Vec3::operator /(Float64 ad_scale) const
|
||||
{
|
||||
Vec3 o_vec3(*this);
|
||||
o_vec3.m_X /= ad_scale;
|
||||
o_vec3.m_Y /= ad_scale;
|
||||
o_vec3.m_Z /= ad_scale;
|
||||
return o_vec3;
|
||||
}
|
||||
|
||||
|
||||
// ---------------------------------------------------------------
|
||||
// Operator "/=". The attributes are divided by the argument
|
||||
// and the product is returned. The attributes of the calling
|
||||
// object are set to the changed value.
|
||||
// ---------------------------------------------------------------
|
||||
Vec3 &Vec3::operator /=(Float64 ad_scale)
|
||||
{
|
||||
m_X /= ad_scale;
|
||||
m_Y /= ad_scale;
|
||||
m_Z /= ad_scale;
|
||||
return *this;
|
||||
}
|
||||
|
||||
|
||||
// ---------------------------------------------------------------
|
||||
// Operator "+". Addition of 2 vectors. The attributes of the
|
||||
// calling object remain unchanged.
|
||||
// ---------------------------------------------------------------
|
||||
Vec3 Vec3::operator +(const Vec3 &ao_vec3) const
|
||||
{
|
||||
Vec3 pr_Vec3(*this);
|
||||
pr_Vec3 += ao_vec3;
|
||||
return pr_Vec3;
|
||||
}
|
||||
|
||||
|
||||
// ---------------------------------------------------------------
|
||||
// Operator "+=". Addition of 2 vectors.
|
||||
// ---------------------------------------------------------------
|
||||
Vec3 &Vec3::operator +=(const Vec3 &ao_vec3)
|
||||
{
|
||||
m_X += ao_vec3.m_X;
|
||||
m_Y += ao_vec3.m_Y;
|
||||
m_Z += ao_vec3.m_Z;
|
||||
return *this;
|
||||
}
|
||||
|
||||
// ---------------------------------------------------------------
|
||||
// Operator "-=". Subtraction of 2 vectors.
|
||||
// ---------------------------------------------------------------
|
||||
Vec3 &Vec3::operator -=(const Vec3 &ao_vec3)
|
||||
{
|
||||
m_X -= ao_vec3.m_X;
|
||||
m_Y -= ao_vec3.m_Y;
|
||||
m_Z -= ao_vec3.m_Z;
|
||||
return *this;
|
||||
}
|
||||
|
||||
|
||||
// ---------------------------------------------------------------
|
||||
// Equality operator. This operator returns true if the
|
||||
// vectors are identical.
|
||||
// ---------------------------------------------------------------
|
||||
bool Vec3::operator ==(const Vec3 &ao_vec3) const
|
||||
{
|
||||
return ((m_X == ao_vec3.m_X) && (m_Y == ao_vec3.m_Y) && (m_Z == ao_vec3.m_Z));
|
||||
}
|
||||
|
||||
|
||||
// ---------------------------------------------------------------
|
||||
// This method is for rotation the vector about Y, X, and then
|
||||
// in Z-axis (roll, pitch, heading).
|
||||
// ---------------------------------------------------------------
|
||||
Vec3 Vec3::rotate(const Angle3 &ao_angle3) const
|
||||
{
|
||||
Vec3 o_vec3 = *this;
|
||||
o_vec3 = o_vec3.rotateY(ao_angle3.m_R);
|
||||
o_vec3 = o_vec3.rotateX(ao_angle3.m_P);
|
||||
o_vec3 = o_vec3.rotateZ(ao_angle3.m_H);
|
||||
|
||||
return o_vec3;
|
||||
}
|
||||
|
||||
|
||||
// ---------------------------------------------------------------
|
||||
// This method is for rotation the vector about Z, X, and then
|
||||
// in Y-axis (heading, pitch, and roll).
|
||||
// ---------------------------------------------------------------
|
||||
Vec3 Vec3::rotateBack(const Angle3 &ao_angle3) const
|
||||
{
|
||||
Vec3 o_vec3 = *this;
|
||||
o_vec3 = o_vec3.rotateZ(ao_angle3.m_H);
|
||||
o_vec3 = o_vec3.rotateX(ao_angle3.m_P);
|
||||
o_vec3 = o_vec3.rotateY(ao_angle3.m_R);
|
||||
|
||||
return o_vec3;
|
||||
}
|
||||
|
||||
|
||||
// ---------------------------------------------------------------
|
||||
// This method is for rotation the vector about X-axis (pitch).
|
||||
// ---------------------------------------------------------------
|
||||
Vec3 Vec3::rotateX(const Radian64 &ad_pitch) const
|
||||
{
|
||||
if (ad_pitch == 0.0)
|
||||
return *this;
|
||||
|
||||
Float64 d_sin = sin(ad_pitch);
|
||||
Float64 d_cos = cos(ad_pitch);
|
||||
|
||||
Vec3 o_vec3;
|
||||
o_vec3.m_X = m_X;
|
||||
o_vec3.m_Y = (m_Y * d_cos) - (m_Z * d_sin);
|
||||
o_vec3.m_Z = (m_Y * d_sin) + (m_Z * d_cos);
|
||||
|
||||
return o_vec3;
|
||||
}
|
||||
|
||||
|
||||
// ---------------------------------------------------------------
|
||||
// This method is for rotation the vector about Y-axis (roll).
|
||||
// ---------------------------------------------------------------
|
||||
Vec3 Vec3::rotateY(const Radian64 &ad_roll) const
|
||||
{
|
||||
if (ad_roll == 0.0)
|
||||
return *this;
|
||||
|
||||
Float64 d_sin = sin(ad_roll);
|
||||
Float64 d_cos = cos(ad_roll);
|
||||
|
||||
Vec3 o_vec3;
|
||||
o_vec3.m_X = (m_Z * d_sin) + (m_X * d_cos);
|
||||
o_vec3.m_Y = m_Y;
|
||||
o_vec3.m_Z = (m_Z * d_cos) - (m_X * d_sin);
|
||||
|
||||
return o_vec3;
|
||||
}
|
||||
|
||||
|
||||
// ---------------------------------------------------------------
|
||||
// This method is for rotation the vector about Z-axis
|
||||
// (heading).
|
||||
// ---------------------------------------------------------------
|
||||
Vec3 Vec3::rotateZ(const Radian64 &ad_heading) const
|
||||
{
|
||||
if (ad_heading == 0.0)
|
||||
return *this;
|
||||
|
||||
Float64 d_sin = sin(ad_heading);
|
||||
Float64 d_cos = cos(ad_heading);
|
||||
|
||||
Vec3 o_vec3;
|
||||
o_vec3.m_X = (m_X * d_cos) - (m_Y * d_sin);
|
||||
o_vec3.m_Y = (m_X * d_sin) + (m_Y * d_cos);
|
||||
o_vec3.m_Z = m_Z;
|
||||
|
||||
return o_vec3;
|
||||
}
|
||||
+338
@@ -0,0 +1,338 @@
|
||||
// **************************************************************************
|
||||
//
|
||||
// (C) Copyright 2009 Swiss SIMTEC AG
|
||||
//
|
||||
// **************************************************************************
|
||||
//
|
||||
// $HeadURL$
|
||||
// $LastChangedBy$
|
||||
// $LastChangedDate$
|
||||
// $LastChangedRevision$
|
||||
//
|
||||
// **************************************************************************
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <GBL_Global/Types.hpp>
|
||||
#include <istream>
|
||||
#include "Radian64.hpp"
|
||||
#include "Angle3.hpp"
|
||||
#include "Polar3.hpp"
|
||||
|
||||
|
||||
namespace N_Types
|
||||
{
|
||||
/**
|
||||
* This class represents a 3D vector
|
||||
*
|
||||
* @author Daniel.Schmid
|
||||
* @version 1.0
|
||||
* @created 08-Jul-2009 08:27:44
|
||||
*/
|
||||
class Vec3
|
||||
{
|
||||
public:
|
||||
|
||||
/**
|
||||
* X value of the 3D cartessian coordinate.
|
||||
*/
|
||||
Float64 m_X = 0.0;
|
||||
/**
|
||||
* Y value of the 3D cartessian coordinate.
|
||||
*/
|
||||
Float64 m_Y = 0.0;
|
||||
/**
|
||||
* Z value of the 3D cartessian coordinate.
|
||||
*/
|
||||
Float64 m_Z = 0.0;
|
||||
|
||||
|
||||
Vec3() = default;
|
||||
|
||||
/**
|
||||
* Constructor with arguments as X/Y/Z
|
||||
*
|
||||
* @param ad_X X value of vector
|
||||
* @param ad_Y Y value of vector
|
||||
* @param ad_Z Z value of vector
|
||||
*/
|
||||
Vec3(Float64 ad_X, Float64 ad_Y, Float64 ad_Z)
|
||||
: m_X(ad_X)
|
||||
, m_Y(ad_Y)
|
||||
, m_Z(ad_Z)
|
||||
{}
|
||||
|
||||
/**
|
||||
* Constructor with polar coorinate as argument.
|
||||
*
|
||||
* @param ao_polar3
|
||||
*/
|
||||
explicit Vec3(const Polar3 &ao_polar3)
|
||||
{
|
||||
setPolar3(ao_polar3);
|
||||
}
|
||||
|
||||
/**
|
||||
* This function returns the X/Y/Z-values of the vector.
|
||||
*
|
||||
* @param ad_x
|
||||
* @param ad_y
|
||||
* @param ad_z
|
||||
*/
|
||||
void get(Float64 &ad_x, Float64 &ad_y, Float64 &ad_z) const
|
||||
{
|
||||
ad_x = m_X;
|
||||
ad_y = m_Y;
|
||||
ad_z = m_Z;
|
||||
}
|
||||
|
||||
/**
|
||||
* This function set the X/Y/Z-value of the vector.
|
||||
*
|
||||
* @param ad_x X coordinate
|
||||
* @param ad_y Y coordinate
|
||||
* @param ad_z Z coordinate
|
||||
*/
|
||||
void set(Float64 ad_x, Float64 ad_y, Float64 ad_z)
|
||||
{
|
||||
m_X = ad_x;
|
||||
m_Y = ad_y;
|
||||
m_Z = ad_z;
|
||||
}
|
||||
|
||||
/**
|
||||
* This function returns the X-value of the vector.
|
||||
*/
|
||||
Float64 getX() const { return m_X; }
|
||||
|
||||
/**
|
||||
* This function set the X-value of the vector.
|
||||
*
|
||||
* @param ad_x
|
||||
*/
|
||||
void setX(Float64 ad_x) { m_X = ad_x; }
|
||||
|
||||
/**
|
||||
* This function returns the Y-value of the vector.
|
||||
*/
|
||||
Float64 getY() const { return m_Y; }
|
||||
|
||||
/**
|
||||
* This function set the Y-value of the vector.
|
||||
*
|
||||
* @param ad_y
|
||||
*/
|
||||
void setY(Float64 ad_y) { m_Y = ad_y; }
|
||||
|
||||
/**
|
||||
* This function returns the Z-value of the vector.
|
||||
*/
|
||||
Float64 getZ() const { return m_Z; }
|
||||
|
||||
/**
|
||||
* This function set the Z-value of the vector.
|
||||
*
|
||||
* @param ad_z
|
||||
*/
|
||||
void setZ(Float64 ad_z) { m_Z = ad_z; }
|
||||
|
||||
/**
|
||||
* This method returns the 3D polar coordinates of the given vector.
|
||||
*/
|
||||
Polar3 getPolar3() const;
|
||||
|
||||
/**
|
||||
* This method set 3D polar coordinates to the vector.
|
||||
*
|
||||
* @param ao_polar3
|
||||
*/
|
||||
void setPolar3(const Polar3 &ao_polar3);
|
||||
|
||||
/**
|
||||
* This method returns the cross product of the vectors.
|
||||
*
|
||||
* @param ao_vec3
|
||||
*/
|
||||
Vec3 cross(const Vec3 &ao_vec3) const;
|
||||
|
||||
/**
|
||||
* This method returns the direction of the difference vector
|
||||
*
|
||||
* @param ao_vec3
|
||||
*/
|
||||
static Vec3 direction(const Vec3 &ao_vec3);
|
||||
|
||||
/**
|
||||
* This method returns the distance between two coordinates.
|
||||
*
|
||||
* @param ao_coord3
|
||||
*/
|
||||
Float64 length(const Vec3 &ao_coord3) const;
|
||||
|
||||
/**
|
||||
* This method returns the magnitude of the vector.
|
||||
*/
|
||||
Float64 magnitude() const;
|
||||
|
||||
/**
|
||||
* Operator "-". Negation operator. Each attribute is negated.
|
||||
*/
|
||||
Vec3 operator -() const;
|
||||
|
||||
/**
|
||||
* Operator "-". Subtraction of 2 vectors. The attributes of the calling object
|
||||
* remain unchanged.
|
||||
*
|
||||
* @param ao_vec3
|
||||
*/
|
||||
Vec3 operator -(const Vec3 &ao_vec3) const;
|
||||
|
||||
|
||||
/**
|
||||
* Operator "*". The attributes are multiplied by the argument and the product is
|
||||
* returned. The attributes of the calling object remain unchanged.
|
||||
*
|
||||
* @param ad_scale
|
||||
*/
|
||||
Vec3 operator *(Float64 ad_scale) const;
|
||||
|
||||
/**
|
||||
* Operator "*". Dot product (scalar product) of 2 vectors A.B = |A|*|B|*cos
|
||||
* (alpha), where alpha is the angle between the vectors.
|
||||
*
|
||||
* @param ao_vec3
|
||||
*/
|
||||
Float64 operator *(const Vec3 &ao_vec3) const;
|
||||
|
||||
/**
|
||||
* Operator "*=". The attributes are multiplied by the argument and the product
|
||||
* is returned. The attributes of the calling object are set to the changed value.
|
||||
*
|
||||
*
|
||||
* @param ad_scale
|
||||
*/
|
||||
Vec3 &operator *=(Float64 ad_scale);
|
||||
|
||||
/**
|
||||
* Operator "/". The attributes are divided by the argument and the result is
|
||||
* returned. The attributes of the calling object remain unchanged.
|
||||
*
|
||||
* @param ad_scale
|
||||
*/
|
||||
Vec3 operator /(Float64 ad_scale) const;
|
||||
|
||||
/**
|
||||
* Operator "/=". The attributes are divided by the argument and the product is
|
||||
* returned. The attributes of the calling object are set to the changed value.
|
||||
*
|
||||
* @param ad_scale
|
||||
*/
|
||||
Vec3 &operator /=(Float64 ad_scale);
|
||||
|
||||
/**
|
||||
* Operator "+". Addition of 2 vectors. The attributes of the calling object
|
||||
* remain unchanged.
|
||||
*
|
||||
* @param ao_vec3
|
||||
*/
|
||||
Vec3 operator +(const Vec3 &ao_vec3) const;
|
||||
|
||||
/**
|
||||
* Operator "+=". Addition of 2 vectors.
|
||||
*
|
||||
* @param ao_vec3
|
||||
*/
|
||||
Vec3 &operator +=(const Vec3 &ao_vec3);
|
||||
|
||||
/**
|
||||
* Asignment operator with 3d polar coordinates
|
||||
*
|
||||
* @param ao_polar3
|
||||
*/
|
||||
Vec3 &operator =(const Polar3 &ao_polar3);
|
||||
|
||||
/**
|
||||
* Operator "-=". Subtraction of 2 vectors.
|
||||
*
|
||||
* @param ao_vec3
|
||||
*/
|
||||
Vec3 &operator -=(const Vec3 &ao_vec3);
|
||||
|
||||
/**
|
||||
* Equality operator. This operator returns true if the vectors are identical.
|
||||
*
|
||||
* @param ao_vec3
|
||||
*/
|
||||
bool operator ==(const Vec3 &ao_vec3) const;
|
||||
|
||||
/**
|
||||
* This method is for rotation the vector about Y, X, and then in Z-axis (roll,
|
||||
* pitch, heading).
|
||||
*
|
||||
* @param ao_angle3
|
||||
*/
|
||||
Vec3 rotate(const Angle3 &ao_angle3) const;
|
||||
|
||||
/**
|
||||
* This method is for rotation the vector about Z, X, and then in Y-axis (heading,
|
||||
* pitch, and roll).
|
||||
*
|
||||
* @param ao_angle3
|
||||
*/
|
||||
Vec3 rotateBack(const Angle3 &ao_angle3) const;
|
||||
|
||||
/**
|
||||
* This method is for rotation the vector about X-axis (pitch).
|
||||
*
|
||||
* @param ad_pitch
|
||||
*/
|
||||
Vec3 rotateX(const Radian64 &ad_pitch) const;
|
||||
|
||||
/**
|
||||
* This method is for rotation the vector about Y-axis (roll).
|
||||
*
|
||||
* @param ad_roll
|
||||
*/
|
||||
Vec3 rotateY(const Radian64 &ad_roll) const;
|
||||
|
||||
/**
|
||||
* This method is for rotation the vector about Z-axis (heading).
|
||||
*
|
||||
* @param ad_heading
|
||||
*/
|
||||
Vec3 rotateZ(const Radian64 &ad_heading) const;
|
||||
|
||||
/**
|
||||
* Overloaded stream operator "<<". The X/Y/Z values iof the vector are written to
|
||||
* the stream in the format: x=???; y=???; z=???
|
||||
*
|
||||
* @param ao_os
|
||||
* @param ao_vec3
|
||||
*/
|
||||
friend std::ostream &operator <<(std::ostream &ao_os, const Vec3 &ao_vec3)
|
||||
{
|
||||
ao_os << " x=" << ao_vec3.m_X << "; y=" << ao_vec3.m_Y << "; z=" << ao_vec3.m_Z << ";";
|
||||
return ao_os;
|
||||
}
|
||||
friend std::wostream &operator <<(std::wostream &ao_os, const Vec3 &ao_vec3)
|
||||
{
|
||||
ao_os << " x=" << ao_vec3.m_X << "; y=" << ao_vec3.m_Y << "; z=" << ao_vec3.m_Z << ";";
|
||||
return ao_os;
|
||||
}
|
||||
|
||||
/**
|
||||
* Overloaded stream operator ">>". The X/Y/Z values are read from stream. The
|
||||
* input sequence X, Y and then Z.
|
||||
*
|
||||
* @param ao_is
|
||||
* @param ao_vec3
|
||||
*/
|
||||
friend std::istream &operator >>(std::istream &ao_is, Vec3 &ao_vec3)
|
||||
{
|
||||
ao_is >> ao_vec3.m_X >> ao_vec3.m_Y >> ao_vec3.m_Z;
|
||||
return ao_is;
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
}
|
||||
+171
@@ -0,0 +1,171 @@
|
||||
# 14 -> G5/G6
|
||||
# 7 -> M109
|
||||
[WeaponRestriction]
|
||||
Types = 7, 14
|
||||
AmmoList = 5, 6, 7, 8
|
||||
|
||||
[Ammunitions]
|
||||
NumberOfEntries = 8
|
||||
KeyOfEntries = Ammunition
|
||||
KeyOfParamEntries = AmmunitionP
|
||||
|
||||
[Ammunition1]
|
||||
Name = "Moerser60mm"
|
||||
Caliber = 60
|
||||
Range = 4200
|
||||
Speed = 200
|
||||
TimeOut = 60000
|
||||
Algorithm = RungeKuttaSimple
|
||||
ReasonToDetonate = OnImpact
|
||||
ParamType = CWParams
|
||||
Deviation = 0.0
|
||||
Derivation = 0
|
||||
|
||||
[AmmunitionP1/CWParams]
|
||||
Weight = 1.805
|
||||
CW = 0.2026, 0.1987, 0.1983, 0.1983, 0.1984
|
||||
V0 = 58.800, 98.100, 129.50, 155.90, 179.90
|
||||
XW = 45.000, 23.500, 17.700, 9.0000, 8.5200
|
||||
|
||||
[Ammunition2]
|
||||
Name = "Moerser60mm_S1"
|
||||
Caliber = 60
|
||||
Range = 4200
|
||||
Speed = 200
|
||||
TimeOut = 60000
|
||||
Algorithm = RungeKuttaSimple
|
||||
ReasonToDetonate = OnImpact
|
||||
ParamType = CWParams
|
||||
Deviation = 2.0
|
||||
Derivation = 0
|
||||
|
||||
[AmmunitionP2/CWParams]
|
||||
Weight = 1.805
|
||||
CW = 0.2026, 0.1987, 0.1983, 0.1983, 0.1984
|
||||
V0 = 58.800, 98.100, 129.50, 155.90, 179.90
|
||||
XW = 45.000, 23.500, 17.700, 9.0000, 8.5200
|
||||
|
||||
[Ammunition3]
|
||||
Name = "M430"
|
||||
Caliber = 40
|
||||
Range = 2200
|
||||
Speed = 240
|
||||
TimeOut = 60000
|
||||
Algorithm = RungeKutta
|
||||
ReasonToDetonate = OnImpact
|
||||
ParamType = CWParams
|
||||
Deviation = 2.0
|
||||
Derivation = 0.00389
|
||||
|
||||
[AmmunitionP3/CWParams]
|
||||
Weight = 0.34
|
||||
CW = 0.2356
|
||||
V0 = 242
|
||||
XW = 0.000
|
||||
|
||||
[Ammunition4]
|
||||
Name = "M385"
|
||||
Caliber = 40
|
||||
Range = 2000
|
||||
Speed = 242
|
||||
TimeOut = 60000
|
||||
Algorithm = RungeKuttaSimple
|
||||
ReasonToDetonate = OnImpact
|
||||
ParamType = CWParams
|
||||
Deviation = 2.0
|
||||
Derivation = 0.00389
|
||||
|
||||
[AmmunitionP4/CWParams]
|
||||
Weight = 0.34
|
||||
CW = 0.2451
|
||||
V0 = 242
|
||||
XW = 0.000
|
||||
|
||||
[Ammunition5]
|
||||
Name = "HE_M1A2"
|
||||
Caliber = 155
|
||||
Range = 45000
|
||||
Speed = 911
|
||||
TimeOut = 180000
|
||||
Algorithm = RungeKuttaSimple
|
||||
ReasonToDetonate = OnImpact
|
||||
ParamType = CWParams
|
||||
Deviation = 0.0
|
||||
Derivation = 0
|
||||
|
||||
[AmmunitionP5/CWParams]
|
||||
Weight = 38.26
|
||||
CW = 0.2000, 0.2000, 0.1983, 0.1880, 0.1300
|
||||
V0 = 450.000, 610.000, 765.000, 911.000, 908.000
|
||||
XW = 45.000, 23.500, 17.700, 9.0000, 8.5200
|
||||
ElevMin = 2.5, 1.3, 0.8, 0.6, 0.6
|
||||
ElevMax = 1348.5, 1305.4, 1284.7, 1256.7, 1256.9
|
||||
Allowed14 = 1, 1, 1, 1, 1
|
||||
Allowed7 = 1, 1, 1, 1, 1
|
||||
|
||||
[Ammunition6]
|
||||
Name = "VLAP_M9703"
|
||||
Caliber = 155
|
||||
Range = 60000
|
||||
Speed = 912
|
||||
TimeOut = 180000
|
||||
Algorithm = RungeKuttaSimple
|
||||
ReasonToDetonate = OnImpact
|
||||
ParamType = CWParams
|
||||
Deviation = 0.0
|
||||
Derivation = 0
|
||||
|
||||
[AmmunitionP6/CWParams]
|
||||
Weight = 37.26
|
||||
CW = 0.0800
|
||||
V0 = 912.000
|
||||
XW = 8.5200
|
||||
ElevMin = 234.4, 234.4, 234.4, 234.4, 234.4
|
||||
ElevMax = 1149.6, 1149.6, 1149.6, 1149.6, 1149.6
|
||||
Allowed14 = 0, 0, 0, 1, 0
|
||||
Allowed7 = 0, 0, 0, 1, 0
|
||||
|
||||
[Ammunition7]
|
||||
Name = "SMK_BE_M2"
|
||||
Caliber = 155
|
||||
Range = 45000
|
||||
Speed = 911
|
||||
TimeOut = 180000
|
||||
Algorithm = RungeKuttaSimple
|
||||
ReasonToDetonate = OnImpact
|
||||
ParamType = CWParams
|
||||
Deviation = 0.0
|
||||
Derivation = 0
|
||||
|
||||
[AmmunitionP7/CWParams]
|
||||
Weight = 38.26
|
||||
CW = 0.2000, 0.2000, 0.1983, 0.1880, 0.1300
|
||||
V0 = 450.000, 610.000, 765.000, 911.000, 908.000
|
||||
XW = 45.000, 23.500, 17.700, 9.0000, 8.5200
|
||||
ElevMin = 2.5, 1.3, 0.8, 0.6, 0.6
|
||||
ElevMax = 1336.2, 1303.4, 1382.2, 1258.1, 1256.5
|
||||
Allowed14 = 1, 1, 1, 1, 1
|
||||
Allowed7 = 1, 1, 1, 0, 1
|
||||
|
||||
[Ammunition8]
|
||||
Name = "CLUSTER_HEHC_M9609"
|
||||
Caliber = 155
|
||||
Range = 45000
|
||||
Speed = 911
|
||||
TimeOut = 180000
|
||||
Algorithm = RungeKuttaSimple
|
||||
ReasonToDetonate = OnImpact
|
||||
ParamType = CWParams
|
||||
Deviation = 0.0
|
||||
Derivation = 0
|
||||
|
||||
[AmmunitionP8/CWParams]
|
||||
Weight = 38.26
|
||||
CW = 0.2000, 0.2000, 0.1983, 0.1880, 0.1300
|
||||
V0 = 450.000, 610.000, 765.000, 911.000, 908.000
|
||||
XW = 45.000, 23.500, 17.700, 9.0000, 8.5200
|
||||
ElevMin = 2.5, 1.3, 0.8, 0.6, 0.6
|
||||
ElevMax = 1348.5, 1305.4, 1284.7, 1256.7, 1256.9
|
||||
Allowed14 = 1, 1, 1, 1, 1
|
||||
Allowed7 = 1, 1, 1, 0, 1
|
||||
|
||||
+39
@@ -0,0 +1,39 @@
|
||||
#
|
||||
# CMake file für GeoParing Implementation
|
||||
# $Id$
|
||||
# $HeadURL$
|
||||
# $Author$
|
||||
#
|
||||
|
||||
SET(firingTables
|
||||
HE-M1-M64Base-TableE.sus
|
||||
HE-M1-M64Incr3-TableE.sus
|
||||
HE-M1-M64Incr4-TableE.sus
|
||||
HE-M1-M64Incr5-TableE.sus
|
||||
HE-M1-M64Incr5BaseBleed-TableE.sus
|
||||
VLAP-M64Incr5-TableE.sus
|
||||
SMK-BE-RED-RED-PHOSPH-M1-M64Base-TableE.sus
|
||||
SMK-BE-RED-RED-PHOSPH-M1-M64Incr3-TableE.sus
|
||||
SMK-BE-RED-RED-PHOSPH-M1-M64Incr4-TableE.sus
|
||||
SMK-BE-RED-RED-PHOSPH-M1-M64Incr5-TableE.sus
|
||||
SMK-BE-RED-RED-PHOSPH-M1-M64Incr5BaseBleed-TableE.sus
|
||||
Cluster-M64Base-TableE.sus
|
||||
Cluster-M64BaseIncr3-TableE.sus
|
||||
Cluster-M64BaseIncr4-TableE.sus
|
||||
Cluster-M64BaseIncr5-TableE.sus
|
||||
Cluster-M64BaseIncr5BaseBleed-TableE.sus
|
||||
Moerser-60mm-Lad1.sus
|
||||
Moerser-60mm-Lad2.sus
|
||||
Moerser-60mm-Lad3.sus
|
||||
Moerser-60mm-Lad4.sus
|
||||
Moerser-60mm-Lad5.sus
|
||||
Moerser-60mm-Lad6.sus
|
||||
)
|
||||
|
||||
NGL_INSTALL(FILES AAR SV ${firingTables} DESTINATION GeoPairing/firingTables)
|
||||
|
||||
SET(configFiles
|
||||
Ammunition.ini
|
||||
GeoPairing.ini
|
||||
)
|
||||
NGL_INSTALL(FILES AAR SV ${configFiles} DESTINATION GeoPairing/firingTables)
|
||||
Executable
+212
@@ -0,0 +1,212 @@
|
||||
###########################################################################
|
||||
# #
|
||||
# Projekt TES : File "HE-M1-M64Base-TableE.sus" zur Munition "M64" #
|
||||
# #
|
||||
# Bei der Auspraegung des Ballistik-Moduls vereinbarte Bezeichnungen #
|
||||
# Tafel_Namen : ENTFERNUNG, AUFSATZ, FLUGZEIT, -- obligatorisch #
|
||||
# VORHALT -- projektspezifisch #
|
||||
# Param_Namen : DELTA_V0, LUFTTEMP, LUFTDRUCK, #
|
||||
# LAENGSWIND, QUERWIND, #
|
||||
# PULVERTEMP -- Korrektur-Parameter #
|
||||
# #
|
||||
###########################################################################
|
||||
|
||||
# Aenderung/Stand: 09.07.14-07:52
|
||||
|
||||
Schuss_Tafel =
|
||||
{
|
||||
Munition = "HE-M1-M64"
|
||||
Version = "HE M64 Base Table-E"
|
||||
Muni_Parameter = { Kaliber = 155.0 Masse = 46.30 V0 = 912.0 }
|
||||
Std_Parameter = { DELTA_V0 = 0.0
|
||||
LUFTTEMP = 15.0
|
||||
LUFTDRUCK = 1013.25
|
||||
LAENGSWIND= 0.0
|
||||
QUERWIND = 0.0
|
||||
PULVERTEMP= 21.1 }
|
||||
Entfernung_Range= { Min = 100.0 Max = 12100.0 Delta = 100.0 Scheitel = 12228.0 }
|
||||
Ballistik = "Parabel"
|
||||
###########################################################################
|
||||
|
||||
Standard_Tafel =
|
||||
{
|
||||
Spaltengruppe =
|
||||
{ Belegung = { AUFSATZ = (2) [-]
|
||||
VORHALT = (3) [-]
|
||||
FLUGZEIT = (4)
|
||||
DELTA_RGE = (5) [-]
|
||||
DELTA_ELEV = (6)
|
||||
FORK = (7) [-]
|
||||
DRIFT = (8) [-]
|
||||
}
|
||||
Zeilenlaenge = 8
|
||||
Datenblock =
|
||||
{
|
||||
#
|
||||
# RGE ELEV TOF DELTA DELTA FORK BEARING-CORR. RANGE-CORR.
|
||||
# ENTF AUFSATZ VORHALT FLUGZEIT RGE ELEV DRIFT CW DEC INC
|
||||
# [m] [mil] [mil] [sec] [mil] [m] [mil] [mil] [mil] [m] [m]
|
||||
#
|
||||
100 2.5 0 0.2 2.4 41 1 0.1 0 0.1 -0.1
|
||||
200 4.9 0 0.4 2.5 41 1 0.3 0.01 0.2 -0.2
|
||||
300 7.5 0 0.7 2.6 40 1 0.4 0.01 0.3 -0.3
|
||||
400 10 0 0.9 2.6 40 1 0.5 0.02 0.4 -0.5
|
||||
500 12.6 0 1.1 2.6 39 1 0.7 0.02 0.5 -0.6
|
||||
600 15.2 0 1.4 2.6 39 1 0.8 0.03 0.6 -0.7
|
||||
700 17.8 0 1.6 2.7 38 1 1 0.03 0.7 -0.8
|
||||
800 20.5 0 1.8 2.7 38 1 1.1 0.04 0.9 -0.9
|
||||
900 23.1 0 2.1 2.7 37 1 1.2 0.05 0.9 -1
|
||||
1000 25.9 0 2.3 2.8 37 1 1.4 0.05 1 -1.1
|
||||
1100 28.6 0 2.6 2.8 37 1 1.5 0.06 1.1 -1.2
|
||||
1200 31.4 0 2.8 2.8 36 1 1.6 0.06 1.2 -1.3
|
||||
1300 34.2 0 3.1 2.8 36 1 1.8 0.07 1.3 -1.4
|
||||
1400 37.1 0 3.3 2.9 35 1 1.9 0.07 1.4 -1.5
|
||||
1500 40 0 3.6 2.9 35 1 2.1 0.08 1.5 -1.6
|
||||
1600 42.9 0 3.8 3 34 1 2.2 0.08 1.6 -1.7
|
||||
1700 45.9 0 4.1 3 34 1 2.4 0.09 1.7 -1.8
|
||||
1800 48.9 0 4.3 3 34 1 2.5 0.09 1.8 -1.9
|
||||
1900 51.9 0 4.6 3 33 1 2.6 0.1 1.8 -2
|
||||
2000 55 0 4.8 3.1 33 2 2.8 0.1 2 -2.1
|
||||
2100 58.1 0 5.1 3.1 32 2 2.9 0.11 2.1 -2.2
|
||||
2200 61.2 0 5.4 3.2 32 2 3.1 0.12 2.1 -2.3
|
||||
2300 64.4 0 5.7 3.2 32 2 3.2 0.12 2.2 -2.4
|
||||
2400 67.6 0 5.9 3.3 31 2 3.4 0.13 2.3 -2.4
|
||||
2500 70.9 0 6.2 3.3 31 2 3.5 0.13 2.4 -2.5
|
||||
2600 74.2 0 6.5 3.3 31 2 3.7 0.14 2.5 -2.6
|
||||
2700 77.6 0 6.8 3.4 30 2 3.8 0.14 2.6 -2.7
|
||||
2800 81 0 7 3.4 30 2 4 0.15 2.7 -2.8
|
||||
2900 84.4 0 7.3 3.5 29 2 4.1 0.16 2.7 -2.9
|
||||
3000 87.9 0 7.6 3.5 29 2 4.3 0.16 2.8 -3
|
||||
3100 91.4 0 7.9 3.5 29 2 4.4 0.17 2.9 -3.1
|
||||
3200 95 0 8.2 3.6 28 2 4.6 0.17 3 -3.2
|
||||
3300 98.6 0 8.5 3.7 28 2 4.7 0.18 3 -3.3
|
||||
3400 102.3 0 8.8 3.7 28 2 4.9 0.19 3.1 -3.3
|
||||
3500 106 0 9.1 3.8 27 3 5.1 0.19 3.2 -3.4
|
||||
3600 109.8 0 9.4 3.8 27 3 5.2 0.2 3.3 -3.5
|
||||
3700 113.6 0 9.7 3.8 27 3 5.4 0.2 3.3 -3.5
|
||||
3800 117.4 0 10 3.9 26 3 5.5 0.21 3.4 -3.6
|
||||
3900 121.3 0 10.3 4 26 3 5.7 0.21 3.5 -3.7
|
||||
4000 125.3 0 10.6 3.9 26 3 5.9 0.22 3.5 -3.8
|
||||
4100 129.2 0 10.9 4 26 3 6 0.22 3.6 -3.8
|
||||
4200 133.3 0 11.3 4.1 25 3 6.2 0.23 3.6 -3.9
|
||||
4300 137.3 0 11.6 4 25 3 6.3 0.24 3.7 -3.9
|
||||
4400 141.4 0 11.9 4.2 25 3 6.5 0.24 3.7 -4
|
||||
4500 145.6 0 12.2 4.2 24 3 6.7 0.25 3.8 -4.1
|
||||
4600 149.8 0 12.5 4.2 24 3 6.8 0.25 3.8 -4.1
|
||||
4700 154 0 12.9 4.3 24 4 7 0.25 3.9 -4.2
|
||||
4800 158.3 0 13.2 4.3 24 4 7.2 0.26 3.9 -4.2
|
||||
4900 162.6 0 13.5 4.3 24 4 7.3 0.26 4 -4.3
|
||||
5000 166.9 0 13.8 4.3 23 4 7.5 0.27 4 -4.3
|
||||
5100 171.3 0 14.2 4.4 23 4 7.6 0.27 4.1 -4.4
|
||||
5200 175.7 0 14.5 4.4 23 4 7.8 0.28 4.1 -4.4
|
||||
5300 180.2 0 14.8 4.5 23 4 8 0.28 4.2 -4.5
|
||||
5400 184.7 0 15.2 4.6 23 4 8.1 0.29 4.2 -4.5
|
||||
5500 189.3 0 15.5 4.6 22 4 8.3 0.29 4.3 -4.6
|
||||
5600 193.9 0 15.8 4.6 22 4 8.4 0.3 4.3 -4.6
|
||||
5700 198.5 0 16.2 4.7 22 5 8.6 0.3 4.3 -4.7
|
||||
5800 203.2 0 16.5 4.8 22 5 8.8 0.3 4.4 -4.7
|
||||
5900 208 0 16.9 4.8 22 5 8.9 0.31 4.4 -4.8
|
||||
6000 212.7 0 17.2 4.8 21 5 9.1 0.31 4.5 -4.8
|
||||
6100 217.5 0 17.6 4.8 21 5 9.2 0.32 4.5 -4.8
|
||||
6200 222.4 0 17.9 4.9 21 5 9.4 0.32 4.6 -4.9
|
||||
6300 227.3 0 18.3 5 21 5 9.5 0.32 4.6 -4.9
|
||||
6400 305.4 0 18.6 21 3.0 5 9.7 0.33 4.6 -5
|
||||
6600 311.4 0 19.3 20 3.3 6 10 0.34 4.7 -5
|
||||
6800 317.9 0 20.1 20 3.5 6 10.3 0.34 4.8 -5.1
|
||||
7000 324.9 0 20.8 19 3.8 6 10.5 0.35 4.8 -5.2
|
||||
7200 332.4 0 21.5 19 3.9 7 10.8 0.36 4.9 -5.3
|
||||
7400 340.2 0 22.3 19 4.1 7 11.1 0.37 5 -5.3
|
||||
7600 348.4 0 23 18 4.4 7 11.4 0.37 5.1 -5.4
|
||||
7800 357.1 0 23.8 18 4.5 7 11.6 0.38 5.1 -5.5
|
||||
8000 366.2 0 24.6 18 4.8 8 11.9 0.39 5.2 -5.6
|
||||
8200 375.8 0 25.4 17 5.0 8 12.2 0.4 5.3 -5.7
|
||||
8400 385.8 0 26.2 17 5.1 9 12.4 0.4 5.4 -5.7
|
||||
8600 396.1 0 27.1 16 5.5 9 12.7 0.41 5.4 -5.8
|
||||
8800 407 0 27.9 16 5.6 9 12.9 0.42 5.5 -5.9
|
||||
9000 418.2 0 28.8 16 6.0 10 13.2 0.43 5.6 -6
|
||||
9200 430.2 0 29.7 15 6.2 11 13.4 0.43 5.7 -6
|
||||
9400 442.6 0 30.6 15 6.3 11 13.7 0.44 5.7 -6.1
|
||||
9600 455.3 0 31.5 14 6.9 12 13.9 0.45 5.8 -6.2
|
||||
9800 469.1 0 32.5 13 7.2 13 14.1 0.46 5.9 -6.3
|
||||
10000 483.5 0 33.5 13 7.3 13 14.4 0.47 6 -6.3
|
||||
10200 498 0 34.5 13 8.1 14 14.6 0.48 6.1 -6.5
|
||||
10400 514.2 0 35.6 12 8.5 15 14.9 0.48 6.2 -6.6
|
||||
10600 531.2 0 36.8 12 8.8 16 15.2 0.49 6.3 -6.6
|
||||
10800 548.9 0 37.9 11 9.9 17 15.4 0.5 6.3 -6.7
|
||||
11000 568.7 0 39.2 10 10.8 19 15.8 0.51 6.4 -6.8
|
||||
11200 590.2 0 40.5 9 12.2 21 16.1 0.53 6.5 -6.9
|
||||
11400 614.6 0 42.0 8 13.6 24 16.6 0.54 6.6 -7.0
|
||||
11600 641.8 0 43.6 8 16.1 27 17.1 0.55 6.7 -7.1
|
||||
11800 674 0 45.4 6 23.3 34 17.8 0.57 6.8 -7.2
|
||||
12000 720.5 0 47.7 5 24.0 48 18.9 0.59 6.9 -7.4
|
||||
12228 791.7 0 52 78.6 5 48 22 0.66 7.0 -7.5
|
||||
12100 870.3 0 57.3 53.2 5 48 27.8 0.71 7.1 -7.6
|
||||
12000 898.1 0 58.7 24.6 5 50 30.1 0.73 7.1 -7.5
|
||||
11900 919.4 0 59.7 19.8 6 41 32.1 0.75 7.1 -7.5
|
||||
11800 937.6 0 60.5 17 6 35 33.9 0.76 7 -7.4
|
||||
11700 953.5 0 61.3 15.2 7 31 35.7 0.78 7 -7.4
|
||||
11600 968 0 61.9 13.9 8 28 37.4 0.79 6.9 -7.3
|
||||
11500 981.3 0 62.5 12.9 8 26 39.1 0.81 6.9 -7.3
|
||||
11400 993.7 0 63 12.1 9 24 40.9 0.82 6.8 -7.2
|
||||
11300 1005.4 0 63.5 11.4 9 23 42.6 0.83 6.8 -7.2
|
||||
11200 1016.4 0 64 10.8 10 22 44.3 0.84 6.7 -7.1
|
||||
11100 1026.9 0 64.4 10.3 10 21 46 0.86 6.7 -7.1
|
||||
11000 1036.9 0 64.8 9.8 11 20 47.7 0.87 6.6 -7
|
||||
10900 1046.5 0 65.2 9.5 11 19 49.4 0.88 6.6 -7
|
||||
10800 1055.8 0 65.6 9.1 11 18 51.2 0.89 6.5 -6.9
|
||||
10700 1064.7 0 65.9 8.8 12 18 53 0.91 6.5 -6.9
|
||||
10600 1073.4 0 66.3 8.5 12 17 54.8 0.92 0.92 -6.8
|
||||
10500 1081.7 0 66.6 8.3 13 16 56.6 0.93 0.93 -6.7
|
||||
10400 1089.9 0 66.9 8.1 13 16 58.4 0.95 0.95 -6.7
|
||||
10300 1097.8 0 67.2 7.8 13 15 60.2 0.96 0.96 -6.6
|
||||
10200 1105.5 0 67.5 7.6 14 15 62.1 0.97 0.97 -6.6
|
||||
10100 1113 0 67.8 7.4 14 14 64 0.99 0.99 -6.5
|
||||
10000 1120.3 0 68.1 7.3 14 14 65.9 1.00 1 -6.5
|
||||
9900 1127.5 0 68.3 7.1 15 14 67.8 1.01 1.01 -6.4
|
||||
9800 1134.6 0 68.6 7 15 13 69.8 1.03 1.03 -6.3
|
||||
9700 1141.4 0 68.8 6.8 15 13 71.7 1.04 1.04 -6.3
|
||||
9600 1148.2 0 69.1 6.7 15 13 73.7 1.06 1.06 -6.2
|
||||
9500 1154.8 0 69.3 6.6 16 12 75.7 1.07 1.07 -6.2
|
||||
9400 1161.3 0 69.5 6.4 16 12 77.8 1.09 1.09 -6.1
|
||||
9300 1167.7 0 69.7 6.3 16 12 79.8 1.10 1.1 -6
|
||||
9200 1174 0 70 6.2 17 12 81.9 1.12 1.12 -6
|
||||
9100 1180.1 0 70.2 6.1 17 11 84 1.13 1.13 -5.9
|
||||
9000 1186.2 0 70.4 6 17 11 86 1.15 1.15 -5.9
|
||||
8900 1192.2 0 70.6 6 17 11 88.1 1.17 1.17 -5.8
|
||||
8800 1198.1 0 70.8 5.8 18 11 90.2 1.18 1.18 -5.7
|
||||
8700 1203.8 0 70.9 5.8 18 11 92.3 1.20 1.2 -5.7
|
||||
8600 1209.6 0 71.1 5.7 18 10 94.5 1.22 1.22 -5.6
|
||||
8500 1215.2 0 71.3 5.5 18 10 96.5 1.24 1.24 -5.6
|
||||
8400 1220.7 0 71.5 5.5 19 10 98.6 1.26 1.26 -5.5
|
||||
8300 1226.2 0 71.7 5.5 19 10 100.7 1.28 1.28 -5.4
|
||||
8200 1231.6 0 71.8 5.4 19 10 102.7 1.30 1.3 -5.3
|
||||
8100 1236.9 0 72 5.3 19 9 104.8 1.32 1.32 -5.3
|
||||
8000 1242.2 0 72.1 5.3 20 9 106.7 1.34 1.34 -5.2
|
||||
7900 1247.4 0 72.3 5.2 20 9 108.6 1.36 4.9 -5.2
|
||||
7800 1252.5 0 72.5 5.1 20 9 110.5 1.39 4.8 -5.1
|
||||
7700 1257.6 0 72.6 5 20 9 112.2 1.41 4.7 -5
|
||||
7600 1262.6 0 72.7 5 21 9 113.9 1.43 4.7 -5
|
||||
7500 1267.5 0 72.9 4.9 21 8 115.4 1.46 4.6 -4.9
|
||||
7400 1272.3 0 73 4.8 21 8 117 1.49 4.5 -4.9
|
||||
7300 1277.1 0 73.2 4.8 21 8 118.7 1.51 4.5 -4.8
|
||||
7200 1281.9 0 73.3 4.8 22 8 120.5 1.54 4.5 -4.7
|
||||
7100 1286.6 0 73.4 4.8 22 8 122.4 1.57 4.4 -4.7
|
||||
7000 1291.4 0 73.6 4.8 22 8 124.1 1.6 4.3 -4.6
|
||||
6900 1296.1 0 73.7 4.8 21 8 125.7 1.63 4.3 -4.5
|
||||
6800 1300.9 0 73.8 4.8 21 8 127.2 1.66 4.2 -4.5
|
||||
6700 1305.7 0 73.9 4.8 21 8 128.7 1.69 4.2 -4.4
|
||||
6600 1310.5 0 74 4.8 21 8 130.1 1.72 4.1 -4.3
|
||||
6500 1315.3 0 74.1 4.8 21 8 131.3 1.75 4 -4.3
|
||||
6400 1320.1 0 74.2 4.8 21 8 132.6 1.78 4 -4.2
|
||||
6300 1324.9 0 74.3 4.8 22 8 133.7 1.82 3.9 -4.2
|
||||
6200 1329.6 0 74.4 4.8 22 8 134.7 1.85 3.8 -4.1
|
||||
6100 1334.4 0 74.5 4.8 22 7 135.8 1.88 3.8 -4
|
||||
6000 1339.1 0 74.6 4.7 22 7 136.8 1.92 3.7 -4
|
||||
5900 1343.8 0 74.6 4.7 22 7 137.9 1.95 3.6 -3.9
|
||||
5800 1348.5 0 74.7 4.7 22 7 138.9 1.99 3.6 -3.8
|
||||
}
|
||||
} Ende Spaltengruppe
|
||||
} Ende Standard_Tafel
|
||||
|
||||
} Ende Schuss_Tafel
|
||||
|
||||
Executable
+311
@@ -0,0 +1,311 @@
|
||||
###########################################################################
|
||||
# #
|
||||
# Projekt TES : File "HE-M1-M64Base-TableE.sus" zur Munition "M64" #
|
||||
# #
|
||||
# Bei der Auspraegung des Ballistik-Moduls vereinbarte Bezeichnungen #
|
||||
# Tafel_Namen : ENTFERNUNG, AUFSATZ, FLUGZEIT, -- obligatorisch #
|
||||
# VORHALT -- projektspezifisch #
|
||||
# Param_Namen : DELTA_V0, LUFTTEMP, LUFTDRUCK, #
|
||||
# LAENGSWIND, QUERWIND, #
|
||||
# PULVERTEMP -- Korrektur-Parameter #
|
||||
# #
|
||||
###########################################################################
|
||||
|
||||
# Aenderung/Stand: 09.07.14-07:52
|
||||
|
||||
Schuss_Tafel =
|
||||
{
|
||||
Munition = "HE-M1-M64"
|
||||
Version = "HE M64 Base Table-E"
|
||||
Muni_Parameter = { Kaliber = 155.0 Masse = 46.30 V0 = 912.0 }
|
||||
Std_Parameter = { DELTA_V0 = 0.0
|
||||
LUFTTEMP = 15.0
|
||||
LUFTDRUCK = 1013.25
|
||||
LAENGSWIND= 0.0
|
||||
QUERWIND = 0.0
|
||||
PULVERTEMP= 21.1 }
|
||||
Entfernung_Range= { Min = 100.0 Max = 12100.0 Delta = 100.0 Scheitel = 12228.0 }
|
||||
Ballistik = "Parabel"
|
||||
###########################################################################
|
||||
|
||||
Standard_Tafel =
|
||||
{
|
||||
Spaltengruppe =
|
||||
{ Belegung = { AUFSATZ = (2) [-]
|
||||
VORHALT = (3) [-]
|
||||
FLUGZEIT = (4)
|
||||
DELTA_RGE = (5) [-]
|
||||
DELTA_ELEV = (6)
|
||||
FORK = (7) [-]
|
||||
DRIFT = (8) [-]
|
||||
}
|
||||
Zeilenlaenge = 8
|
||||
Datenblock =
|
||||
{
|
||||
#
|
||||
# RGE ELEV TOF DELTA DELTA FORK BEARING-CORR. RANGE-CORR.
|
||||
# ENTF AUFSATZ VORHALT FLUGZEIT RGE ELEV DRIFT CW DEC INC
|
||||
# [m] [mil] [mil] [sec] [mil] [m] [mil] [mil] [mil] [m] [m]
|
||||
#
|
||||
100 1.3 0 0.2 1.4 76 1 0.1 0.00 0.1 -0.2
|
||||
200 2.7 0 0.3 1.4 75 1 0.2 0.01 0.2 -0.5
|
||||
300 4.0 0 0.5 1.4 74 1 0.3 0.01 0.4 -0.8
|
||||
400 5.4 0 0.7 1.3 74 1 0.4 0.01 0.5 -1.0
|
||||
500 6.7 0 0.8 1.4 73 1 0.5 0.01 0.6 -1.2
|
||||
600 8.1 0 1.0 1.4 72 1 0.6 0.02 0.7 -1.5
|
||||
700 9.5 0 1.2 1.4 72 1 0.7 0.02 0.9 -1.8
|
||||
800 10.9 0 1.3 1.4 71 1 0.8 0.02 1.0 -2.0
|
||||
900 12.4 0 1.5 1.5 70 1 0.9 0.03 1.1 -2.2
|
||||
1000 13.8 0 1.7 1.5 70 1 1.0 0.03 1.2 -2.5
|
||||
1100 15.3 0 1.9 1.5 69 1 1.1 0.03 1.4 -2.7
|
||||
1200 16.7 0 2.0 1.5 68 1 1.2 0.03 1.4 -2.9
|
||||
1300 18.2 0 2.2 1.5 68 1 1.3 0.04 1.6 -3.2
|
||||
1400 19.7 0 2.4 1.5 67 1 1.4 0.04 1.7 -3.4
|
||||
1500 21.2 0 2.6 1.5 67 1 1.6 0.04 1.8 -3.6
|
||||
1600 22.7 0 2.8 1.5 66 1 1.7 0.05 1.9 -3.9
|
||||
1700 24.3 0 3.0 1.5 65 1 1.8 0.05 2.0 -4.1
|
||||
1800 25.8 0 3.1 1.6 65 1 1.9 0.05 2.1 -4.3
|
||||
1900 27.4 0 3.3 1.6 64 1 2.0 0.06 2.3 -4.6
|
||||
2000 28.9 0 3.5 1.6 64 1 2.1 0.06 2.4 -4.8
|
||||
2100 30.5 0 3.7 1.6 63 1 2.2 0.06 2.5 -5.0
|
||||
2200 32.1 0 3.9 1.6 62 1 2.3 0.07 2.6 -5.2
|
||||
2300 33.8 0 4.1 1.7 62 1 2.4 0.07 2.7 -5.4
|
||||
2400 35.4 0 4.3 1.6 61 1 2.5 0.07 2.8 -5.6
|
||||
2500 37.1 0 4.5 1.6 61 1 2.6 0.08 3.0 -5.9
|
||||
2600 38.7 0 4.7 1.7 60 1 2.7 0.08 3.1 -6.1
|
||||
2700 40.4 0 4.9 1.7 59 1 2.8 0.08 3.2 -6.3
|
||||
2800 42.1 0 5.1 1.8 59 1 2.9 0.09 3.3 -6.5
|
||||
2900 43.9 0 5.3 1.8 58 1 3.0 0.09 3.4 -6.7
|
||||
3000 45.6 0 5.5 1.7 58 1 3.2 0.09 3.5 -6.9
|
||||
3100 47.3 0 5.7 1.8 57 1 3.3 0.10 3.6 -7.2
|
||||
3200 49.1 0 5.9 1.8 57 2 3.4 0.10 3.7 -7.4
|
||||
3300 50.9 0 6.1 1.8 56 2 3.5 0.10 3.8 -7.6
|
||||
3400 52.7 0 6.3 1.8 55 2 3.6 0.11 3.9 -7.8
|
||||
3500 54.6 0 6.5 1.9 55 2 3.7 0.11 4.0 -7.9
|
||||
3600 56.4 0 6.7 1.9 54 2 3.8 0.11 4.0 -8.2
|
||||
3700 58.3 0 6.9 1.8 54 2 3.9 0.12 4.2 -8.4
|
||||
3800 60.1 0 7.1 1.9 53 2 4.0 0.12 4.2 -8.6
|
||||
3900 62.1 0 7.3 2.0 53 2 4.1 0.12 4.4 -8.8
|
||||
4000 64.0 0 7.5 1.9 52 2 4.2 0.13 4.4 -8.9
|
||||
4100 65.9 0 7.8 2.0 52 2 4.4 0.13 4.6 -9.1
|
||||
4200 67.9 0 8.0 2.0 51 2 4.5 0.13 4.6 -9.3
|
||||
4300 69.9 0 8.2 2.0 51 2 4.6 0.14 4.7 -9.5
|
||||
4400 71.9 0 8.4 2.0 50 2 4.7 0.14 4.8 -9.6
|
||||
4500 73.9 0 8.6 2.0 50 2 4.8 0.15 4.9 -9.9
|
||||
4600 75.9 0 8.9 2.0 49 2 4.9 0.15 5.0 -10.0
|
||||
4700 78.0 0 9.1 2.1 49 2 5.0 0.15 5.1 -10.3
|
||||
4800 80.1 0 9.3 2.1 48 2 5.1 0.16 5.2 -10.4
|
||||
4900 82.2 0 9.6 2.2 48 2 5.2 0.16 5.3 -10.6
|
||||
5000 84.4 0 9.8 2.2 47 2 5.4 0.16 5.4 -10.7
|
||||
5100 86.5 0 10.0 2.1 47 2 5.5 0.17 5.5 -11.0
|
||||
5200 88.7 0 10.3 2.2 46 2 5.6 0.17 5.6 -11.1
|
||||
5300 90.9 0 10.5 2.2 46 2 5.7 0.18 5.6 -11.3
|
||||
5400 93.1 0 10.7 2.3 45 2 5.8 0.18 5.7 -11.4
|
||||
5500 95.4 0 11.0 2.3 45 2 5.9 0.18 5.8 -11.6
|
||||
5600 97.7 0 11.2 2.3 44 2 6.0 0.19 5.9 -11.7
|
||||
5700 100.0 0 11.5 2.3 44 2 6.1 0.19 6.0 -11.9
|
||||
5800 102.3 0 11.7 2.3 43 3 6.3 0.20 6.1 -12.0
|
||||
5900 104.7 0 12.0 2.3 43 3 6.4 0.20 6.2 -12.2
|
||||
6000 107.0 0 12.2 2.4 42 3 6.5 0.20 6.2 -12.3
|
||||
6100 109.4 0 12.5 2.5 42 3 6.6 0.21 6.3 -12.5
|
||||
6200 111.9 0 12.7 2.5 41 3 6.7 0.21 6.4 -12.7
|
||||
6300 114.3 0 13.0 2.5 41 3 6.8 0.22 6.5 -12.9
|
||||
6400 116.8 0 13.3 2.5 40 3 6.9 0.22 6.5 -13.0
|
||||
6500 119.3 0 13.5 2.5 40 3 7.1 0.23 6.6 -13.2
|
||||
6600 121.9 0 13.8 2.6 40 3 7.2 0.23 6.7 -13.3
|
||||
6700 124.5 0 14.1 2.6 39 3 7.3 0.23 6.8 -13.5
|
||||
6800 127.1 0 14.3 2.6 39 3 7.4 0.24 6.9 -13.7
|
||||
6900 129.7 0 14.6 2.6 38 3 7.5 0.24 7.0 -13.8
|
||||
7000 132.4 0 14.9 2.7 38 3 7.6 0.25 7.0 -14.0
|
||||
7100 135.1 0 15.1 2.7 37 3 7.7 0.25 7.1 -14.1
|
||||
7200 137.8 0 15.4 2.8 37 3 7.9 0.26 7.2 -14.2
|
||||
7300 140.6 0 15.7 2.8 37 3 8.0 0.26 7.2 -14.3
|
||||
7400 143.4 0 16.0 2.8 36 4 8.1 0.26 7.3 -14.5
|
||||
7500 146.2 0 16.3 2.8 36 4 8.2 0.27 7.4 -14.7
|
||||
7600 149.0 0 16.6 2.8 35 4 8.3 0.27 7.5 -14.8
|
||||
7700 151.9 0 16.9 2.9 35 4 8.4 0.28 7.6 -15.0
|
||||
7800 154.9 0 17.1 3.0 34 4 8.5 0.28 7.6 -15.1
|
||||
7900 157.8 0 17.4 3.0 34 4 8.7 0.29 7.7 -15.3
|
||||
8000 160.8 0 17.7 3.0 34 4 8.8 0.29 7.7 -15.3
|
||||
8100 163.8 0 18.0 3.0 33 4 8.9 0.30 7.8 -15.5
|
||||
8200 166.9 0 18.3 3.1 33 4 9.0 0.30 7.9 -15.7
|
||||
8300 170.0 0 18.6 3.2 32 4 9.1 0.31 7.9 -15.8
|
||||
8400 173.2 0 19.0 3.2 32 4 9.2 0.31 8.0 -16.0
|
||||
8500 176.3 0 19.3 3.2 32 4 9.3 0.32 8.1 -16.0
|
||||
8600 179.6 0 19.6 3.3 31 5 9.5 0.32 8.2 -16.2
|
||||
8700 182.8 0 19.9 3.3 31 5 9.6 0.32 8.2 -16.3
|
||||
8800 186.1 0 20.2 3.3 31 5 9.7 0.33 8.3 -16.4
|
||||
8900 189.4 0 20.5 3.3 30 5 9.8 0.33 8.3 -16.6
|
||||
9000 192.8 0 20.8 3.4 30 5 9.9 0.34 8.4 -16.7
|
||||
9100 196.2 0 21.2 3.4 30 5 10.0 0.34 8.4 -16.8
|
||||
9200 199.7 0 21.5 3.5 29 5 10.1 0.35 8.5 -17.0
|
||||
9300 203.1 0 21.8 3.5 29 5 10.3 0.35 8.6 -17.0
|
||||
9400 206.7 0 22.1 3.5 29 5 10.4 0.36 8.6 -17.2
|
||||
9500 210.2 0 22.5 3.6 28 6 10.5 0.36 8.7 -17.3
|
||||
9600 213.8 0 22.8 3.6 28 6 10.6 0.36 8.8 -17.4
|
||||
9700 217.4 0 23.1 3.7 28 6 10.7 0.37 8.8 -17.5
|
||||
9800 221.1 0 23.4 3.7 28 6 10.8 0.37 8.9 -17.6
|
||||
9900 224.8 0 23.8 3.8 27 6 10.9 0.38 8.9 -17.7
|
||||
10000 228.6 0 24.1 3.8 27 6 11.0 0.38 9.0 -17.8
|
||||
10100 232.3 0 24.4 3.8 27 6 11.1 0.39 9.0 -18.0
|
||||
10200 236.2 0 24.8 3.8 27 6 11.3 0.39 9.1 -18.0
|
||||
10300 278 0 25.1 26 3.2 6 11.4 0.39 9.1 -18.1
|
||||
10400 281.2 0 25.5 26 3.2 7 11.5 0.40 9.2 -18.2
|
||||
10500 284.4 0 25.8 26 3.2 7 11.6 0.40 9.2 -18.3
|
||||
10600 287.6 0 26.2 26 3.4 7 11.7 0.41 9.3 -18.4
|
||||
10700 291 0 26.5 25 3.3 7 11.8 0.41 9.3 -18.5
|
||||
10800 294.3 0 26.9 25 3.4 7 11.9 0.41 9.4 -18.7
|
||||
10900 297.7 0 27.2 25 3.4 7 12.0 0.42 9.5 -18.7
|
||||
11000 301.1 0 27.6 25 3.6 7 12.1 0.42 9.5 -18.8
|
||||
11100 304.7 0 27.9 24 3.5 8 12.2 0.43 9.5 -19.0
|
||||
11200 308.2 0 28.3 24 3.7 8 12.3 0.43 9.6 -19.0
|
||||
11300 311.9 0 28.6 24 3.7 8 12.4 0.43 9.6 -19.1
|
||||
11400 315.6 0 29.0 24 3.8 8 12.5 0.44 9.7 -19.3
|
||||
11500 319.4 0 29.4 23 3.8 8 12.6 0.44 9.7 -19.4
|
||||
11600 323.2 0 29.7 23 3.9 8 12.7 0.45 9.8 -19.4
|
||||
11700 327.1 0 30.1 23 3.9 8 12.7 0.45 9.8 -19.5
|
||||
11800 331 0 30.5 23 3.9 9 12.8 0.45 9.9 -19.7
|
||||
11900 334.9 0 30.8 23 4.0 9 12.9 0.46 9.9 -19.7
|
||||
12000 338.9 0 31.2 23 4.0 9 13.0 0.46 10.0 -19.7
|
||||
12100 342.9 0 31.6 22 4.2 9 13.1 0.47 10.0 -19.8
|
||||
12200 347.1 0 32.0 22 4.2 9 13.2 0.47 10.0 -19.9
|
||||
12300 351.3 0 32.4 22 4.3 10 13.3 0.47 10.1 -20.1
|
||||
12400 355.6 0 32.7 21 4.3 10 13.3 0.48 10.2 -20.1
|
||||
12500 359.9 0 33.1 21 4.5 10 13.4 0.48 10.2 -20.2
|
||||
12600 364.4 0 33.5 21 4.4 10 13.5 0.48 10.2 -20.3
|
||||
12700 368.8 0 33.9 21 4.5 10 13.6 0.49 10.3 -20.4
|
||||
12800 373.3 0 34.3 21 4.5 10 13.7 0.49 10.3 -20.5
|
||||
12900 377.8 0 34.7 20 4.6 11 13.7 0.50 10.4 -20.6
|
||||
13000 382.4 0 35.1 20 4.7 11 13.8 0.50 10.4 -20.7
|
||||
13100 387.1 0 35.5 20 4.8 11 13.9 0.50 10.4 -20.7
|
||||
13200 391.9 0 35.9 20 4.8 11 14.0 0.51 10.5 -20.8
|
||||
13300 396.7 0 36.3 20 4.9 11 14.0 0.51 10.5 -20.9
|
||||
13400 401.6 0 36.7 19 4.9 12 14.1 0.51 10.6 -21.0
|
||||
13500 406.5 0 37.2 19 4.9 12 14.2 0.52 10.6 -21.1
|
||||
13600 411.4 0 37.6 19 5.2 12 14.2 0.52 10.7 -21.1
|
||||
13700 416.6 0 38.0 19 5.0 12 14.3 0.52 10.7 -21.2
|
||||
13800 421.6 0 38.4 19 5.3 12 14.4 0.53 10.7 -21.3
|
||||
13900 426.9 0 38.9 18 5.2 13 14.4 0.53 10.8 -21.4
|
||||
14000 432.1 0 39.3 18 5.4 13 14.5 0.54 10.8 -21.5
|
||||
14100 437.5 0 39.7 18 5.4 13 14.5 0.54 10.9 -21.7
|
||||
14200 442.9 0 40.2 18 5.6 14 14.6 0.54 10.9 -21.7
|
||||
14300 448.5 0 40.6 17 5.6 14 14.7 0.55 10.9 -21.7
|
||||
14400 454.1 0 41.1 17 5.9 14 14.7 0.55 11.0 -21.8
|
||||
14500 460 0 41.5 17 5.9 15 14.8 0.55 11.1 -21.9
|
||||
14600 465.9 0 42.0 17 5.8 15 14.9 0.56 11.1 -22.0
|
||||
14700 471.7 0 42.5 17 5.8 15 14.9 0.56 11.1 -22.1
|
||||
14800 477.5 0 42.9 17 6.1 15 15.0 0.56 11.2 -22.1
|
||||
14900 483.6 0 43.4 16 6.1 16 15.0 0.57 11.2 -22.3
|
||||
15000 489.7 0 43.9 16 6.4 16 15.1 0.57 11.3 -22.3
|
||||
15100 496.1 0 44.4 16 6.5 17 15.2 0.57 11.3 -22.4
|
||||
15200 502.6 0 44.9 15 6.6 17 15.2 0.58 11.3 -22.4
|
||||
15300 509.2 0 45.4 15 6.6 17 15.3 0.58 11.4 -22.6
|
||||
15400 515.8 0 45.9 15 6.6 17 15.4 0.59 11.4 -22.7
|
||||
15500 522.4 0 46.4 15 6.9 18 15.4 0.59 11.4 -22.8
|
||||
15600 529.3 0 46.9 15 7.0 18 15.5 0.59 11.5 -22.8
|
||||
15700 536.3 0 47.4 14 7.2 19 15.6 0.60 11.5 -22.9
|
||||
15800 543.5 0 48.0 14 7.3 19 15.7 0.60 11.6 -23.0
|
||||
15900 550.8 0 48.5 14 7.6 20 15.8 0.60 11.6 -23.1
|
||||
16000 558.4 0 49.1 13 7.6 20 15.9 0.61 11.6 -23.1
|
||||
16100 566 0 49.6 13 8.0 21 15.9 0.61 11.8 -23.3
|
||||
16200 574 0 50.2 13 8.2 22 16.0 0.62 11.8 -23.4
|
||||
16300 582.2 0 50.8 12 8.6 23 16.2 0.62 11.9 -23.6
|
||||
16400 590.8 0 51.4 12 8.7 24 16.3 0.62 12.0 -23.8
|
||||
16500 599.5 0 52.1 12 9.2 25 16.4 0.63 12.0 -23.8
|
||||
16600 608.7 0 52.7 11 9.6 26 16.6 0.63 12.1 -24.0
|
||||
16700 618.3 0 53.4 11 10.0 27 16.7 0.64 12.2 -24.1
|
||||
16800 628.3 0 54.1 10 10.5 28 16.9 0.64 12.3 -24.3
|
||||
16900 638.8 0 54.8 10 11.1 30 17.1 0.65 12.3 -24.4
|
||||
17000 649.9 0 55.6 9 11.8 32 17.3 0.65 12.4 -24.6
|
||||
17100 661.7 0 56.4 9 12.8 34 17.6 0.66 12.5 -24.8
|
||||
17200 674.5 0 57.3 8 14.0 37 17.9 0.67 12.6 -25.0
|
||||
17300 688.5 0 58.2 8 15.7 40 18.2 0.67 12.7 -25.1
|
||||
17400 704.2 0 59.2 7 18.2 45 18.7 0.68 12.8 -25.4
|
||||
17500 722.4 0 60.3 6 22.8 53 19.2 0.69 12.8 -25.6
|
||||
17600 745.2 0 61.7 5 25.0 67 19.8 0.70 13.0 -25.8
|
||||
17700 751.7 0 63.4 40.3 5 68 20.9 0.72 13.1 -26.1
|
||||
17785 806.0 0 66.0 54.0 4 72 25.0 0.76 13.4 -26.5
|
||||
17700 859.7 0 70.3 40.5 5 68 27.8 0.79 13.4 -26.7
|
||||
17600 887.0 0 72.0 23.5 5 70 30.4 0.81 13.4 -26.8
|
||||
17500 906.7 0 73.2 18.0 6 54 32.6 0.83 13.4 -26.7
|
||||
17400 922.9 0 74.2 15.1 7 45 34.5 0.84 13.4 -26.6
|
||||
17300 937.0 0 75.0 13.3 8 40 36.4 0.85 13.3 -26.6
|
||||
17200 949.5 0 75.7 12.0 9 36 38.2 0.87 13.3 -26.5
|
||||
17100 961.0 0 76.4 11.0 10 33 39.9 0.88 13.2 -26.5
|
||||
17000 971.6 0 77.0 10.3 10 31 41.7 0.89 13.2 -26.3
|
||||
16900 981.6 0 77.6 9.7 11 29 43.3 0.90 13.2 -26.2
|
||||
16800 990.9 0 78.1 9.1 11 27 45.0 0.91 13.1 -26.1
|
||||
16700 999.8 0 78.6 8.7 12 26 46.7 0.92 13.0 -26.0
|
||||
16600 1008.3 0 79.1 8.3 13 25 48.4 0.93 13.0 -25.9
|
||||
16500 1016.4 0 79.5 7.9 13 23 50.0 0.94 12.9 -25.8
|
||||
16400 1024.1 0 79.9 7.6 14 23 51.7 0.95 12.8 -25.7
|
||||
16300 1031.6 0 80.3 7.4 14 22 53.4 0.96 12.8 -25.5
|
||||
16200 1038.8 0 80.7 7.1 15 21 55.1 0.97 12.7 -25.4
|
||||
16100 1045.8 0 81.1 6.9 15 20 56.8 0.98 12.7 -25.3
|
||||
16000 1052.6 0 81.5 6.7 15 20 58.5 0.99 12.6 -25.1
|
||||
15900 1059.2 0 81.8 6.5 16 19 60.2 1.00 12.5 -25.1
|
||||
15800 1065.6 0 82.1 6.3 16 18 62.0 1.01 12.5 -24.9
|
||||
15700 1071.8 0 82.5 6.1 17 18 63.7 1.02 12.4 -24.8
|
||||
15600 1077.8 0 82.8 5.9 17 17 65.4 1.03 12.4 -24.7
|
||||
15500 1083.7 0 83.1 5.8 18 17 67.2 1.04 12.3 -24.6
|
||||
15400 1089.5 0 83.4 5.8 18 17 68.9 1.05 12.2 -24.4
|
||||
15300 1095.2 0 83.7 5.6 18 16 70.7 1.06 12.1 -24.3
|
||||
15200 1100.7 0 83.9 5.5 19 16 72.5 1.07 12.1 -24.2
|
||||
15100 1106.1 0 84.2 5.4 19 15 74.2 1.08 12.0 -24.1
|
||||
15000 1111.5 0 84.5 5.3 19 15 76.1 1.09 12.0 -23.9
|
||||
14900 1116.7 0 84.7 5.2 20 15 77.9 1.10 11.9 -23.8
|
||||
14800 1121.8 0 85.0 5.1 20 14 79.7 1.11 11.8 -23.6
|
||||
14700 1126.8 0 85.2 4.9 21 14 81.5 1.12 11.7 -23.5
|
||||
14600 1131.7 0 85.5 4.8 21 14 83.4 1.13 11.6 -23.4
|
||||
14500 1136.5 0 85.7 4.8 21 14 85.2 1.14 11.6 -23.2
|
||||
14400 1141.3 0 85.9 4.7 22 13 87.1 1.15 11.5 -23.1
|
||||
14300 1145.9 0 86.1 4.6 22 13 89.0 1.16 11.5 -23.0
|
||||
14200 1150.5 0 86.3 4.6 22 13 90.9 1.17 11.4 -22.8
|
||||
14100 1155.1 0 86.5 4.5 23 13 92.7 1.19 11.3 -22.7
|
||||
14000 1159.6 0 86.8 4.5 23 12 94.6 1.20 11.3 -22.5
|
||||
13900 1164.0 0 87.0 4.4 23 12 96.6 1.21 11.2 -22.4
|
||||
13800 1168.4 0 87.2 4.3 24 12 98.5 1.22 11.1 -22.3
|
||||
13700 1172.7 0 87.3 4.3 24 12 100.4 1.23 11.1 -22.1
|
||||
13600 1176.9 0 87.5 4.2 24 12 102.3 1.24 11.0 -22.0
|
||||
13500 1181.1 0 87.7 4.2 24 12 104.3 1.26 10.9 -21.8
|
||||
13400 1185.3 0 87.9 4.2 25 11 106.2 1.27 10.8 -21.7
|
||||
13300 1189.4 0 88.1 4.1 25 11 108.1 1.28 10.7 -21.4
|
||||
13200 1193.5 0 88.3 4.0 25 11 110.1 1.29 10.7 -21.3
|
||||
13100 1197.5 0 88.4 4.0 26 11 112.0 1.31 10.6 -21.1
|
||||
13000 1201.4 0 88.6 4.0 26 11 113.9 1.32 10.5 -21.0
|
||||
12900 1205.4 0 88.8 4.0 26 11 115.9 1.33 10.4 -20.8
|
||||
12800 1209.3 0 88.9 3.8 26 10 117.7 1.35 10.3 -20.7
|
||||
12700 1213.1 0 89.1 3.8 27 10 119.6 1.36 10.3 -20.5
|
||||
12600 1216.9 0 89.3 3.8 27 10 121.5 1.37 10.2 -20.4
|
||||
12500 1220.6 0 89.4 3.8 27 10 123.4 1.39 10.2 -20.3
|
||||
12400 1224.4 0 89.6 3.7 28 10 125.2 1.40 10.0 -20.1
|
||||
12300 1228.0 0 89.7 3.6 28 10 127.1 1.42 9.9 -19.9
|
||||
12200 1231.7 0 89.9 3.7 28 10 128.9 1.43 9.8 -19.7
|
||||
12100 1235.3 0 90.0 3.6 28 10 130.6 1.45 9.8 -19.6
|
||||
12000 1238.9 0 90.2 3.5 29 9 132.4 1.46 9.7 -19.5
|
||||
11900 1242.4 0 90.3 3.5 29 9 134.0 1.48 9.6 -19.4
|
||||
11800 1245.9 0 90.5 3.5 29 9 135.7 1.49 9.5 -19.1
|
||||
11700 1249.3 0 90.6 3.5 30 9 137.2 1.51 9.4 -19.0
|
||||
11600 1252.8 0 90.7 3.4 30 9 138.7 1.53 9.3 -18.8
|
||||
11500 1256.2 0 90.8 3.3 30 9 140.2 1.54 9.3 -18.7
|
||||
11400 1259.5 0 91.0 3.4 30 9 141.7 1.56 9.2 -18.4
|
||||
11300 1262.9 0 91.1 3.3 31 9 143.3 1.58 9.1 -18.3
|
||||
11200 1266.2 0 91.2 3.3 31 9 145.0 1.60 9.0 -18.1
|
||||
11100 1269.5 0 91.4 3.3 31 9 146.8 1.62 9.0 -18.0
|
||||
11000 1272.8 0 91.5 3.3 31 8 148.5 1.64 8.9 -17.8
|
||||
10900 1276.1 0 91.6 3.3 31 8 150.2 1.66 8.8 -17.7
|
||||
10800 1279.3 0 91.7 3.3 31 8 151.9 1.68 8.7 -17.5
|
||||
10700 1282.6 0 91.8 3.3 31 8 153.6 1.70 8.7 -17.4
|
||||
10600 1285.8 0 92.0 3.3 31 8 155.2 1.72 8.6 -17.3
|
||||
10500 1289.1 0 92.1 3.3 31 8 156.8 1.74 8.5 -17.1
|
||||
10400 1292.3 0 92.2 3.3 31 8 158.3 1.76 8.5 -17.0
|
||||
10300 1295.6 0 92.3 3.3 31 8 159.6 1.78 8.4 -16.9
|
||||
10200 1298.9 0 92.4 3.3 31 8 161.0 1.80 8.4 -16.7
|
||||
10100 1302.2 0 92.5 3.3 31 8 162.3 1.82 8.3 -16.6
|
||||
10000 1305.4 0 92.6 3.2 31 8 163.5 1.84 8.2 -16.4
|
||||
}
|
||||
} Ende Spaltengruppe
|
||||
} Ende Standard_Tafel
|
||||
|
||||
} Ende Schuss_Tafel
|
||||
|
||||
Executable
+385
@@ -0,0 +1,385 @@
|
||||
###########################################################################
|
||||
# #
|
||||
# Projekt TES : File "HE-M1-M64Base-TableE.sus" zur Munition "M64" #
|
||||
# #
|
||||
# Bei der Auspraegung des Ballistik-Moduls vereinbarte Bezeichnungen #
|
||||
# Tafel_Namen : ENTFERNUNG, AUFSATZ, FLUGZEIT, -- obligatorisch #
|
||||
# VORHALT -- projektspezifisch #
|
||||
# Param_Namen : DELTA_V0, LUFTTEMP, LUFTDRUCK, #
|
||||
# LAENGSWIND, QUERWIND, #
|
||||
# PULVERTEMP -- Korrektur-Parameter #
|
||||
# #
|
||||
###########################################################################
|
||||
|
||||
# Aenderung/Stand: 09.07.14-07:52
|
||||
|
||||
Schuss_Tafel =
|
||||
{
|
||||
Munition = "HE-M1-M64"
|
||||
Version = "HE M64 Base Table-E"
|
||||
Muni_Parameter = { Kaliber = 155.0 Masse = 46.30 V0 = 912.0 }
|
||||
Std_Parameter = { DELTA_V0 = 0.0
|
||||
LUFTTEMP = 15.0
|
||||
LUFTDRUCK = 1013.25
|
||||
LAENGSWIND= 0.0
|
||||
QUERWIND = 0.0
|
||||
PULVERTEMP= 21.1 }
|
||||
Entfernung_Range= { Min = 100.0 Max = 12100.0 Delta = 100.0 Scheitel = 12228.0 }
|
||||
Ballistik = "Parabel"
|
||||
###########################################################################
|
||||
|
||||
Standard_Tafel =
|
||||
{
|
||||
Spaltengruppe =
|
||||
{ Belegung = { AUFSATZ = (2) [-]
|
||||
VORHALT = (3) [-]
|
||||
FLUGZEIT = (4)
|
||||
DELTA_RGE = (5) [-]
|
||||
DELTA_ELEV = (6)
|
||||
FORK = (7) [-]
|
||||
DRIFT = (8) [-]
|
||||
}
|
||||
Zeilenlaenge = 8
|
||||
Datenblock =
|
||||
{
|
||||
#
|
||||
# RGE ELEV TOF DELTA DELTA FORK BEARING-CORR. RANGE-CORR.
|
||||
# ENTF AUFSATZ VORHALT FLUGZEIT RGE ELEV DRIFT CW DEC INC
|
||||
# [m] [mil] [mil] [sec] [mil] [m] [mil] [mil] [mil] [m] [m]
|
||||
#
|
||||
100 0.8 0 0.1 0.9 119 1 0.1 0.00 0.1 -0.3
|
||||
200 1.7 0 0.3 0.9 118 1 0.1 0.00 0.3 -0.4
|
||||
300 2.5 0 0.4 0.9 117 1 0.2 0.01 0.5 -0.7
|
||||
400 3.4 0 0.5 0.9 116 1 0.2 0.01 0.7 -1.0
|
||||
500 4.3 0 0.7 0.8 115 1 0.3 0.01 0.8 -1.3
|
||||
600 5.1 0 0.8 0.8 114 1 0.3 0.01 1.0 -1.4
|
||||
700 6.0 0 0.9 0.9 114 1 0.4 0.01 1.2 -1.7
|
||||
800 6.9 0 1.1 0.9 113 1 0.5 0.02 1.3 -2.0
|
||||
900 7.8 0 1.2 0.9 112 1 0.5 0.02 1.5 -2.2
|
||||
1000 8.7 0 1.3 0.9 111 1 0.6 0.02 1.6 -2.5
|
||||
1100 9.6 0 1.5 0.9 110 1 0.6 0.02 1.8 -2.8
|
||||
1200 10.5 0 1.6 0.9 109 1 0.7 0.02 1.9 -3.0
|
||||
1300 11.5 0 1.8 0.9 108 1 0.8 0.03 2.1 -3.1
|
||||
1400 12.4 0 1.9 0.9 108 1 0.8 0.03 2.3 -3.4
|
||||
1500 13.3 0 2.0 1.0 107 1 0.9 0.03 2.4 -3.6
|
||||
1600 14.3 0 2.2 0.9 106 1 0.9 0.03 2.5 -3.8
|
||||
1700 15.2 0 2.3 1.0 105 1 1.0 0.03 2.6 -4.0
|
||||
1800 16.2 0 2.5 1.0 104 1 1.1 0.04 2.7 -4.1
|
||||
1900 17.2 0 2.6 0.9 103 1 1.1 0.04 2.9 -4.4
|
||||
2000 18.1 0 2.8 0.9 102 1 1.2 0.04 3.0 -4.6
|
||||
2100 19.1 0 2.9 1.0 102 1 1.2 0.04 3.2 -4.8
|
||||
2200 20.1 0 3.1 1.0 101 1 1.3 0.05 3.3 -4.9
|
||||
2300 21.1 0 3.2 1.0 100 1 1.4 0.05 3.4 -5.1
|
||||
2400 22.1 0 3.4 1.0 99 1 1.4 0.05 3.5 -5.3
|
||||
2500 23.1 0 3.5 1.1 98 1 1.5 0.05 3.7 -5.6
|
||||
2600 24.2 0 3.7 1.1 98 1 1.6 0.05 3.8 -5.8
|
||||
2700 25.2 0 3.8 1.0 97 1 1.6 0.06 4.0 -5.9
|
||||
2800 26.2 0 4.0 1.0 96 1 1.7 0.06 4.1 -6.1
|
||||
2900 27.3 0 4.1 1.1 95 1 1.8 0.06 4.2 -6.3
|
||||
3000 28.4 0 4.3 1.1 94 1 1.8 0.06 4.4 -6.6
|
||||
3100 29.4 0 4.4 1.1 94 1 1.9 0.07 4.5 -6.7
|
||||
3200 30.5 0 4.6 1.1 93 1 1.9 0.07 4.6 -6.9
|
||||
3300 31.6 0 4.8 1.1 92 1 2.0 0.07 4.7 -7.1
|
||||
3400 32.7 0 4.9 1.1 91 1 2.1 0.07 4.9 -7.3
|
||||
3500 33.8 0 5.1 1.1 91 1 2.1 0.07 5.0 -7.5
|
||||
3600 34.9 0 5.2 1.1 90 1 2.2 0.08 5.2 -7.6
|
||||
3700 36.0 0 5.4 1.1 89 1 2.3 0.08 5.3 -7.8
|
||||
3800 37.2 0 5.6 1.1 88 1 2.3 0.08 5.4 -8.1
|
||||
3900 38.3 0 5.7 1.1 87 1 2.4 0.08 5.6 -8.3
|
||||
4000 39.5 0 5.9 1.1 87 1 2.5 0.09 5.7 -8.5
|
||||
4100 40.6 0 6.1 1.1 86 1 2.6 0.09 5.8 -8.6
|
||||
4200 41.8 0 6.2 1.2 85 1 2.6 0.09 6.0 -8.8
|
||||
4300 43.0 0 6.4 1.2 85 1 2.7 0.09 6.1 -9.0
|
||||
4400 44.2 0 6.6 1.2 84 2 2.8 0.10 6.1 -9.2
|
||||
4500 45.4 0 6.7 1.2 83 2 2.8 0.10 6.3 -9.4
|
||||
4600 46.6 0 6.9 1.2 82 2 2.9 0.10 6.4 -9.5
|
||||
4700 47.8 0 7.1 1.3 82 2 3.0 0.10 6.6 -9.7
|
||||
4800 49.1 0 7.3 1.3 81 2 3.0 0.11 6.6 -9.9
|
||||
4900 50.3 0 7.4 1.3 80 2 3.1 0.11 6.7 -10.1
|
||||
5000 51.6 0 7.6 1.3 80 2 3.2 0.11 6.8 -10.3
|
||||
5100 52.9 0 7.8 1.3 79 2 3.3 0.11 6.9 -10.4
|
||||
5200 54.1 0 8.0 1.3 78 2 3.3 0.12 7.1 -10.6
|
||||
5300 55.4 0 8.1 1.3 77 2 3.4 0.12 7.2 -10.8
|
||||
5400 56.7 0 8.3 1.3 77 2 3.5 0.12 7.3 -10.9
|
||||
5500 58.1 0 8.5 1.4 76 2 3.5 0.12 7.4 -11.1
|
||||
5600 59.4 0 8.7 1.3 75 2 3.6 0.13 7.5 -11.2
|
||||
5700 60.7 0 8.9 1.3 75 2 3.7 0.13 7.7 -11.4
|
||||
5800 62.1 0 9.1 1.4 74 2 3.8 0.13 7.8 -11.6
|
||||
5900 63.4 0 9.2 1.4 73 2 3.8 0.14 7.8 -11.7
|
||||
6000 64.8 0 9.4 1.4 73 2 3.9 0.14 8.0 -11.9
|
||||
6100 66.2 0 9.6 1.4 72 2 4.0 0.14 8.1 -12.1
|
||||
6200 67.6 0 9.8 1.4 71 2 4.1 0.14 8.2 -12.2
|
||||
6300 69.0 0 10.0 1.5 71 2 4.1 0.15 8.3 -12.4
|
||||
6400 70.5 0 10.2 1.5 70 2 4.2 0.15 8.5 -12.6
|
||||
6500 71.9 0 10.4 1.5 70 2 4.3 0.15 8.5 -12.7
|
||||
6600 73.4 0 10.6 1.5 69 2 4.4 0.15 8.6 -12.9
|
||||
6700 74.8 0 10.8 1.5 68 2 4.4 0.16 8.8 -13.0
|
||||
6800 76.3 0 11.0 1.5 68 2 4.5 0.16 8.9 -13.1
|
||||
6900 77.8 0 11.2 1.5 67 2 4.6 0.16 8.9 -13.3
|
||||
7000 79.3 0 11.4 1.5 66 2 4.7 0.17 9.1 -13.4
|
||||
7100 80.8 0 11.6 1.5 66 2 4.7 0.17 9.2 -13.6
|
||||
7200 82.4 0 11.8 1.5 65 2 4.8 0.17 9.2 -13.8
|
||||
7300 83.9 0 12.0 1.5 65 2 4.9 0.17 9.4 -13.9
|
||||
7400 85.5 0 12.2 1.6 64 2 5.0 0.18 9.5 -14.0
|
||||
7500 87.1 0 12.4 1.6 63 2 5.1 0.18 9.5 -14.2
|
||||
7600 88.7 0 12.6 1.6 63 2 5.1 0.18 9.7 -14.4
|
||||
7700 90.3 0 12.8 1.6 62 2 5.2 0.19 9.7 -14.5
|
||||
7800 91.9 0 13.1 1.6 62 2 5.3 0.19 9.9 -14.7
|
||||
7900 93.6 0 13.3 1.6 61 2 5.4 0.19 10.0 -14.8
|
||||
8000 95.2 0 13.5 1.7 60 3 5.4 0.20 10.0 -14.9
|
||||
8100 96.9 0 13.7 1.7 60 3 5.5 0.20 10.2 -15.0
|
||||
8200 98.6 0 13.9 1.7 59 3 5.6 0.20 10.3 -15.2
|
||||
8300 100.3 0 14.1 1.7 59 3 5.7 0.20 10.3 -15.3
|
||||
8400 102.0 0 14.4 1.8 58 3 5.8 0.21 10.5 -15.5
|
||||
8500 103.8 0 14.6 1.8 58 3 5.9 0.21 10.5 -15.6
|
||||
8600 105.5 0 14.8 1.8 57 3 5.9 0.21 10.6 -15.7
|
||||
8700 107.3 0 15.0 1.8 57 3 6.0 0.22 10.7 -15.9
|
||||
8800 109.1 0 15.3 1.8 56 3 6.1 0.22 10.8 -16.0
|
||||
8900 110.9 0 15.5 1.8 56 3 6.2 0.22 10.9 -16.2
|
||||
9000 112.7 0 15.7 1.8 55 3 6.3 0.23 10.9 -16.3
|
||||
9100 114.6 0 16.0 1.9 54 3 6.4 0.23 11.1 -16.5
|
||||
9200 116.4 0 16.2 1.9 54 3 6.4 0.23 11.1 -16.6
|
||||
9300 118.3 0 16.4 1.9 53 3 6.5 0.24 11.3 -16.7
|
||||
9400 120.2 0 16.7 1.9 53 3 6.6 0.24 11.3 -16.8
|
||||
9500 122.1 0 16.9 2.0 52 3 6.7 0.24 11.4 -16.9
|
||||
9600 124.1 0 17.1 2.0 52 3 6.8 0.25 11.5 -17.1
|
||||
9700 126.0 0 17.4 2.0 51 3 6.9 0.25 11.6 -17.2
|
||||
9800 128.0 0 17.6 2.0 51 3 7.0 0.25 11.7 -17.4
|
||||
9900 130.0 0 17.9 2.0 50 3 7.1 0.26 11.7 -17.5
|
||||
10000 132.0 0 18.1 2.0 50 3 7.1 0.26 11.8 -17.5
|
||||
10100 134.0 0 18.4 2.1 49 3 7.2 0.26 11.9 -17.7
|
||||
10200 136.1 0 18.6 2.1 49 4 7.3 0.27 12.0 -17.8
|
||||
10300 138.2 0 18.9 2.1 48 4 7.4 0.27 12.1 -18.0
|
||||
10400 140.3 0 19.1 2.1 48 4 7.5 0.27 12.2 -18.1
|
||||
10500 142.4 0 19.4 2.1 48 4 7.6 0.28 12.2 -18.2
|
||||
10600 144.5 0 19.6 2.2 47 4 7.7 0.28 12.3 -18.4
|
||||
10700 146.7 0 19.9 2.2 47 4 7.8 0.28 12.4 -18.4
|
||||
10800 148.9 0 20.2 2.2 46 4 7.9 0.29 12.5 -18.5
|
||||
10900 151.1 0 20.4 2.2 46 4 8.0 0.29 12.6 -18.7
|
||||
11000 153.3 0 20.7 2.2 45 4 8.0 0.29 12.7 -18.8
|
||||
11100 155.5 0 21.0 2.3 45 4 8.1 0.30 12.7 -18.9
|
||||
11200 157.8 0 21.2 2.3 44 4 8.2 0.30 12.8 -19.1
|
||||
11300 160.1 0 21.5 2.3 44 4 8.3 0.30 12.9 -19.2
|
||||
11400 162.4 0 21.8 2.3 43 4 8.4 0.31 13.0 -19.3
|
||||
11500 164.8 0 22.1 2.4 43 4 8.5 0.31 13.1 -19.3
|
||||
11600 167.1 0 22.3 2.3 43 4 8.6 0.31 13.1 -19.5
|
||||
11700 169.5 0 22.6 2.4 42 5 8.7 0.32 13.3 -19.6
|
||||
11800 171.9 0 22.9 2.4 42 5 8.8 0.32 13.3 -19.7
|
||||
11900 174.3 0 23.2 2.5 41 5 8.9 0.33 13.4 -19.8
|
||||
12000 176.8 0 23.5 2.5 41 5 9.0 0.33 13.4 -19.9
|
||||
12100 179.3 0 23.7 2.5 41 5 9.1 0.33 13.6 -20.1
|
||||
12200 181.8 0 24.0 2.5 40 5 9.2 0.34 13.6 -20.2
|
||||
12300 184.3 0 24.3 2.5 40 5 9.3 0.34 13.7 -20.2
|
||||
12400 186.9 0 24.6 2.6 39 5 9.4 0.34 13.7 -20.3
|
||||
12500 189.5 0 24.9 2.6 39 5 9.5 0.35 13.9 -20.5
|
||||
12600 192.1 0 25.2 2.6 39 5 9.6 0.35 13.9 -20.6
|
||||
12700 194.7 0 25.5 2.6 38 5 9.7 0.35 14.0 -20.7
|
||||
12800 197.4 0 25.8 2.7 38 5 9.8 0.36 14.1 -20.9
|
||||
12900 200.1 0 26.1 2.7 37 6 9.9 0.36 14.2 -21.0
|
||||
13000 202.8 0 26.4 2.7 37 6 10.0 0.37 14.2 -21.1
|
||||
13100 205.5 0 26.7 2.8 37 6 10.1 0.37 14.3 -21.2
|
||||
13200 208.3 0 27.0 2.8 36 6 10.2 0.37 14.4 -21.3
|
||||
13300 211.1 0 27.4 2.8 36 6 10.3 0.38 14.5 -21.4
|
||||
13400 214.0 0 27.7 2.8 36 6 10.4 0.38 14.5 -21.5
|
||||
13500 216.8 0 28.0 2.8 35 6 10.5 0.39 14.6 -21.6
|
||||
13600 219.7 0 28.3 2.9 35 6 10.6 0.39 14.7 -21.7
|
||||
13700 222.6 0 28.6 3.0 35 6 10.7 0.39 14.8 -21.8
|
||||
13800 225.6 0 28.9 2.9 34 6 10.8 0.40 14.8 -21.9
|
||||
13900 228.5 0 29.3 2.9 34 7 10.9 0.40 14.9 -22.0
|
||||
14000 231.5 0 29.6 3.1 34 7 11.1 0.40 15.0 -22.1
|
||||
14100 234.6 0 29.9 3.1 33 7 11.2 0.41 15.1 -22.2
|
||||
14200 237.6 0 30.2 3.0 33 7 11.3 0.41 15.1 -22.4
|
||||
14300 240.7 0 30.6 3.1 33 7 11.4 0.41 15.2 -22.5
|
||||
14400 243.8 0 30.9 3.2 32 7 11.5 0.42 15.3 -22.7
|
||||
14500 270.6 0 31.2 32 1.4 7 11.6 0.42 15.3 -22.8
|
||||
14600 273.3 0 31.5 32 1.4 7 11.7 0.43 15.4 -22.9
|
||||
14700 276.1 0 31.9 32 1.4 7 11.8 0.43 15.5 -22.9
|
||||
14800 279 0 32.2 31 1.4 8 11.9 0.43 15.6 -23.0
|
||||
14900 281.8 0 32.5 31 1.5 8 12.1 0.44 15.6 -23.1
|
||||
15000 284.7 0 32.9 31 1.5 8 12.2 0.44 15.7 -23.3
|
||||
15100 287.7 0 33.2 31 1.5 8 12.3 0.44 15.8 -23.4
|
||||
15200 290.7 0 33.6 30 1.5 8 12.4 0.45 15.8 -23.6
|
||||
15300 293.6 0 33.9 30 1.5 8 12.5 0.45 15.9 -23.7
|
||||
15400 296.7 0 34.2 30 1.6 8 12.6 0.45 16.0 -23.8
|
||||
15500 299.8 0 34.6 30 1.5 9 12.7 0.46 16.1 -23.8
|
||||
15600 302.9 0 34.9 29 1.6 9 12.9 0.46 16.1 -23.9
|
||||
15700 306.1 0 35.3 29 1.6 9 13.0 0.46 16.2 -24.0
|
||||
15800 309.3 0 35.6 29 1.6 9 13.1 0.47 16.2 -24.1
|
||||
15900 312.5 0 36.0 29 1.7 9 13.2 0.47 16.4 -24.3
|
||||
16000 315.8 0 36.3 28 1.6 9 13.3 0.47 16.4 -24.4
|
||||
16100 319.1 0 36.7 28 1.7 9 13.4 0.48 16.5 -24.5
|
||||
16200 322.4 0 37.1 28 1.7 9 13.6 0.48 16.5 -24.6
|
||||
16300 325.8 0 37.4 28 1.7 10 13.7 0.49 16.7 -24.7
|
||||
16400 329.2 0 37.8 27 1.8 10 13.8 0.49 16.7 -24.7
|
||||
16500 332.7 0 38.1 27 1.8 10 13.9 0.49 16.8 -24.8
|
||||
16600 336.2 0 38.5 27 1.8 10 14.0 0.50 16.8 -25.0
|
||||
16700 339.7 0 38.9 27 1.8 10 14.2 0.50 16.9 -25.1
|
||||
16800 343.2 0 39.2 27 1.8 10 14.3 0.50 17.0 -25.2
|
||||
16900 346.8 0 39.6 26 1.9 11 14.4 0.51 17.0 -25.3
|
||||
17000 350.5 0 40.0 26 1.8 11 14.5 0.51 17.2 -25.5
|
||||
17100 354.1 0 40.4 26 1.9 11 14.7 0.51 17.2 -25.6
|
||||
17200 357.9 0 40.7 26 1.9 11 14.8 0.51 17.3 -25.6
|
||||
17300 361.6 0 41.1 25 1.9 11 14.9 0.52 17.4 -25.7
|
||||
17400 365.4 0 41.5 25 2.0 11 15.0 0.52 17.5 -25.8
|
||||
17500 369.3 0 41.9 25 1.9 11 15.2 0.52 17.5 -26.0
|
||||
17600 373.1 0 42.3 25 2.0 12 15.3 0.53 17.6 -26.1
|
||||
17700 377 0 42.6 25 2.0 12 15.4 0.53 17.6 -26.2
|
||||
17800 381 0 43.0 24 2.0 12 15.5 0.53 17.7 -26.3
|
||||
17900 385 0 43.4 24 2.0 12 15.7 0.54 17.8 -26.5
|
||||
18000 389 0 43.8 24 2.0 12 15.8 0.54 17.9 -26.5
|
||||
18100 393 0 44.2 24 2.1 13 15.9 0.54 17.9 -26.6
|
||||
18200 397.1 0 44.6 24 2.1 13 16.1 0.55 18.0 -26.7
|
||||
18300 401.3 0 45.0 23 2.1 13 16.2 0.55 18.1 -26.9
|
||||
18400 405.5 0 45.4 23 2.1 13 16.3 0.55 18.1 -27.0
|
||||
18500 409.7 0 45.8 23 2.2 13 16.5 0.56 18.2 -27.1
|
||||
18600 414 0 46.2 23 2.2 14 16.6 0.56 18.3 -27.3
|
||||
18700 418.3 0 46.6 23 2.3 14 16.7 0.56 18.4 -27.4
|
||||
18800 422.8 0 47.1 22 2.2 14 16.9 0.57 18.4 -27.4
|
||||
18900 427.2 0 47.5 22 2.2 14 17.0 0.57 18.6 -27.5
|
||||
19000 431.6 0 47.9 22 2.2 14 17.2 0.57 18.6 -27.6
|
||||
19100 436.1 0 48.3 22 2.4 15 17.3 0.58 18.7 -27.8
|
||||
19200 440.8 0 48.7 21 2.3 15 17.4 0.58 18.7 -27.9
|
||||
19300 445.4 0 49.2 21 2.3 15 17.6 0.58 18.8 -28.0
|
||||
19400 450 0 49.6 21 2.4 15 17.7 0.59 18.9 -28.2
|
||||
19500 454.8 0 50.0 21 2.4 16 17.9 0.59 19.0 -28.3
|
||||
19600 459.5 0 50.5 21 2.4 16 18.0 0.59 19.1 -28.3
|
||||
19700 464.4 0 50.9 20 2.4 16 18.2 0.59 19.2 -28.4
|
||||
19800 469.2 0 51.4 20 2.5 16 18.3 0.60 19.2 -28.6
|
||||
19900 474.2 0 51.8 20 2.5 17 18.5 0.60 19.3 -28.7
|
||||
20000 479.2 0 52.3 20 2.5 17 18.7 0.60 19.5 -28.8
|
||||
20100 484.3 0 52.7 20 2.6 17 18.8 0.61 19.5 -28.9
|
||||
20200 489.5 0 53.2 19 2.6 18 19.0 0.61 19.6 -29.1
|
||||
20300 494.6 0 53.7 19 2.6 18 19.2 0.61 19.7 -29.2
|
||||
20400 499.9 0 54.1 19 2.7 18 19.3 0.62 19.8 -29.2
|
||||
20500 505.2 0 54.6 19 2.7 18 19.5 0.62 19.8 -29.5
|
||||
20600 510.6 0 55.1 19 2.8 19 19.7 0.62 19.9 -29.6
|
||||
20700 516.1 0 55.6 18 2.8 19 19.9 0.63 20.0 -29.7
|
||||
20800 521.7 0 56.1 18 2.8 19 20.0 0.63 20.1 -29.9
|
||||
20900 527.3 0 56.6 18 2.9 20 20.2 0.63 20.1 -30.1
|
||||
21000 533.1 0 57.1 18 2.9 20 20.4 0.64 20.2 -30.1
|
||||
21100 538.9 0 57.6 17 2.9 21 20.6 0.64 20.3 -30.1
|
||||
21200 544.7 0 58.1 17 3.1 21 20.8 0.64 20.4 -30.3
|
||||
21300 550.8 0 58.6 17 3.0 22 21.0 0.65 20.5 -30.5
|
||||
21400 556.9 0 59.2 16 3.2 22 21.3 0.65 20.6 -30.6
|
||||
21500 563.2 0 59.7 16 3.1 23 21.5 0.65 20.6 -30.8
|
||||
21600 569.5 0 60.3 16 3.3 23 21.7 0.66 20.7 -30.9
|
||||
21700 576 0 60.8 16 3.3 24 22.0 0.66 20.8 -31.0
|
||||
21800 582.6 0 61.4 15 3.4 24 22.2 0.67 20.9 -31.1
|
||||
21900 589.3 0 62.0 15 3.5 25 22.5 0.67 20.9 -31.2
|
||||
22000 596.3 0 62.6 15 3.5 25 22.7 0.67 21.0 -31.3
|
||||
22100 603.3 0 63.2 14 3.6 26 23.0 0.68 21.1 -31.5
|
||||
22200 610.6 0 63.8 14 3.7 27 23.3 0.68 21.2 -31.6
|
||||
22300 618 0 64.5 14 3.9 28 23.6 0.69 21.3 -31.7
|
||||
22400 625.7 0 65.1 13 3.9 29 23.9 0.69 21.4 -31.9
|
||||
22500 633.6 0 65.8 13 4.1 30 24.3 0.69 21.5 -31.9
|
||||
22600 641.8 0 66.5 13 4.3 31 24.6 0.70 21.6 -32.0
|
||||
22700 650.3 0 67.2 12 4.4 32 25.0 0.70 21.7 -32.2
|
||||
22800 659.1 0 68.0 12 4.6 34 25.4 0.71 21.7 -32.3
|
||||
22900 668.3 0 68.8 11 4.7 35 25.8 0.71 21.8 -32.5
|
||||
23000 677.8 0 69.6 11 4.8 37 26.3 0.72 22.0 -32.6
|
||||
23100 680.0 0 70.4 10.3 10 39 26.8 0.73 22.0 -32.8
|
||||
23200 690.5 0 71.3 11.0 10 42 27.4 0.73 22.1 -32.8
|
||||
23300 701.9 0 72.3 11.8 9 45 28.0 0.74 22.2 -33.1
|
||||
23400 714.0 0 73.3 12.7 8 49 28.7 0.75 22.3 -33.2
|
||||
23500 727.3 0 74.4 14.0 8 55 29.5 0.75 22.4 -33.4
|
||||
23600 742.1 0 75.7 15.8 7 61 30.4 0.76 22.6 -33.7
|
||||
23700 758.8 0 77.1 18.0 6 71 31.5 0.77 22.8 -34.0
|
||||
23800 778.1 0 78.7 22.6 5 89 33.0 0.78 23.0 -34.5
|
||||
23900 803.9 0 80.7 36.3 4 90 35.0 0.80 23.3 -34.8
|
||||
23975 850.6 0 85.0 44.4 4 90 40.0 0.83 24.0 -35.5
|
||||
23900 892.7 0 87.5 32.2 5 90 44.3 0.85 24.7 -36.8
|
||||
23800 914.9 0 89.1 19.3 6 77 47.3 0.86 24.9 -37.2
|
||||
23700 931.2 0 90.3 14.8 7 60 49.7 0.87 25.1 -37.6
|
||||
23600 944.6 0 91.2 12.4 9 50 51.8 0.88 25.4 -37.9
|
||||
23500 955.9 0 92.0 10.8 10 44 53.0 0.89 25.4 -38.2
|
||||
23400 966.1 0 92.7 9.8 11 40 54.2 0.90 25.4 -38.2
|
||||
23300 975.6 0 93.4 9.1 12 37 55.6 0.91 25.5 -38.2
|
||||
23200 984.3 0 94.0 8.5 12 34 56.9 0.92 25.5 -38.2
|
||||
23100 992.5 0 94.5 8.0 13 32 58.3 0.92 25.5 -38.2
|
||||
23000 1000.2 0 95.0 7.5 14 30 59.7 0.93 25.4 -38.3
|
||||
22900 1007.5 0 95.5 7.1 15 29 61.0 0.94 25.4 -38.3
|
||||
22800 1014.4 0 96.0 6.8 15 27 62.2 0.95 25.4 -38.3
|
||||
22700 1021.0 0 96.4 6.5 16 26 63.4 0.95 25.4 -38.3
|
||||
22600 1027.4 0 96.8 6.3 16 25 64.6 0.96 25.5 -38.2
|
||||
22500 1033.5 0 97.2 6.0 17 24 65.8 0.97 25.4 -38.2
|
||||
22400 1039.4 0 97.6 5.8 18 23 67.0 0.97 25.4 -38.3
|
||||
22300 1045.0 0 97.9 5.5 19 22 68.2 0.98 25.4 -38.2
|
||||
22200 1050.5 0 98.3 5.4 19 22 69.4 0.99 25.3 -38.1
|
||||
22100 1055.8 0 98.6 5.3 20 21 70.5 0.99 25.2 -38.1
|
||||
22000 1061.0 0 98.9 5.1 20 20 71.6 1.00 25.2 -38.1
|
||||
21900 1066.0 0 99.2 5.0 20 20 72.7 1.01 25.2 -38.0
|
||||
21800 1071.0 0 99.6 4.9 21 20 73.9 1.01 25.2 -37.9
|
||||
21700 1075.8 0 99.9 4.8 21 19 75.0 1.02 25.1 -37.8
|
||||
21600 1080.6 0 100.1 4.8 22 19 76.2 1.03 25.0 -37.8
|
||||
21500 1085.3 0 100.4 4.6 22 18 77.3 1.03 24.9 -37.6
|
||||
21400 1089.8 0 100.7 4.5 23 18 78.4 1.04 24.9 -37.5
|
||||
21300 1094.3 0 101.0 4.4 23 18 79.5 1.05 24.8 -37.4
|
||||
21200 1098.6 0 101.2 4.3 24 17 80.7 1.05 24.7 -37.3
|
||||
21100 1102.9 0 101.5 4.3 24 17 81.8 1.06 24.6 -37.2
|
||||
21000 1107.1 0 101.7 4.1 25 16 82.9 1.07 24.6 -37.2
|
||||
20900 1111.2 0 102.0 4.0 25 16 84.0 1.07 24.5 -37.1
|
||||
20800 1115.2 0 102.2 4.0 26 16 85.0 1.08 24.4 -36.9
|
||||
20700 1119.2 0 102.4 4.0 26 16 86.1 1.09 24.3 -36.8
|
||||
20600 1123.1 0 102.7 3.9 26 15 87.1 1.09 24.2 -36.7
|
||||
20500 1126.9 0 102.9 3.8 27 15 88.2 1.10 24.1 -36.5
|
||||
20400 1130.7 0 103.1 3.8 27 15 89.3 1.11 24.1 -36.4
|
||||
20300 1134.5 0 103.3 3.7 27 15 90.4 1.11 24.0 -36.3
|
||||
20200 1138.1 0 103.5 3.6 28 14 91.5 1.12 23.8 -36.2
|
||||
20100 1141.7 0 103.7 3.6 28 14 92.6 1.13 23.7 -36.0
|
||||
20000 1145.3 0 103.9 3.6 29 14 93.7 1.14 23.7 -35.8
|
||||
19900 1148.8 0 104.1 3.5 29 14 94.7 1.14 23.6 -35.6
|
||||
19800 1152.3 0 104.3 3.4 30 13 95.8 1.15 23.5 -35.4
|
||||
19700 1155.7 0 104.5 3.4 30 13 96.8 1.16 23.5 -35.4
|
||||
19600 1159.1 0 104.7 3.4 30 13 97.8 1.17 23.4 -35.2
|
||||
19500 1162.4 0 104.9 3.3 31 13 98.9 1.17 23.3 -35.1
|
||||
19400 1165.7 0 105.1 3.3 31 13 99.9 1.18 23.2 -34.9
|
||||
19300 1168.9 0 105.2 3.2 31 13 100.9 1.19 23.1 -34.8
|
||||
19200 1172.1 0 105.4 3.2 32 12 101.8 1.20 22.9 -34.6
|
||||
19100 1175.3 0 105.6 3.2 32 12 102.8 1.20 22.8 -34.5
|
||||
19000 1178.4 0 105.7 3.1 33 12 103.7 1.21 22.7 -34.3
|
||||
18900 1181.5 0 105.9 3.1 33 12 104.6 1.22 22.6 -34.1
|
||||
18800 1184.6 0 106.1 3.0 34 12 105.5 1.23 22.4 -33.9
|
||||
18700 1187.6 0 106.2 3.0 34 11 106.4 1.24 22.3 -33.7
|
||||
18600 1190.5 0 106.4 2.9 34 11 107.3 1.25 22.3 -33.7
|
||||
18500 1193.4 0 106.5 2.9 35 11 108.2 1.25 22.1 -33.5
|
||||
18400 1196.3 0 106.7 2.9 35 11 109.0 1.26 22.0 -33.3
|
||||
18300 1199.2 0 106.8 2.8 36 11 109.9 1.27 21.9 -33.1
|
||||
18200 1202.0 0 107.0 2.9 36 11 110.7 1.28 21.8 -32.9
|
||||
18100 1204.9 0 107.1 2.8 36 11 111.4 1.29 21.7 -32.8
|
||||
18000 1207.6 0 107.2 2.8 37 11 112.2 1.30 21.5 -32.6
|
||||
17900 1210.4 0 107.4 2.8 37 10 112.9 1.31 21.5 -32.4
|
||||
17800 1213.1 0 107.5 2.7 37 10 113.7 1.32 21.4 -32.2
|
||||
17700 1215.8 0 107.6 2.7 38 10 114.4 1.33 21.2 -32.0
|
||||
17600 1218.5 0 107.8 2.7 38 10 115.0 1.34 21.0 -31.9
|
||||
17500 1221.2 0 107.9 2.7 38 10 115.7 1.34 20.9 -31.7
|
||||
17400 1223.8 0 108.0 2.6 39 10 116.3 1.35 20.8 -31.6
|
||||
17300 1226.4 0 108.1 2.6 39 10 117.0 1.36 20.7 -31.5
|
||||
17200 1229.0 0 108.3 2.6 39 10 117.6 1.37 20.6 -31.3
|
||||
17100 1231.6 0 108.4 2.5 40 10 118.3 1.38 20.5 -31.2
|
||||
17000 1234.1 0 108.5 2.5 40 10 119.1 1.39 20.3 -31.0
|
||||
16900 1236.6 0 108.6 2.5 40 10 119.8 1.41 20.2 -30.9
|
||||
16800 1239.2 0 108.7 2.5 40 9 120.5 1.42 20.1 -30.7
|
||||
16700 1241.7 0 108.9 2.5 40 9 121.3 1.43 20.0 -30.6
|
||||
16600 1244.2 0 109.0 2.6 40 9 122.0 1.44 20.0 -30.5
|
||||
16500 1246.8 0 109.1 2.6 40 9 122.6 1.45 19.9 -30.5
|
||||
16400 1249.3 0 109.2 2.5 40 9 123.2 1.46 19.8 -30.4
|
||||
16300 1251.9 0 109.3 2.5 40 9 123.8 1.47 19.8 -30.3
|
||||
16200 1254.4 0 109.4 2.5 40 9 124.4 1.48 19.7 -30.1
|
||||
16100 1257.0 0 109.5 2.5 40 9 124.9 1.49 19.6 -30.1
|
||||
16000 1259.6 0 109.6 2.5 40 9 125.5 1.50 19.6 -29.9
|
||||
15900 1262.1 0 109.7 2.5 40 9 126.0 1.51 19.5 -29.8
|
||||
15800 1264.6 0 109.8 2.5 40 9 126.4 1.52 19.4 -29.7
|
||||
15700 1267.2 0 109.9 2.5 40 9 126.9 1.53 19.3 -29.6
|
||||
15600 1269.7 0 110.0 2.5 40 9 127.3 1.54 19.2 -29.5
|
||||
15500 1272.2 0 110.1 2.5 40 9 127.7 1.56 19.1 -29.3
|
||||
15400 1274.7 0 110.2 2.5 40 9 128.1 1.57 19.0 -29.2
|
||||
15300 1277.2 0 110.3 2.5 40 9 128.5 1.58 18.9 -29.1
|
||||
15200 1279.7 0 110.4 2.5 40 9 128.9 1.59 18.8 -28.9
|
||||
15100 1282.2 0 110.5 2.5 40 9 129.3 1.60 18.7 -28.7
|
||||
15000 1284.7 0 110.6 2.5 40 9 129.7 1.61 18.6 -28.6
|
||||
}
|
||||
} Ende Spaltengruppe
|
||||
} Ende Standard_Tafel
|
||||
|
||||
} Ende Schuss_Tafel
|
||||
|
||||
Executable
+457
@@ -0,0 +1,457 @@
|
||||
###########################################################################
|
||||
# #
|
||||
# Projekt TES : File "HE-M1-M64Base-TableE.sus" zur Munition "M64" #
|
||||
# #
|
||||
# Bei der Auspraegung des Ballistik-Moduls vereinbarte Bezeichnungen #
|
||||
# Tafel_Namen : ENTFERNUNG, AUFSATZ, FLUGZEIT, -- obligatorisch #
|
||||
# VORHALT -- projektspezifisch #
|
||||
# Param_Namen : DELTA_V0, LUFTTEMP, LUFTDRUCK, #
|
||||
# LAENGSWIND, QUERWIND, #
|
||||
# PULVERTEMP -- Korrektur-Parameter #
|
||||
# #
|
||||
###########################################################################
|
||||
|
||||
# Aenderung/Stand: 09.07.14-07:52
|
||||
|
||||
Schuss_Tafel =
|
||||
{
|
||||
Munition = "HE-M1-M64"
|
||||
Version = "HE M64 Base Table-E"
|
||||
Muni_Parameter = { Kaliber = 155.0 Masse = 46.30 V0 = 912.0 }
|
||||
Std_Parameter = { DELTA_V0 = 0.0
|
||||
LUFTTEMP = 15.0
|
||||
LUFTDRUCK = 1013.25
|
||||
LAENGSWIND= 0.0
|
||||
QUERWIND = 0.0
|
||||
PULVERTEMP= 21.1 }
|
||||
Entfernung_Range= { Min = 100.0 Max = 12100.0 Delta = 100.0 Scheitel = 12228.0 }
|
||||
Ballistik = "Parabel"
|
||||
###########################################################################
|
||||
|
||||
Standard_Tafel =
|
||||
{
|
||||
Spaltengruppe =
|
||||
{ Belegung = { AUFSATZ = (2) [-]
|
||||
VORHALT = (3) [-]
|
||||
FLUGZEIT = (4)
|
||||
DELTA_RGE = (5) [-]
|
||||
DELTA_ELEV = (6)
|
||||
FORK = (7) [-]
|
||||
DRIFT = (8) [-]
|
||||
}
|
||||
Zeilenlaenge = 8
|
||||
Datenblock =
|
||||
{
|
||||
#
|
||||
# RGE ELEV TOF DELTA DELTA FORK BEARING-CORR. RANGE-CORR.
|
||||
# ENTF AUFSATZ VORHALT FLUGZEIT RGE ELEV DRIFT CW DEC INC
|
||||
# [m] [mil] [mil] [sec] [mil] [m] [mil] [mil] [mil] [m] [m]
|
||||
#
|
||||
100 0.6 0 0.1 0.6 169 1 0.0 0.00 0.2 -0.1
|
||||
200 1.2 0 0.2 0.6 168 1 0.1 0.00 0.3 -0.3
|
||||
300 1.8 0 0.3 0.6 167 1 0.1 0.00 0.5 -0.5
|
||||
400 2.4 0 0.4 0.6 165 1 0.1 0.01 0.7 -0.7
|
||||
500 3.0 0 0.6 0.6 164 1 0.1 0.01 0.8 -0.8
|
||||
600 3.6 0 0.7 0.6 163 1 0.2 0.01 1.0 -1.0
|
||||
700 4.2 0 0.8 0.7 162 1 0.2 0.01 1.1 -1.1
|
||||
800 4.9 0 0.9 0.7 161 1 0.2 0.01 1.4 -1.3
|
||||
900 5.5 0 1.0 0.6 160 1 0.2 0.01 1.5 -1.5
|
||||
1000 6.1 0 1.1 0.6 159 1 0.3 0.01 1.7 -1.6
|
||||
1100 6.7 0 1.2 0.7 158 1 0.3 0.02 1.8 -1.8
|
||||
1200 7.4 0 1.4 0.7 157 1 0.3 0.02 2.0 -1.9
|
||||
1300 8.0 0 1.5 0.6 156 1 0.4 0.02 2.1 -2.1
|
||||
1400 8.7 0 1.6 0.7 155 1 0.4 0.02 2.3 -2.2
|
||||
1500 9.3 0 1.7 0.7 154 1 0.4 0.02 2.4 -2.4
|
||||
1600 10.0 0 1.8 0.7 153 1 0.4 0.02 2.6 -2.5
|
||||
1700 10.6 0 1.9 0.7 152 1 0.5 0.02 2.8 -2.7
|
||||
1800 11.3 0 2.1 0.7 151 1 0.5 0.03 2.9 -2.8
|
||||
1900 12.0 0 2.2 0.7 150 1 0.5 0.03 3.1 -3.0
|
||||
2000 12.6 0 2.3 0.7 149 1 0.6 0.03 3.2 -3.1
|
||||
2100 13.3 0 2.4 0.7 148 1 0.6 0.03 3.4 -3.3
|
||||
2200 14.0 0 2.6 0.7 147 1 0.6 0.03 3.5 -3.4
|
||||
2300 14.7 0 2.7 0.7 146 1 0.6 0.03 3.7 -3.6
|
||||
2400 15.4 0 2.8 0.7 145 1 0.7 0.04 3.8 -3.7
|
||||
2500 16.1 0 2.9 0.7 144 1 0.7 0.04 4.0 -3.9
|
||||
2600 16.8 0 3.0 0.7 143 1 0.7 0.04 4.1 -4.0
|
||||
2700 17.5 0 3.2 0.7 142 1 0.8 0.04 4.3 -4.2
|
||||
2800 18.2 0 3.3 0.7 141 1 0.8 0.04 4.5 -4.3
|
||||
2900 18.9 0 3.4 0.7 140 1 0.8 0.04 4.6 -4.5
|
||||
3000 19.6 0 3.6 0.8 139 1 0.9 0.04 4.8 -4.6
|
||||
3100 20.4 0 3.7 0.8 138 1 0.9 0.05 4.9 -4.8
|
||||
3200 21.1 0 3.8 0.7 137 1 0.9 0.05 5.1 -4.9
|
||||
3300 21.8 0 3.9 0.8 136 1 0.9 0.05 5.1 -5.1
|
||||
3400 22.6 0 4.1 0.8 135 1 1.0 0.05 5.3 -5.2
|
||||
3500 23.3 0 4.2 0.8 134 1 1.0 0.05 5.4 -5.4
|
||||
3600 24.1 0 4.3 0.8 133 1 1.0 0.05 5.6 -5.5
|
||||
3700 24.8 0 4.5 0.8 132 1 1.1 0.06 5.7 -5.6
|
||||
3800 25.6 0 4.6 0.8 131 1 1.1 0.06 5.9 -5.7
|
||||
3900 26.4 0 4.7 0.8 130 1 1.1 0.06 6.0 -5.9
|
||||
4000 27.1 0 4.9 0.8 129 1 1.2 0.06 6.1 -6.0
|
||||
4100 27.9 0 5.0 0.8 128 1 1.2 0.06 6.3 -6.2
|
||||
4200 28.7 0 5.1 0.8 127 1 1.2 0.06 6.4 -6.3
|
||||
4300 29.5 0 5.3 0.8 126 1 1.3 0.07 6.6 -6.4
|
||||
4400 30.3 0 5.4 0.8 125 1 1.3 0.07 6.7 -6.6
|
||||
4500 31.1 0 5.5 0.8 124 1 1.3 0.07 6.8 -6.7
|
||||
4600 31.9 0 5.7 0.8 123 1 1.4 0.07 6.9 -6.9
|
||||
4700 32.7 0 5.8 0.8 122 1 1.4 0.07 7.1 -6.9
|
||||
4800 33.6 0 6.0 0.9 121 1 1.4 0.08 7.2 -7.1
|
||||
4900 34.4 0 6.1 0.8 121 1 1.5 0.08 7.3 -7.2
|
||||
5000 35.2 0 6.2 0.8 120 1 1.5 0.08 7.5 -7.4
|
||||
5100 36.1 0 6.4 0.9 119 1 1.5 0.08 7.6 -7.5
|
||||
5200 36.9 0 6.5 0.9 118 1 1.6 0.08 7.8 -7.6
|
||||
5300 37.8 0 6.7 0.8 117 1 1.6 0.08 7.8 -7.8
|
||||
5400 38.6 0 6.8 0.9 116 1 1.7 0.09 8.0 -7.8
|
||||
5500 39.5 0 7.0 0.9 115 1 1.7 0.09 8.1 -8.0
|
||||
5600 40.4 0 7.1 0.9 114 1 1.7 0.09 8.2 -8.1
|
||||
5700 41.3 0 7.3 0.8 113 1 1.8 0.09 8.4 -8.2
|
||||
5800 42.1 0 7.4 0.9 113 2 1.8 0.09 8.5 -8.3
|
||||
5900 43.0 0 7.6 0.9 112 2 1.8 0.10 8.6 -8.5
|
||||
6000 43.9 0 7.7 1.0 111 2 1.9 0.10 8.7 -8.6
|
||||
6100 44.9 0 7.9 0.9 110 2 1.9 0.10 8.9 -8.7
|
||||
6200 45.8 0 8.0 0.9 109 2 2.0 0.10 9.0 -8.9
|
||||
6300 46.7 0 8.2 0.9 108 2 2.0 0.10 9.1 -8.9
|
||||
6400 47.6 0 8.3 0.9 107 2 2.0 0.11 9.2 -9.1
|
||||
6500 48.6 0 8.5 1.0 107 2 2.1 0.11 9.4 -9.2
|
||||
6600 49.5 0 8.6 1.0 106 2 2.1 0.11 9.4 -9.3
|
||||
6700 50.5 0 8.8 1.0 105 2 2.1 0.11 9.6 -9.5
|
||||
6800 51.4 0 8.9 1.0 104 2 2.2 0.11 9.7 -9.5
|
||||
6900 52.4 0 9.1 1.0 103 2 2.2 0.12 9.8 -9.7
|
||||
7000 53.4 0 9.3 1.0 103 2 2.3 0.12 10.0 -9.8
|
||||
7100 54.4 0 9.4 0.9 102 2 2.3 0.12 10.0 -9.9
|
||||
7200 55.3 0 9.6 0.9 101 2 2.3 0.12 10.2 -10.0
|
||||
7300 56.3 0 9.7 1.1 100 2 2.4 0.12 10.3 -10.1
|
||||
7400 57.4 0 9.9 1.1 99 2 2.4 0.13 10.4 -10.2
|
||||
7500 58.4 0 10.1 1.0 98 2 2.5 0.13 10.5 -10.4
|
||||
7600 59.4 0 10.2 1.0 98 2 2.5 0.13 10.6 -10.4
|
||||
7700 60.4 0 10.4 1.0 97 2 2.6 0.13 10.7 -10.6
|
||||
7800 61.5 0 10.6 1.0 96 2 2.6 0.13 10.9 -10.7
|
||||
7900 62.5 0 10.7 1.0 95 2 2.6 0.14 10.9 -10.8
|
||||
8000 63.6 0 10.9 1.0 95 2 2.7 0.14 11.0 -10.9
|
||||
8100 64.6 0 11.1 1.0 94 2 2.7 0.14 11.2 -11.0
|
||||
8200 65.7 0 11.2 1.1 93 2 2.8 0.14 11.2 -11.1
|
||||
8300 66.8 0 11.4 1.1 92 2 2.8 0.14 11.4 -11.2
|
||||
8400 67.9 0 11.6 1.1 92 2 2.9 0.15 11.5 -11.3
|
||||
8500 69.0 0 11.8 1.1 91 2 2.9 0.15 11.6 -11.4
|
||||
8600 70.1 0 11.9 1.1 90 2 2.9 0.15 11.7 -11.6
|
||||
8700 71.2 0 12.1 1.2 89 2 3.0 0.15 11.8 -11.6
|
||||
8800 72.4 0 12.3 1.2 89 2 3.0 0.15 11.9 -11.7
|
||||
8900 73.5 0 12.5 1.1 88 2 3.1 0.16 12.0 -11.9
|
||||
9000 74.6 0 12.6 1.2 87 2 3.1 0.16 12.1 -11.9
|
||||
9100 75.8 0 12.8 1.2 86 2 3.2 0.16 12.2 -12.0
|
||||
9200 77.0 0 13.0 1.1 86 2 3.2 0.16 12.3 -12.2
|
||||
9300 78.1 0 13.2 1.2 85 2 3.3 0.17 12.4 -12.2
|
||||
9400 79.3 0 13.4 1.2 84 2 3.3 0.17 12.5 -12.3
|
||||
9500 80.5 0 13.6 1.2 84 2 3.4 0.17 12.6 -12.4
|
||||
9600 81.7 0 13.7 1.3 83 2 3.4 0.17 12.7 -12.5
|
||||
9700 83.0 0 13.9 1.3 82 2 3.4 0.18 12.8 -12.6
|
||||
9800 84.2 0 14.1 1.2 82 2 3.5 0.18 12.9 -12.7
|
||||
9900 85.4 0 14.3 1.3 81 2 3.5 0.18 13.0 -12.8
|
||||
10000 86.7 0 14.5 1.3 80 2 3.6 0.18 13.1 -12.9
|
||||
10100 87.9 0 14.7 1.3 80 2 3.6 0.18 13.2 -13.0
|
||||
10200 89.2 0 14.9 1.3 79 2 3.7 0.19 13.3 -13.1
|
||||
10300 90.5 0 15.1 1.3 78 2 3.7 0.19 13.4 -13.2
|
||||
10400 91.8 0 15.3 1.3 78 2 3.8 0.19 13.5 -13.3
|
||||
10500 93.1 0 15.5 1.3 77 3 3.8 0.19 13.6 -13.3
|
||||
10600 94.4 0 15.7 1.3 76 3 3.9 0.20 13.7 -13.4
|
||||
10700 95.7 0 15.9 1.3 76 3 3.9 0.20 13.8 -13.5
|
||||
10800 97.1 0 16.1 1.4 75 3 4.0 0.20 13.9 -13.6
|
||||
10900 98.4 0 16.3 1.4 74 3 4.0 0.20 14.0 -13.7
|
||||
11000 99.8 0 16.5 1.3 74 3 4.1 0.21 14.1 -13.8
|
||||
11100 101.1 0 16.7 1.3 73 3 4.2 0.21 14.2 -13.9
|
||||
11200 102.5 0 16.9 1.4 73 3 4.2 0.21 14.3 -14.0
|
||||
11300 103.9 0 17.1 1.4 72 3 4.3 0.21 14.3 -14.1
|
||||
11400 105.3 0 17.3 1.4 71 3 4.3 0.22 14.4 -14.2
|
||||
11500 106.7 0 17.5 1.4 71 3 4.4 0.22 14.5 -14.3
|
||||
11600 108.2 0 17.7 1.5 70 3 4.4 0.22 14.6 -14.4
|
||||
11700 109.6 0 17.9 1.5 70 3 4.5 0.22 14.6 -14.5
|
||||
11800 111.1 0 18.1 1.5 69 3 4.5 0.23 14.8 -14.5
|
||||
11900 112.5 0 18.3 1.5 68 3 4.6 0.23 14.9 -14.6
|
||||
12000 114.0 0 18.5 1.5 68 3 4.6 0.23 14.9 -14.8
|
||||
12100 115.5 0 18.8 1.5 67 3 4.7 0.23 15.0 -14.8
|
||||
12200 117.0 0 19.0 1.5 67 3 4.8 0.24 15.1 -14.9
|
||||
12300 118.5 0 19.2 1.5 66 3 4.8 0.24 15.2 -15.0
|
||||
12400 120.1 0 19.4 1.5 65 3 4.9 0.24 15.2 -15.1
|
||||
12500 121.6 0 19.6 1.5 65 3 4.9 0.24 15.4 -15.1
|
||||
12600 123.2 0 19.9 1.5 64 3 5.0 0.25 15.5 -15.2
|
||||
12700 124.7 0 20.1 1.6 64 3 5.0 0.25 15.5 -15.3
|
||||
12800 126.3 0 20.3 1.6 63 3 5.1 0.25 15.6 -15.4
|
||||
12900 127.9 0 20.5 1.6 63 3 5.2 0.25 15.7 -15.5
|
||||
13000 129.5 0 20.8 1.6 62 3 5.2 0.26 15.8 -15.6
|
||||
13100 131.2 0 21.0 1.7 62 4 5.3 0.26 15.8 -15.7
|
||||
13200 132.8 0 21.2 1.7 61 4 5.3 0.26 15.9 -15.7
|
||||
13300 134.5 0 21.5 1.7 61 4 5.4 0.27 16.0 -15.8
|
||||
13400 136.1 0 21.7 1.7 60 4 5.5 0.27 16.1 -15.9
|
||||
13500 137.8 0 21.9 1.7 60 4 5.5 0.27 16.2 -16.0
|
||||
13600 139.5 0 22.2 1.7 59 4 5.6 0.27 16.3 -16.0
|
||||
13700 141.2 0 22.4 1.8 59 4 5.7 0.28 16.4 -16.1
|
||||
13800 143.0 0 22.6 1.8 58 4 5.7 0.28 16.4 -16.3
|
||||
13900 144.7 0 22.9 1.8 58 4 5.8 0.28 16.5 -16.3
|
||||
14000 146.5 0 23.1 1.8 57 4 5.9 0.28 16.6 -16.4
|
||||
14100 148.2 0 23.4 1.8 57 4 5.9 0.29 16.7 -16.5
|
||||
14200 150.0 0 23.6 1.8 56 4 6.0 0.29 16.7 -16.6
|
||||
14300 151.8 0 23.9 1.8 56 4 6.0 0.29 16.8 -16.6
|
||||
14400 153.7 0 24.1 1.8 55 4 6.1 0.30 16.9 -16.7
|
||||
14500 155.5 0 24.4 1.8 55 4 6.2 0.30 17.0 -16.8
|
||||
14600 157.4 0 24.6 1.8 54 4 6.3 0.30 17.0 -16.8
|
||||
14700 159.2 0 24.9 1.9 54 4 6.3 0.30 17.2 -16.9
|
||||
14800 161.1 0 25.1 1.9 53 4 6.4 0.31 17.3 -17.0
|
||||
14900 163.0 0 25.4 1.9 53 4 6.5 0.31 17.3 -17.1
|
||||
15000 164.9 0 25.6 1.9 52 5 6.5 0.31 17.4 -17.1
|
||||
15100 166.9 0 25.9 2.0 52 5 6.6 0.32 17.5 -17.2
|
||||
15200 168.8 0 26.1 2.0 52 5 6.7 0.32 17.6 -17.3
|
||||
15300 170.8 0 26.4 2.0 51 5 6.7 0.32 17.6 -17.4
|
||||
15400 172.8 0 26.7 2.0 51 5 6.8 0.32 17.7 -17.4
|
||||
15500 174.8 0 26.9 2.0 50 5 6.9 0.33 17.8 -17.6
|
||||
15600 176.8 0 27.2 2.0 50 5 7.0 0.33 17.9 -17.7
|
||||
15700 178.8 0 27.5 2.0 49 5 7.0 0.33 18.0 -17.7
|
||||
15800 180.9 0 27.7 2.0 49 5 7.1 0.34 18.0 -17.8
|
||||
15900 182.9 0 28.0 2.1 49 5 7.2 0.34 18.1 -17.9
|
||||
16000 209.50 0 28.3 48 1.7 5 7.3 0.34 18.2 -18.0
|
||||
16100 211.20 0 28.6 48 1.9 5 7.3 0.34 18.3 -18.0
|
||||
16200 213.10 0 28.8 47 1.8 5 7.4 0.35 18.4 -18.1
|
||||
16300 214.90 0 29.1 47 1.8 5 7.5 0.35 18.5 -18.2
|
||||
16400 216.70 0 29.4 47 1.8 5 7.6 0.35 18.6 -18.3
|
||||
16500 218.50 0 29.7 46 1.9 6 7.7 0.36 18.6 -18.3
|
||||
16600 220.40 0 30.0 46 1.9 6 7.7 0.36 18.7 -18.4
|
||||
16700 222.30 0 30.2 46 2.0 6 7.8 0.36 18.8 -18.6
|
||||
16800 224.30 0 30.5 45 1.9 6 7.9 0.37 18.9 -18.6
|
||||
16900 226.20 0 30.8 45 2.0 6 8.0 0.37 18.9 -18.7
|
||||
17000 228.20 0 31.1 44 2.0 6 8.1 0.37 19.0 -18.8
|
||||
17100 230.20 0 31.4 44 2.0 6 8.2 0.37 19.1 -18.9
|
||||
17200 232.20 0 31.7 44 2.0 6 8.2 0.38 19.2 -18.9
|
||||
17300 234.20 0 32.0 43 2.0 6 8.3 0.38 19.2 -19.0
|
||||
17400 236.20 0 32.3 43 2.1 6 8.4 0.38 19.3 -19.1
|
||||
17500 238.30 0 32.6 43 2.1 6 8.5 0.39 19.5 -19.2
|
||||
17600 240.40 0 32.9 42 2.1 6 8.6 0.39 19.5 -19.2
|
||||
17700 242.50 0 33.2 42 2.1 7 8.7 0.39 19.6 -19.3
|
||||
17800 244.60 0 33.5 42 2.2 7 8.8 0.40 19.7 -19.4
|
||||
17900 246.80 0 33.8 41 2.2 7 8.9 0.40 19.8 -19.5
|
||||
18000 249 0 34.1 41 2.2 7 8.9 0.40 19.8 -19.5
|
||||
18100 251.20 0 34.4 41 2.3 7 9.0 0.40 19.9 -19.6
|
||||
18200 253.50 0 34.7 40 2.2 7 9.1 0.41 20.0 -19.7
|
||||
18300 255.70 0 35.0 40 2.3 7 9.2 0.41 20.1 -19.8
|
||||
18400 258 0 35.3 40 2.3 7 9.3 0.41 20.1 -19.9
|
||||
18500 260.30 0 35.6 39 2.4 7 9.4 0.42 20.3 -20.0
|
||||
18600 262.70 0 35.9 39 2.3 7 9.5 0.42 20.4 -20.1
|
||||
18700 265 0 36.3 39 2.4 7 9.6 0.42 20.4 -20.1
|
||||
18800 267.40 0 36.6 39 2.3 8 9.7 0.43 20.5 -20.3
|
||||
18900 269.70 0 36.9 38 2.5 8 9.8 0.43 20.6 -20.4
|
||||
19000 272.20 0 37.2 38 2.4 8 9.9 0.43 20.7 -20.4
|
||||
19100 274.60 0 37.5 38 2.4 8 10.0 0.44 20.8 -20.5
|
||||
19200 277 0 37.9 37 2.6 8 10.1 0.44 20.9 -20.6
|
||||
19300 279.60 0 38.2 37 2.5 8 10.2 0.44 21.0 -20.7
|
||||
19400 282.10 0 38.5 37 2.5 8 10.3 0.44 21.0 -20.8
|
||||
19500 284.60 0 38.8 37 2.5 8 10.4 0.45 21.1 -20.9
|
||||
19600 287.10 0 39.2 36 2.6 8 10.5 0.45 21.3 -20.9
|
||||
19700 289.70 0 39.5 36 2.6 9 10.6 0.45 21.3 -21.0
|
||||
19800 292.30 0 39.8 36 2.7 9 10.7 0.46 21.4 -21.1
|
||||
19900 295 0 40.2 36 2.6 9 10.8 0.46 21.5 -21.2
|
||||
20000 297.60 0 40.5 35 2.7 9 10.9 0.46 21.6 -21.3
|
||||
20100 300.30 0 40.8 35 2.6 9 11.0 0.47 21.7 -21.4
|
||||
20200 302.90 0 41.1 35 2.7 9 11.1 0.47 21.8 -21.5
|
||||
20300 305.60 0 41.5 35 2.7 9 11.3 0.47 21.9 -21.6
|
||||
20400 308.30 0 41.8 34 2.8 9 11.4 0.47 21.9 -21.7
|
||||
20500 311.10 0 42.2 34 2.7 9 11.5 0.48 22.1 -21.8
|
||||
20600 313.80 0 42.5 34 2.9 10 11.6 0.48 22.2 -21.8
|
||||
20700 316.70 0 42.8 34 2.9 10 11.7 0.48 22.3 -21.9
|
||||
20800 319.60 0 43.2 34 2.8 10 11.8 0.49 22.3 -22.1
|
||||
20900 322.40 0 43.5 33 2.8 10 11.9 0.49 22.5 -22.1
|
||||
21000 325.20 0 43.9 33 2.9 10 12.1 0.49 22.6 -22.2
|
||||
21100 328.10 0 44.2 33 2.9 10 12.2 0.49 22.6 -22.4
|
||||
21200 331 0 44.6 33 3.0 10 12.3 0.50 22.8 -22.4
|
||||
21300 334 0 44.9 33 2.9 10 12.4 0.50 22.9 -22.5
|
||||
21400 336.90 0 45.3 32 3.0 10 12.5 0.50 23.0 -22.7
|
||||
21500 339.90 0 45.6 32 3.0 11 12.6 0.50 23.1 -22.7
|
||||
21600 342.90 0 46.0 32 3.1 11 12.8 0.51 23.2 -22.9
|
||||
21700 346 0 46.3 32 3.0 11 12.9 0.51 23.3 -23.0
|
||||
21800 349 0 46.7 32 3.1 11 13.0 0.51 23.4 -23.1
|
||||
21900 352.10 0 47.0 31 3.1 11 13.1 0.52 23.5 -23.2
|
||||
22000 355.20 0 47.4 31 3.1 11 13.3 0.52 23.5 -23.3
|
||||
22100 358.30 0 47.7 31 3.1 11 13.4 0.52 23.7 -23.4
|
||||
22200 361.40 0 48.1 31 3.2 11 13.5 0.52 23.8 -23.5
|
||||
22300 364.60 0 48.5 31 3.2 12 13.6 0.53 23.8 -23.6
|
||||
22400 367.80 0 48.8 30 3.2 12 13.8 0.53 23.9 -23.6
|
||||
22500 371 0 49.2 30 3.2 12 13.9 0.53 24.1 -23.7
|
||||
22600 374.20 0 49.6 30 3.3 12 14.0 0.53 24.1 -23.8
|
||||
22700 377.50 0 49.9 30 3.3 12 14.2 0.54 24.3 -23.9
|
||||
22800 380.80 0 50.3 30 3.3 12 14.3 0.54 24.4 -24.0
|
||||
22900 384.10 0 50.7 29 3.4 12 14.4 0.54 24.5 -24.2
|
||||
23000 387.50 0 51.1 29 3.4 13 14.6 0.55 24.6 -24.2
|
||||
23100 390.90 0 51.4 29 3.3 13 14.7 0.55 24.7 -24.4
|
||||
23200 394.20 0 51.8 29 3.4 13 14.9 0.55 24.8 -24.5
|
||||
23300 397.60 0 52.2 29 3.5 13 15.0 0.55 25.0 -24.6
|
||||
23400 401.10 0 52.6 28 3.5 13 15.1 0.56 25.0 -24.8
|
||||
23500 404.60 0 53.0 28 3.5 13 15.3 0.56 25.2 -24.8
|
||||
23600 408.10 0 53.4 28 3.5 14 15.4 0.56 25.3 -25.0
|
||||
23700 411.60 0 53.8 28 3.4 14 15.6 0.56 25.4 -25.0
|
||||
23800 415 0 54.1 28 3.6 14 15.7 0.57 25.6 -25.2
|
||||
23900 418.60 0 54.5 28 3.6 14 15.9 0.57 25.7 -25.3
|
||||
24000 422.20 0 54.9 27 3.7 14 16.0 0.57 25.8 -25.4
|
||||
24100 425.90 0 55.3 27 3.6 14 16.2 0.58 25.9 -25.5
|
||||
24200 429.50 0 55.7 27 3.7 14 16.3 0.58 26.0 -25.6
|
||||
24300 433.20 0 56.1 27 3.7 15 16.5 0.58 26.2 -25.7
|
||||
24400 436.90 0 56.5 27 3.8 15 16.6 0.58 26.2 -25.9
|
||||
24500 440.70 0 57.0 26 3.7 15 16.8 0.59 26.4 -26.0
|
||||
24600 444.40 0 57.4 26 3.8 15 16.9 0.59 26.5 -26.1
|
||||
24700 448.20 0 57.8 26 3.9 15 17.1 0.59 26.6 -26.2
|
||||
24800 452.10 0 58.2 26 3.8 16 17.3 0.59 26.8 -26.4
|
||||
24900 455.90 0 58.6 26 3.9 16 17.4 0.60 26.9 -26.5
|
||||
25000 459.80 0 59.1 26 4.0 16 17.6 0.60 27.1 -26.7
|
||||
25100 463.80 0 59.5 25 4.0 16 17.8 0.60 27.2 -26.8
|
||||
25200 467.80 0 59.9 25 3.9 16 17.9 0.61 27.3 -27.0
|
||||
25300 471.70 0 60.3 25 4.0 17 18.1 0.61 27.5 -27.2
|
||||
25400 475.70 0 60.8 25 4.1 17 18.3 0.61 27.7 -27.4
|
||||
25500 479.80 0 61.2 25 4.1 17 18.5 0.61 27.8 -27.4
|
||||
25600 483.90 0 61.7 24 4.2 17 18.6 0.62 28.0 -27.6
|
||||
25700 488.10 0 62.1 24 4.1 17 18.8 0.62 28.1 -27.7
|
||||
25800 492.20 0 62.6 24 4.2 18 19.0 0.62 28.3 -27.9
|
||||
25900 496.40 0 63.0 24 4.2 18 19.2 0.63 28.4 -28.0
|
||||
26000 500.60 0 63.5 24 4.3 18 19.4 0.63 28.6 -28.2
|
||||
26100 504.90 0 63.9 23 4.3 18 19.6 0.63 28.7 -28.3
|
||||
26200 509.20 0 64.4 23 4.4 19 19.7 0.63 29.0 -28.6
|
||||
26300 513.60 0 64.9 23 4.4 19 19.9 0.64 29.1 -28.8
|
||||
26400 518 0 65.3 23 4.4 19 20.1 0.64 29.3 -28.9
|
||||
26500 522.40 0 65.8 23 4.5 19 20.3 0.64 29.5 -29.1
|
||||
26600 526.90 0 66.3 22 4.6 20 20.5 0.65 29.6 -29.2
|
||||
26700 531.50 0 66.8 22 4.5 20 20.8 0.65 29.9 -29.3
|
||||
26800 536 0 67.3 22 4.6 20 21.0 0.65 30.0 -29.5
|
||||
26900 540.60 0 67.8 22 4.7 20 21.2 0.65 30.2 -29.7
|
||||
27000 545.30 0 68.3 22 4.7 21 21.4 0.66 30.5 -30.0
|
||||
27100 550 0 68.8 21 4.9 21 21.6 0.66 30.7 -30.2
|
||||
27200 554.90 0 69.3 21 4.7 21 21.8 0.66 30.8 -30.4
|
||||
27300 559.60 0 69.8 21 4.9 22 22.1 0.67 31.2 -30.6
|
||||
27400 564.50 0 70.3 21 4.9 22 22.3 0.67 31.4 -30.9
|
||||
27500 569.40 0 70.9 21 4.9 22 22.5 0.67 31.7 -31.2
|
||||
27600 574.30 0 71.4 20 5.1 22 22.8 0.68 32.0 -31.5
|
||||
27700 579.40 0 71.9 20 5.0 23 23.0 0.68 32.4 -31.8
|
||||
27800 584.40 0 72.5 20 5.0 23 23.3 0.68 32.7 -32.1
|
||||
27900 589.40 0 73.0 20 5.2 23 23.5 0.69 33.1 -32.4
|
||||
28000 594.60 0 73.5 20 5.1 23 23.8 0.69 33.4 -32.8
|
||||
28100 599.70 0 74.1 20 5.2 24 24.0 0.69 33.8 -33.2
|
||||
28200 604.90 0 74.6 20 5.2 24 24.3 0.69 34.1 -33.5
|
||||
28300 610.10 0 75.2 19 5.3 24 24.6 0.70 34.4 -33.8
|
||||
28400 615.40 0 75.7 19 5.4 25 24.9 0.70 34.6 -34.1
|
||||
28500 620.80 0 76.3 19 5.3 25 25.1 0.70 34.9 -34.3
|
||||
28600 626.10 0 76.8 19 5.5 25 25.4 0.70 35.2 -34.6
|
||||
28700 631.60 0 77.4 18 5.5 26 25.7 0.71 35.5 -34.8
|
||||
28800 637.10 0 77.9 18 5.7 26 26.0 0.71 35.8 -35.1
|
||||
28900 642.80 0 78.5 18 5.8 27 26.3 0.71 36.0 -35.4
|
||||
29000 648.60 0 79.1 18 5.8 27 26.7 0.71 36.3 -35.6
|
||||
29100 654.40 0 79.6 17 5.9 28 27.0 0.72 36.6 -35.9
|
||||
29200 660.30 0 80.2 17 6.0 28 27.3 0.72 36.9 -36.2
|
||||
29300 666.30 0 80.8 17 6.2 29 27.7 0.72 37.2 -36.5
|
||||
29400 672.50 0 81.4 17 6.3 30 28.0 0.72 37.4 -36.8
|
||||
29500 678.80 0 82.0 16 6.4 30 28.4 0.73 37.7 -37.1
|
||||
29600 681.3 0 82.7 6.4 16 31 28.8 0.73 38.0 -37.3
|
||||
29700 687.8 0 83.3 6.6 16 32 29.2 0.73 38.4 -37.6
|
||||
29800 694.5 0 84.0 6.8 15 33 29.6 0.74 38.7 -37.9
|
||||
29900 701.4 0 84.6 7.0 15 34 30.0 0.74 39.1 -38.3
|
||||
30000 708.4 0 85.3 7.1 14 35 30.5 0.74 39.4 -38.6
|
||||
30100 715.7 0 86.0 7.4 14 36 31.0 0.74 39.7 -39.0
|
||||
30200 723.2 0 86.7 7.6 14 37 31.5 0.75 40.1 -39.4
|
||||
30300 730.9 0 87.5 7.9 13 39 32.0 0.75 40.5 -39.7
|
||||
30400 739.0 0 88.2 8.3 13 41 32.6 0.75 41.0 -40.1
|
||||
30500 747.4 0 89.0 8.6 12 43 33.1 0.75 41.3 -40.5
|
||||
30600 756.2 0 89.9 9.0 12 45 33.8 0.76 41.8 -40.9
|
||||
30700 765.4 0 90.8 9.5 11 48 34.5 0.76 42.2 -41.3
|
||||
30800 775.3 0 91.7 10.3 10 51 35.2 0.77 42.7 -41.7
|
||||
30900 785.9 0 92.7 11.1 9 56 36.1 0.77 43.2 -42.2
|
||||
31000 797.6 0 93.8 12.3 9 62 37.0 0.77 43.7 -42.6
|
||||
31100 810.6 0 95.0 14.0 8 71 38.1 0.78 44.0 -43.1
|
||||
31200 825.5 0 96.3 15.9 7 81 39.4 0.78 44.4 -43.5
|
||||
31300 842.4 0 97.9 19.8 6 101 41.0 0.79 44.7 -43.8
|
||||
31400 865.0 0 99.9 33.3 3 171 43.3 0.80 44.9 -44.1
|
||||
31500 909.1 0 103.8 39.5 2 180 48.3 0.81 45.0 -44.4
|
||||
31588 943.9 0 106.0 32.8 2 180 50.0 0.81 45.1 -44.6
|
||||
31500 974.6 0 109.5 23.2 6 90 58.3 0.82 45.2 -44.7
|
||||
31400 990.3 0 110.8 13.7 8 71 61.1 0.83 45.3 -44.7
|
||||
31300 1001.9 0 111.8 10.7 10 56 63.4 0.83 45.4 -44.8
|
||||
31200 1011.7 0 112.6 9.3 11 48 65.4 0.84 45.5 -44.9
|
||||
31100 1020.4 0 113.3 8.2 13 43 67.2 0.84 45.6 -45.0
|
||||
31000 1028.1 0 113.9 7.4 14 39 69.0 0.84 45.6 -45.0
|
||||
30900 1035.2 0 114.5 6.9 15 36 70.6 0.85 45.6 -45.1
|
||||
30800 1041.8 0 115.0 6.4 16 33 72.2 0.85 45.6 -45.2
|
||||
30700 1047.9 0 115.5 5.8 17 31 73.7 0.86 45.7 -45.2
|
||||
30600 1053.5 0 116.0 5.5 19 29 75.1 0.86 45.8 -45.2
|
||||
30500 1058.9 0 116.4 5.2 20 27 76.5 0.86 45.9 -45.1
|
||||
30400 1063.9 0 116.8 5.0 21 26 77.8 0.87 46.0 -45.1
|
||||
30300 1068.8 0 117.2 4.8 22 25 79.3 0.87 46.2 -45.1
|
||||
30200 1073.4 0 117.5 4.5 23 24 80.6 0.87 46.2 -45.0
|
||||
30100 1077.9 0 117.9 4.3 24 23 81.8 0.88 46.2 -45.0
|
||||
30000 1082.0 0 118.2 4.0 25 22 82.5 0.88 46.1 -45.0
|
||||
29900 1086.0 0 118.5 3.9 26 21 82.9 0.89 46.1 -45.0
|
||||
29800 1089.8 0 118.8 3.8 27 20 83.1 0.89 46.1 -45.0
|
||||
29700 1093.5 0 119.0 3.6 28 19 83.2 0.89 46.0 -44.9
|
||||
29600 1097.1 0 119.3 3.5 29 19 83.3 0.90 46.0 -44.9
|
||||
29500 1100.6 0 119.5 3.5 29 18 83.4 0.90 46.0 -44.9
|
||||
29400 1104.1 0 119.8 3.4 30 18 83.5 0.90 45.9 -44.8
|
||||
29300 1107.4 0 120.0 3.4 30 18 83.7 0.91 45.9 -44.8
|
||||
29200 1110.8 0 120.2 3.3 31 17 83.9 0.91 45.8 -44.8
|
||||
29100 1114.0 0 120.5 3.2 31 17 84.3 0.92 45.7 -44.7
|
||||
29000 1117.2 0 120.7 3.2 32 17 84.7 0.92 45.6 -44.7
|
||||
28900 1120.4 0 120.9 3.2 32 17 85.1 0.92 45.6 -44.7
|
||||
28800 1123.5 0 121.1 3.0 33 16 85.6 0.93 45.5 -44.6
|
||||
28700 1126.5 0 121.3 3.0 34 16 85.9 0.93 45.4 -44.5
|
||||
28600 1129.5 0 121.5 3.0 34 16 86.1 0.94 45.3 -44.4
|
||||
28500 1132.4 0 121.7 2.9 35 15 86.3 0.94 45.3 -44.3
|
||||
28400 1135.3 0 121.9 2.8 36 15 86.5 0.94 45.2 -44.2
|
||||
28300 1138.1 0 122.1 2.8 36 15 86.7 0.95 44.9 -44.1
|
||||
28200 1140.9 0 122.3 2.8 37 15 86.9 0.95 44.6 -44.0
|
||||
28100 1143.7 0 122.5 2.8 37 14 87.2 0.96 44.3 -44.0
|
||||
28000 1146.4 0 122.7 2.7 38 14 87.5 0.96 44.1 -43.9
|
||||
27900 1149.0 0 122.9 2.6 38 14 87.8 0.96 43.9 -43.8
|
||||
27800 1151.6 0 123.0 2.6 39 14 88.1 0.97 43.7 -43.8
|
||||
27700 1154.2 0 123.2 2.6 39 14 88.5 0.97 43.5 -43.6
|
||||
27600 1156.8 0 123.4 2.6 40 13 88.8 0.98 43.3 -43.3
|
||||
27500 1159.3 0 123.5 2.5 41 13 89.0 0.98 43.1 -43.0
|
||||
27400 1161.8 0 123.7 2.4 41 13 89.3 0.99 42.9 -42.7
|
||||
27300 1164.2 0 123.9 2.4 42 13 89.6 0.99 42.8 -42.3
|
||||
27200 1166.6 0 124.0 2.4 42 13 89.8 1.00 42.5 -42.0
|
||||
27100 1169.0 0 124.2 2.4 43 13 90.0 1.00 42.4 -41.8
|
||||
27000 1171.4 0 124.3 2.3 43 12 90.2 1.00 42.2 -41.6
|
||||
26900 1173.7 0 124.5 2.3 44 12 90.4 1.01 42.0 -41.4
|
||||
26800 1176.0 0 124.6 2.3 44 12 90.6 1.01 41.9 -41.3
|
||||
26700 1178.3 0 124.8 2.3 44 12 90.7 1.02 41.6 -41.2
|
||||
26600 1180.6 0 124.9 2.3 45 12 90.9 1.02 41.6 -41.0
|
||||
26500 1182.8 0 125.1 2.3 45 12 91.0 1.03 41.4 -40.9
|
||||
26400 1185.1 0 125.2 2.3 45 12 91.1 1.03 41.3 -40.9
|
||||
26300 1187.3 0 125.4 2.2 46 12 91.3 1.04 41.3 -40.8
|
||||
26200 1189.5 0 125.5 2.2 46 12 91.5 1.04 41.2 -40.7
|
||||
26100 1191.7 0 125.6 2.2 46 12 91.6 1.05 41.0 -40.7
|
||||
26000 1193.9 0 125.8 2.2 46 12 91.7 1.05 40.9 -40.7
|
||||
25900 1196.1 0 125.9 2.2 46 12 91.9 1.06 40.7 -40.7
|
||||
25800 1198.3 0 126.0 2.2 46 11 92.0 1.06 40.7 -40.7
|
||||
25700 1200.4 0 126.2 2.1 46 11 92.1 1.07 40.6 -40.6
|
||||
25600 1202.6 0 126.3 2.2 46 11 92.3 1.07 40.5 -40.6
|
||||
25500 1204.8 0 126.4 2.2 47 11 92.4 1.08 40.4 -40.6
|
||||
25400 1207.0 0 126.5 2.1 47 11 92.5 1.08 40.4 -40.6
|
||||
25300 1209.1 0 126.6 2.2 47 11 92.6 1.09 40.3 -40.6
|
||||
25200 1211.3 0 126.8 2.2 47 11 92.7 1.09 40.1 -40.6
|
||||
25100 1213.4 0 126.9 2.1 47 11 92.8 1.10 40.1 -40.5
|
||||
25000 1215.6 0 127.0 2.1 47 11 92.8 1.10 40.0 -40.5
|
||||
24900 1217.7 0 127.1 2.2 47 11 92.8 1.11 39.9 -40.4
|
||||
24800 1219.9 0 127.2 2.2 47 11 92.8 1.11 39.8 -40.4
|
||||
24700 1222.0 0 127.3 2.1 47 11 92.7 1.11 39.7 -40.3
|
||||
24600 1224.1 0 127.5 2.1 48 11 92.6 1.12 39.7 -39.9
|
||||
24500 1226.2 0 127.6 2.1 48 11 92.6 1.12 39.6 -39.4
|
||||
24400 1228.3 0 127.7 2.1 48 11 92.5 1.13 39.5 -39.1
|
||||
24300 1230.4 0 127.8 2.1 48 11 92.5 1.13 39.4 -38.8
|
||||
24200 1232.5 0 127.9 2.1 49 11 92.5 1.14 39.3 -38.7
|
||||
24100 1234.6 0 128.0 2.0 49 11 92.4 1.14 39.2 -38.5
|
||||
24000 1236.6 0 128.1 2.0 49 11 92.5 1.15 39.1 -38.4
|
||||
23900 1238.7 0 128.2 2.0 49 11 92.5 1.15 39.0 -38.3
|
||||
23800 1240.7 0 128.3 2.0 50 11 92.5 1.16 38.8 -38.2
|
||||
23700 1242.7 0 128.4 2.1 50 11 92.5 1.16 38.8 -38.1
|
||||
23600 1244.8 0 128.5 2.1 50 10 92.5 1.17 38.5 -38.0
|
||||
23500 1246.8 0 128.6 2.0 50 10 92.5 1.17 38.2 -37.9
|
||||
23400 1248.8 0 128.7 2.0 50 10 92.6 1.18 37.8 -37.7
|
||||
23300 1250.8 0 128.8 2.0 51 10 92.6 1.19 37.3 -37.6
|
||||
23200 1252.8 0 128.9 2.0 51 10 92.7 1.19 36.9 -37.4
|
||||
23100 1254.8 0 129.0 1.9 51 10 92.7 1.20 36.4 -37.3
|
||||
23000 1256.7 0 129.1 1.9 51 10 92.7 1.20 36.1 -37.2
|
||||
}
|
||||
} Ende Spaltengruppe
|
||||
} Ende Standard_Tafel
|
||||
|
||||
} Ende Schuss_Tafel
|
||||
|
||||
+580
@@ -0,0 +1,580 @@
|
||||
###########################################################################
|
||||
# #
|
||||
# Projekt TES : File "HE-M1-M64Base-TableE.sus" zur Munition "M64" #
|
||||
# #
|
||||
# Bei der Auspraegung des Ballistik-Moduls vereinbarte Bezeichnungen #
|
||||
# Tafel_Namen : ENTFERNUNG, AUFSATZ, FLUGZEIT, -- obligatorisch #
|
||||
# VORHALT -- projektspezifisch #
|
||||
# Param_Namen : DELTA_V0, LUFTTEMP, LUFTDRUCK, #
|
||||
# LAENGSWIND, QUERWIND, #
|
||||
# PULVERTEMP -- Korrektur-Parameter #
|
||||
# #
|
||||
###########################################################################
|
||||
|
||||
# Aenderung/Stand: 09.07.14-07:52
|
||||
|
||||
Schuss_Tafel =
|
||||
{
|
||||
Munition = "HE-M1-M64"
|
||||
Version = "HE M64 Base Table-E"
|
||||
Muni_Parameter = { Kaliber = 155.0 Masse = 46.30 V0 = 912.0 }
|
||||
Std_Parameter = { DELTA_V0 = 0.0
|
||||
LUFTTEMP = 15.0
|
||||
LUFTDRUCK = 1013.25
|
||||
LAENGSWIND= 0.0
|
||||
QUERWIND = 0.0
|
||||
PULVERTEMP= 21.1 }
|
||||
Entfernung_Range= { Min = 100.0 Max = 12100.0 Delta = 100.0 Scheitel = 12228.0 }
|
||||
Ballistik = "Parabel"
|
||||
###########################################################################
|
||||
|
||||
Standard_Tafel =
|
||||
{
|
||||
Spaltengruppe =
|
||||
{ Belegung = { AUFSATZ = (2) [-]
|
||||
VORHALT = (3) [-]
|
||||
FLUGZEIT = (4)
|
||||
DELTA_RGE = (5) [-]
|
||||
DELTA_ELEV = (6)
|
||||
FORK = (7) [-]
|
||||
DRIFT = (8) [-]
|
||||
}
|
||||
Zeilenlaenge = 8
|
||||
Datenblock =
|
||||
{
|
||||
#
|
||||
# RGE ELEV TOF DELTA DELTA FORK BEARING-CORR. RANGE-CORR.
|
||||
# ENTF AUFSATZ VORHALT FLUGZEIT RGE ELEV DRIFT CW DEC INC
|
||||
# [m] [mil] [mil] [sec] [mil] [m] [mil] [mil] [mil] [m] [m]
|
||||
#
|
||||
100 0.6 0 0.1 0.6 167 1 0.0 0.00 0.2 -0.1
|
||||
200 1.2 0 0.2 0.6 166 1 0.1 0.00 0.3 -0.3
|
||||
300 1.8 0 0.3 0.6 165 1 0.1 0.00 0.6 -0.4
|
||||
400 2.4 0 0.4 0.6 165 1 0.1 0.00 0.7 -0.7
|
||||
500 3.0 0 0.6 0.6 164 1 0.1 0.00 0.9 -0.8
|
||||
600 3.6 0 0.7 0.7 163 1 0.1 0.00 1.0 -1.0
|
||||
700 4.3 0 0.8 0.7 162 1 0.2 0.00 1.2 -1.1
|
||||
800 4.9 0 0.9 0.6 161 1 0.2 0.00 1.4 -1.3
|
||||
900 5.5 0 1.0 0.6 160 1 0.2 0.00 1.6 -1.4
|
||||
1000 6.1 0 1.1 0.7 160 1 0.2 0.00 1.8 -1.6
|
||||
1100 6.8 0 1.2 0.7 159 1 0.3 0.00 1.9 -1.7
|
||||
1200 7.4 0 1.4 0.6 158 1 0.3 0.01 2.1 -1.9
|
||||
1300 8.0 0 1.5 0.6 157 1 0.3 0.01 2.2 -2.0
|
||||
1400 8.7 0 1.6 0.7 156 1 0.3 0.01 2.4 -2.2
|
||||
1500 9.3 0 1.7 0.7 156 1 0.4 0.01 2.6 -2.3
|
||||
1600 10.0 0 1.8 0.7 155 1 0.4 0.01 2.8 -2.5
|
||||
1700 10.6 0 1.9 0.7 154 1 0.4 0.01 3.0 -2.6
|
||||
1800 11.3 0 2.1 0.6 153 1 0.5 0.01 3.1 -2.8
|
||||
1900 11.9 0 2.2 0.7 153 1 0.5 0.01 3.3 -2.9
|
||||
2000 12.6 0 2.3 0.7 152 1 0.5 0.01 3.5 -3.1
|
||||
2100 13.2 0 2.4 0.6 151 1 0.5 0.02 3.6 -3.2
|
||||
2200 13.9 0 2.5 0.7 150 1 0.6 0.02 3.8 -3.4
|
||||
2300 14.6 0 2.6 0.7 149 1 0.6 0.02 3.9 -3.5
|
||||
2400 15.2 0 2.8 0.6 149 1 0.6 0.02 4.1 -3.7
|
||||
2500 15.9 0 2.9 0.7 148 1 0.6 0.02 4.3 -3.8
|
||||
2600 16.6 0 3.0 0.7 147 1 0.7 0.02 4.4 -4.0
|
||||
2700 17.3 0 3.1 0.7 146 1 0.7 0.02 4.6 -4.1
|
||||
2800 18.0 0 3.3 0.7 146 1 0.7 0.02 4.7 -4.2
|
||||
2900 18.7 0 3.4 0.7 145 1 0.7 0.03 4.9 -4.4
|
||||
3000 19.4 0 3.5 0.7 144 1 0.8 0.03 5.1 -4.5
|
||||
3100 20.1 0 3.6 0.7 143 1 0.8 0.03 5.2 -4.7
|
||||
3200 20.8 0 3.7 0.7 143 1 0.8 0.03 5.4 -4.8
|
||||
3300 21.5 0 3.9 0.7 142 1 0.9 0.03 5.5 -4.9
|
||||
3400 22.2 0 4.0 0.7 141 1 0.9 0.03 5.7 -5.1
|
||||
3500 22.9 0 4.1 0.7 140 1 0.9 0.03 5.9 -5.2
|
||||
3600 23.6 0 4.2 0.7 140 1 0.9 0.03 6.0 -5.4
|
||||
3700 24.3 0 4.4 0.7 139 1 1.0 0.03 6.2 -5.5
|
||||
3800 25.0 0 4.5 0.8 138 1 1.0 0.04 6.3 -5.7
|
||||
3900 25.8 0 4.6 0.8 138 1 1.0 0.04 6.4 -5.8
|
||||
4000 26.5 0 4.8 0.7 137 1 1.1 0.04 6.6 -6.0
|
||||
4100 27.2 0 4.9 0.8 136 1 1.1 0.04 6.7 -6.0
|
||||
4200 28.0 0 5.0 0.8 135 1 1.1 0.04 6.9 -6.2
|
||||
4300 28.7 0 5.1 0.8 135 1 1.1 0.04 7.1 -6.3
|
||||
4400 29.5 0 5.3 0.8 134 1 1.2 0.04 7.2 -6.5
|
||||
4500 30.2 0 5.4 0.8 133 1 1.2 0.04 7.3 -6.6
|
||||
4600 31.0 0 5.5 0.8 133 1 1.2 0.05 7.5 -6.7
|
||||
4700 31.7 0 5.7 0.8 132 1 1.3 0.05 7.6 -6.9
|
||||
4800 32.5 0 5.8 0.8 131 1 1.3 0.05 7.8 -7.0
|
||||
4900 33.3 0 5.9 0.8 131 1 1.3 0.05 7.9 -7.2
|
||||
5000 34.0 0 6.1 0.8 130 1 1.3 0.05 8.1 -7.2
|
||||
5100 34.8 0 6.2 0.8 129 1 1.4 0.05 8.2 -7.4
|
||||
5200 35.6 0 6.3 0.8 128 1 1.4 0.05 8.4 -7.5
|
||||
5300 36.4 0 6.5 0.8 128 1 1.4 0.05 8.5 -7.7
|
||||
5400 37.2 0 6.6 0.8 127 1 1.5 0.06 8.7 -7.8
|
||||
5500 38.0 0 6.7 0.8 126 1 1.5 0.06 8.8 -7.9
|
||||
5600 38.7 0 6.9 0.8 126 1 1.5 0.06 8.9 -8.1
|
||||
5700 39.5 0 7.0 0.9 125 1 1.6 0.06 9.1 -8.1
|
||||
5800 40.4 0 7.1 0.9 124 2 1.6 0.06 9.2 -8.3
|
||||
5900 41.2 0 7.3 0.8 124 2 1.6 0.06 9.4 -8.4
|
||||
6000 42.0 0 7.4 0.8 123 2 1.6 0.06 9.5 -8.6
|
||||
6100 42.8 0 7.6 0.8 122 2 1.7 0.06 9.6 -8.6
|
||||
6200 43.6 0 7.7 0.8 122 2 1.7 0.07 9.8 -8.8
|
||||
6300 44.4 0 7.8 0.9 121 2 1.7 0.07 9.9 -8.9
|
||||
6400 45.3 0 8.0 0.8 120 2 1.8 0.07 10.0 -9.0
|
||||
6500 46.1 0 8.1 0.9 120 2 1.8 0.07 10.2 -9.2
|
||||
6600 47.0 0 8.3 0.9 119 2 1.8 0.07 10.4 -9.3
|
||||
6700 47.8 0 8.4 0.9 118 2 1.9 0.07 10.4 -9.4
|
||||
6800 48.7 0 8.5 0.9 118 2 1.9 0.07 10.6 -9.5
|
||||
6900 49.5 0 8.7 0.9 117 2 1.9 0.08 10.8 -9.6
|
||||
7000 50.4 0 8.8 0.9 117 2 2.0 0.08 10.8 -9.8
|
||||
7100 51.2 0 9.0 0.8 116 2 2.0 0.08 11.0 -9.9
|
||||
7200 52.1 0 9.1 0.9 115 2 2.0 0.08 11.1 -10.0
|
||||
7300 53.0 0 9.3 0.9 115 2 2.1 0.08 11.2 -10.1
|
||||
7400 53.8 0 9.4 0.9 114 2 2.1 0.08 11.4 -10.2
|
||||
7500 54.7 0 9.6 0.9 113 2 2.1 0.08 11.5 -10.4
|
||||
7600 55.6 0 9.7 0.9 113 2 2.2 0.08 11.6 -10.4
|
||||
7700 56.5 0 9.9 0.9 112 2 2.2 0.09 11.8 -10.6
|
||||
7800 57.4 0 10.0 0.9 112 2 2.2 0.09 11.9 -10.7
|
||||
7900 58.3 0 10.2 0.9 111 2 2.3 0.09 12.0 -10.8
|
||||
8000 59.2 0 10.3 0.9 110 2 2.3 0.09 12.1 -11.0
|
||||
8100 60.1 0 10.5 0.9 110 2 2.3 0.09 12.3 -11.0
|
||||
8200 61.1 0 10.6 1.0 109 2 2.4 0.09 12.4 -11.2
|
||||
8300 62.0 0 10.8 0.9 109 2 2.4 0.09 12.5 -11.3
|
||||
8400 62.9 0 10.9 0.9 108 2 2.4 0.10 12.7 -11.4
|
||||
8500 63.8 0 11.1 1.0 107 2 2.5 0.10 12.8 -11.5
|
||||
8600 64.8 0 11.2 0.9 107 2 2.5 0.10 12.9 -11.6
|
||||
8700 65.7 0 11.4 0.9 106 2 2.5 0.10 13.0 -11.7
|
||||
8800 66.7 0 11.5 1.0 106 2 2.6 0.10 13.2 -11.9
|
||||
8900 67.6 0 11.7 1.0 105 2 2.6 0.10 13.2 -11.9
|
||||
9000 68.6 0 11.8 1.0 104 2 2.6 0.10 13.4 -12.1
|
||||
9100 69.5 0 12.0 1.0 104 2 2.7 0.11 13.6 -12.2
|
||||
9200 70.5 0 12.2 1.0 103 2 2.7 0.11 13.6 -12.3
|
||||
9300 71.5 0 12.3 1.0 103 2 2.7 0.11 13.8 -12.4
|
||||
9400 72.5 0 12.5 1.0 102 2 2.8 0.11 13.9 -12.5
|
||||
9500 73.5 0 12.6 1.0 102 2 2.8 0.11 14.1 -12.6
|
||||
9600 74.5 0 12.8 1.0 101 2 2.8 0.11 14.1 -12.7
|
||||
9700 75.4 0 13.0 1.0 100 2 2.9 0.11 14.3 -12.8
|
||||
9800 76.5 0 13.1 1.0 100 2 2.9 0.12 14.4 -13.0
|
||||
9900 77.5 0 13.3 1.0 99 2 2.9 0.12 14.5 -13.0
|
||||
10000 78.5 0 13.5 1.0 99 2 3.0 0.12 14.6 -13.1
|
||||
10100 79.5 0 13.6 1.0 98 2 3.0 0.12 14.8 -13.3
|
||||
10200 80.5 0 13.8 1.0 97 2 3.1 0.12 14.9 -13.3
|
||||
10300 81.6 0 14.0 1.0 97 2 3.1 0.12 15.0 -13.5
|
||||
10400 82.6 0 14.1 1.0 96 2 3.1 0.13 15.1 -13.6
|
||||
10500 83.7 0 14.3 1.0 96 2 3.2 0.13 15.3 -13.7
|
||||
10600 84.7 0 14.5 1.1 95 2 3.2 0.13 15.3 -13.8
|
||||
10700 85.8 0 14.6 1.1 95 2 3.2 0.13 15.5 -13.9
|
||||
10800 86.8 0 14.8 1.0 94 2 3.3 0.13 15.6 -14.0
|
||||
10900 87.9 0 15.0 1.1 94 2 3.3 0.13 15.7 -14.2
|
||||
11000 89.0 0 15.1 1.1 93 2 3.3 0.13 15.8 -14.2
|
||||
11100 90.1 0 15.3 1.1 92 2 3.4 0.14 16.0 -14.4
|
||||
11200 91.2 0 15.5 1.1 92 2 3.4 0.14 16.1 -14.5
|
||||
11300 92.3 0 15.7 1.1 91 2 3.5 0.14 16.2 -14.6
|
||||
11400 93.4 0 15.8 1.1 91 2 3.5 0.14 16.3 -14.7
|
||||
11500 94.5 0 16.0 1.1 90 2 3.5 0.14 16.5 -14.8
|
||||
11600 95.6 0 16.2 1.1 90 2 3.6 0.14 16.5 -14.9
|
||||
11700 96.7 0 16.4 1.1 89 2 3.6 0.15 16.7 -15.0
|
||||
11800 97.8 0 16.5 1.2 89 2 3.7 0.15 16.8 -15.1
|
||||
11900 99.0 0 16.7 1.1 88 2 3.7 0.15 16.9 -15.2
|
||||
12000 100.1 0 16.9 1.2 88 2 3.7 0.15 17.0 -15.3
|
||||
12100 101.3 0 17.1 1.2 87 2 3.8 0.15 17.1 -15.4
|
||||
12200 102.4 0 17.3 1.1 86 2 3.8 0.15 17.3 -15.5
|
||||
12300 103.6 0 17.5 1.2 86 2 3.8 0.16 17.3 -15.7
|
||||
12400 104.8 0 17.6 1.2 85 2 3.9 0.16 17.4 -15.7
|
||||
12500 106.0 0 17.8 1.1 85 2 3.9 0.16 17.6 -15.9
|
||||
12600 107.1 0 18.0 1.2 84 2 4.0 0.16 17.7 -16.0
|
||||
12700 108.3 0 18.2 1.2 84 2 4.0 0.16 17.8 -16.1
|
||||
12800 109.5 0 18.4 1.3 83 2 4.0 0.16 17.9 -16.2
|
||||
12900 110.8 0 18.6 1.3 83 2 4.1 0.17 18.1 -16.3
|
||||
13000 112.0 0 18.8 1.2 82 2 4.1 0.17 18.1 -16.4
|
||||
13100 113.2 0 19.0 1.2 82 2 4.2 0.17 18.2 -16.5
|
||||
13200 114.4 0 19.1 1.3 81 2 4.2 0.17 18.4 -16.6
|
||||
13300 115.7 0 19.3 1.3 81 2 4.2 0.17 18.5 -16.7
|
||||
13400 116.9 0 19.5 1.3 80 2 4.3 0.18 18.6 -16.8
|
||||
13500 118.2 0 19.7 1.3 80 2 4.3 0.18 18.7 -16.9
|
||||
13600 119.4 0 19.9 1.3 79 2 4.4 0.18 18.8 -17.0
|
||||
13700 120.7 0 20.1 1.3 79 2 4.4 0.18 18.9 -17.1
|
||||
13800 122.0 0 20.3 1.3 78 2 4.5 0.18 19.0 -17.2
|
||||
13900 123.3 0 20.5 1.3 78 2 4.5 0.18 19.2 -17.3
|
||||
14000 124.6 0 20.7 1.3 77 3 4.5 0.19 19.3 -17.4
|
||||
14100 125.9 0 20.9 1.3 77 3 4.6 0.19 19.4 -17.5
|
||||
14200 127.2 0 21.1 1.3 77 3 4.6 0.19 19.5 -17.6
|
||||
14300 128.5 0 21.3 1.3 76 3 4.7 0.19 19.6 -17.7
|
||||
14400 129.8 0 21.5 1.3 76 3 4.7 0.19 19.7 -17.8
|
||||
14500 131.2 0 21.7 1.3 75 3 4.8 0.20 19.8 -17.9
|
||||
14600 132.5 0 21.9 1.3 75 3 4.8 0.20 19.9 -18.0
|
||||
14700 133.9 0 22.1 1.3 74 3 4.8 0.20 20.0 -18.1
|
||||
14800 135.2 0 22.3 1.4 74 3 4.9 0.20 20.2 -18.2
|
||||
14900 136.6 0 22.5 1.4 73 3 4.9 0.20 20.2 -18.3
|
||||
15000 138.0 0 22.7 1.4 73 3 5.0 0.20 20.3 -18.3
|
||||
15100 139.4 0 22.9 1.4 72 3 5.0 0.21 20.4 -18.5
|
||||
15200 140.8 0 23.2 1.4 72 3 5.1 0.21 20.6 -18.6
|
||||
15300 142.2 0 23.4 1.4 72 3 5.1 0.21 20.6 -18.7
|
||||
15400 143.6 0 23.6 1.4 71 3 5.1 0.21 20.7 -18.8
|
||||
15500 145.0 0 23.8 1.4 71 3 5.2 0.21 20.8 -18.9
|
||||
15600 146.4 0 24.0 1.4 70 3 5.2 0.22 21.0 -19.0
|
||||
15700 147.9 0 24.2 1.5 70 3 5.3 0.22 21.0 -19.1
|
||||
15800 149.3 0 24.4 1.5 69 3 5.3 0.22 21.1 -19.2
|
||||
15900 150.8 0 24.7 1.4 69 3 5.4 0.22 21.3 -19.3
|
||||
16000 152.2 0 24.9 1.4 69 3 5.4 0.22 21.4 -19.4
|
||||
16100 153.7 0 25.1 1.5 68 3 5.5 0.23 21.5 -19.5
|
||||
16200 155.2 0 25.3 1.5 68 3 5.5 0.23 21.6 -19.6
|
||||
16300 156.7 0 25.5 1.5 67 3 5.6 0.23 21.8 -19.8
|
||||
16400 158.2 0 25.7 1.5 67 3 5.6 0.23 21.8 -19.8
|
||||
16500 159.7 0 26.0 1.5 67 3 5.6 0.23 22.0 -20.0
|
||||
16600 161.2 0 26.2 1.5 66 3 5.7 0.24 22.1 -20.1
|
||||
16700 162.7 0 26.4 1.6 66 3 5.7 0.24 22.2 -20.1
|
||||
16800 164.3 0 26.6 1.6 65 3 5.8 0.24 22.3 -20.3
|
||||
16900 165.8 0 26.9 1.5 65 3 5.8 0.24 22.5 -20.4
|
||||
17000 167.3 0 27.1 1.5 65 3 5.9 0.24 22.6 -20.5
|
||||
17100 168.9 0 27.3 1.6 64 3 5.9 0.24 22.7 -20.7
|
||||
17200 170.5 0 27.6 1.6 64 3 6.0 0.25 22.9 -20.7
|
||||
17300 172.1 0 27.8 1.6 64 3 6.0 0.25 23.0 -20.9
|
||||
17400 173.6 0 28.0 1.5 63 3 6.1 0.25 23.1 -20.9
|
||||
17500 175.2 0 28.2 1.6 63 3 6.1 0.25 23.2 -21.1
|
||||
17600 176.9 0 28.5 1.7 63 4 6.2 0.25 23.4 -21.2
|
||||
17700 200.3 0 28.7 62 1.3 4 6.2 0.26 23.4 -21.3
|
||||
17800 201.6 0 28.9 62 1.3 4 6.3 0.26 23.6 -21.4
|
||||
17900 202.9 0 29.2 61 1.5 4 6.3 0.26 23.7 -21.5
|
||||
18000 204.4 0 29.4 61 1.3 4 6.3 0.26 23.8 -21.6
|
||||
18100 205.7 0 29.7 61 1.5 4 6.4 0.26 23.8 -21.7
|
||||
18200 207.2 0 29.9 60 1.4 4 6.4 0.27 23.9 -21.8
|
||||
18300 208.6 0 30.1 60 1.5 4 6.5 0.27 24.0 -21.8
|
||||
18400 210.1 0 30.4 60 1.3 4 6.5 0.27 24.2 -21.9
|
||||
18500 211.4 0 30.6 59 1.6 4 6.6 0.27 24.2 -22.0
|
||||
18600 213 0 30.9 59 1.4 4 6.6 0.27 24.3 -22.1
|
||||
18700 214.4 0 31.1 59 1.5 4 6.7 0.28 24.4 -22.1
|
||||
18800 215.9 0 31.4 58 1.5 4 6.7 0.28 24.6 -22.2
|
||||
18900 217.4 0 31.6 58 1.5 4 6.8 0.28 24.6 -22.4
|
||||
19000 218.9 0 31.8 58 1.5 4 6.8 0.28 24.7 -22.4
|
||||
19100 220.4 0 32.1 57 1.6 4 6.9 0.28 24.9 -22.6
|
||||
19200 222 0 32.3 57 1.4 4 6.9 0.29 25.0 -22.7
|
||||
19300 223.4 0 32.6 57 1.6 4 7.0 0.29 25.1 -22.7
|
||||
19400 225 0 32.8 57 1.6 4 7.0 0.29 25.2 -22.9
|
||||
19500 226.6 0 33.1 56 1.6 4 7.1 0.29 25.4 -23.0
|
||||
19600 228.2 0 33.3 56 1.6 4 7.1 0.29 25.5 -23.1
|
||||
19700 229.8 0 33.6 56 1.5 4 7.2 0.30 25.6 -23.2
|
||||
19800 231.3 0 33.8 56 1.6 4 7.2 0.30 25.7 -23.3
|
||||
19900 232.9 0 34.1 55 1.7 5 7.3 0.30 25.9 -23.4
|
||||
20000 234.6 0 34.4 55 1.6 5 7.3 0.30 25.9 -23.5
|
||||
20100 236.2 0 34.6 55 1.7 5 7.4 0.30 26.1 -23.6
|
||||
20200 237.9 0 34.9 54 1.6 5 7.4 0.31 26.2 -23.7
|
||||
20300 239.5 0 35.1 54 1.7 5 7.5 0.31 26.3 -23.8
|
||||
20400 241.2 0 35.4 54 1.7 5 7.5 0.31 26.4 -23.9
|
||||
20500 242.9 0 35.7 53 1.7 5 7.6 0.31 26.6 -24.1
|
||||
20600 244.6 0 35.9 53 1.7 5 7.6 0.31 26.7 -24.3
|
||||
20700 246.3 0 36.2 53 1.7 5 7.7 0.32 26.8 -24.5
|
||||
20800 248 0 36.4 53 1.7 5 7.7 0.32 27.0 -24.7
|
||||
20900 249.7 0 36.7 52 1.9 5 7.8 0.32 27.1 -24.8
|
||||
21000 251.6 0 37.0 52 1.7 5 7.8 0.32 27.2 -25.0
|
||||
21100 253.3 0 37.2 52 1.8 5 7.9 0.32 27.3 -25.2
|
||||
21200 255.1 0 37.5 52 1.7 5 7.9 0.33 27.5 -25.3
|
||||
21300 256.8 0 37.8 51 1.8 5 8.0 0.33 27.5 -25.3
|
||||
21400 258.6 0 38.0 51 1.9 5 8.0 0.33 27.6 -25.1
|
||||
21500 260.5 0 38.3 51 1.7 5 8.1 0.33 27.7 -25.4
|
||||
21600 262.2 0 38.6 51 1.8 5 8.1 0.33 27.8 -25.5
|
||||
21700 264.01 0 38.8 51 1.8 5 8.2 0.34 27.9 -25.5
|
||||
21800 265.8 0 39.1 50 2.0 6 8.2 0.34 28.0 -25.6
|
||||
21900 267.8 0 39.4 50 1.8 6 8.3 0.34 28.2 -25.6
|
||||
22000 269.6 0 39.7 50 1.9 6 8.4 0.34 28.4 -25.7
|
||||
22100 271.5 0 39.9 50 1.8 6 8.4 0.34 28.6 -25.9
|
||||
22200 273.3 0 40.2 49 1.9 6 8.5 0.35 28.8 -26.1
|
||||
22300 275.2 0 40.5 49 1.9 6 8.5 0.35 29.1 -26.3
|
||||
22400 277.1 0 40.8 49 1.9 6 8.6 0.35 29.2 -26.5
|
||||
22500 279 0 41.0 49 2.0 6 8.6 0.35 29.4 -26.7
|
||||
22600 281 0 41.3 48 1.9 6 8.7 0.35 29.6 -26.8
|
||||
22700 282.9 0 41.6 48 2.0 6 8.7 0.35 29.6 -27.0
|
||||
22800 284.9 0 41.9 48 1.9 6 8.8 0.36 29.7 -27.1
|
||||
22900 286.8 0 42.2 48 2.0 6 8.8 0.36 29.8 -27.1
|
||||
23000 288.8 0 42.4 48 1.9 6 8.9 0.36 29.8 -27.1
|
||||
23100 290.7 0 42.7 47 2.1 6 8.9 0.36 29.9 -27.1
|
||||
23200 292.8 0 43.0 47 2.0 7 9.0 0.36 29.9 -27.2
|
||||
23300 294.8 0 43.3 47 2.0 7 9.1 0.37 29.9 -27.3
|
||||
23400 296.8 0 43.6 47 2.0 7 9.1 0.37 30.2 -27.4
|
||||
23500 298.8 0 43.9 47 2.1 7 9.2 0.37 30.4 -27.5
|
||||
23600 300.9 0 44.2 47 2.0 7 9.2 0.37 30.6 -27.7
|
||||
23700 302.9 0 44.4 46 2.1 7 9.3 0.37 30.8 -28.0
|
||||
23800 305 0 44.7 46 2.1 7 9.3 0.37 31.1 -28.1
|
||||
23900 307.1 0 45.0 46 2.0 7 9.4 0.38 31.3 -28.3
|
||||
24000 309.1 0 45.3 46 2.1 7 9.4 0.38 31.5 -28.5
|
||||
24100 311.2 0 45.6 46 2.1 7 9.5 0.38 31.6 -28.6
|
||||
24200 313.3 0 45.9 45 2.1 7 9.5 0.38 31.6 -28.7
|
||||
24300 315.4 0 46.2 45 2.1 7 9.6 0.38 31.6 -28.7
|
||||
24400 317.5 0 46.5 45 2.1 7 9.7 0.39 31.6 -28.7
|
||||
24500 319.6 0 46.8 45 2.2 7 9.7 0.39 31.6 -28.7
|
||||
24600 321.8 0 47.1 45 2.2 8 9.8 0.39 31.6 -28.8
|
||||
24700 324 0 47.4 44 2.1 8 9.8 0.39 31.7 -28.8
|
||||
24800 326.1 0 47.6 44 2.2 8 9.9 0.39 32.0 -28.9
|
||||
24900 328.3 0 47.9 44 2.1 8 9.9 0.39 32.1 -29.1
|
||||
25000 330.4 0 48.2 44 2.3 8 10.0 0.40 32.4 -29.3
|
||||
25100 332.7 0 48.5 44 2.2 8 10.1 0.40 32.6 -29.5
|
||||
25200 334.9 0 48.8 44 2.2 8 10.1 0.40 32.8 -29.8
|
||||
25300 337.1 0 49.1 43 2.2 8 10.2 0.40 33.1 -30.0
|
||||
25400 339.3 0 49.4 43 2.3 8 10.2 0.40 33.3 -30.3
|
||||
25500 341.6 0 49.7 43 2.2 8 10.3 0.40 33.5 -30.4
|
||||
25600 343.8 0 50.0 43 2.3 8 10.3 0.41 33.7 -30.6
|
||||
25700 346.1 0 50.3 43 2.2 8 10.4 0.41 33.9 -30.8
|
||||
25800 348.3 0 50.6 43 2.3 9 10.5 0.41 34.0 -30.9
|
||||
25900 350.6 0 51.0 43 2.3 9 10.5 0.41 34.2 -31.1
|
||||
26000 352.9 0 51.3 42 2.3 9 10.6 0.41 34.3 -31.2
|
||||
26100 355.2 0 51.6 42 2.2 9 10.6 0.41 34.3 -31.3
|
||||
26200 357.4 0 51.9 42 2.4 9 10.7 0.42 34.4 -31.3
|
||||
26300 359.8 0 52.2 42 2.3 9 10.8 0.42 34.4 -31.4
|
||||
26400 362.1 0 52.5 42 2.3 9 10.8 0.42 34.4 -31.4
|
||||
26500 364.4 0 52.8 42 2.4 9 10.9 0.42 34.4 -31.5
|
||||
26600 366.8 0 53.1 41 2.4 9 10.9 0.42 34.6 -31.5
|
||||
26700 369.2 0 53.4 41 2.3 9 11.0 0.42 34.8 -31.7
|
||||
26800 371.5 0 53.7 41 2.4 10 11.1 0.43 35.1 -31.9
|
||||
26900 373.9 0 54.0 41 2.4 10 11.1 0.43 35.4 -32.1
|
||||
27000 376.3 0 54.3 41 2.4 10 11.2 0.43 35.6 -32.4
|
||||
27100 378.7 0 54.7 41 2.3 10 11.3 0.43 36.0 -32.7
|
||||
27200 381 0 55.0 41 2.5 10 11.3 0.43 36.2 -32.9
|
||||
27300 383.5 0 55.3 41 2.4 10 11.4 0.43 36.4 -33.1
|
||||
27400 385.9 0 55.6 40 2.4 10 11.5 0.44 36.6 -33.2
|
||||
27500 388.3 0 55.9 40 2.5 10 11.5 0.44 36.8 -33.4
|
||||
27600 390.8 0 56.2 40 2.5 10 11.6 0.44 36.9 -33.5
|
||||
27700 393.3 0 56.5 40 2.4 11 11.6 0.44 37.1 -33.8
|
||||
27800 395.7 0 56.9 40 2.5 11 11.7 0.44 37.3 -33.9
|
||||
27900 398.2 0 57.2 40 2.4 11 11.8 0.44 37.4 -34.1
|
||||
28000 400.6 0 57.5 40 2.6 11 11.8 0.44 37.7 -34.2
|
||||
28100 403.2 0 57.8 39 2.5 11 11.9 0.45 37.8 -34.4
|
||||
28200 405.7 0 58.1 39 2.4 11 12.0 0.45 38.1 -34.7
|
||||
28300 408.1 0 58.5 39 2.6 11 12.0 0.45 38.2 -34.8
|
||||
28400 410.7 0 58.8 39 2.5 11 12.1 0.45 38.5 -35.0
|
||||
28500 413.2 0 59.1 39 2.5 11 12.2 0.45 38.7 -35.2
|
||||
28600 415.7 0 59.4 39 2.5 11 12.3 0.45 38.9 -35.3
|
||||
28700 418.2 0 59.8 39 2.6 12 12.3 0.46 39.2 -35.5
|
||||
28800 420.8 0 60.1 39 2.5 12 12.4 0.46 39.4 -35.6
|
||||
28900 423.3 0 60.4 39 2.7 12 12.5 0.46 39.7 -35.8
|
||||
29000 426 0 60.7 38 2.5 12 12.5 0.46 39.8 -35.9
|
||||
29100 428.5 0 61.1 38 2.6 12 12.6 0.46 40.0 -36.1
|
||||
29200 431.1 0 61.4 38 2.7 12 12.7 0.46 40.1 -36.3
|
||||
29300 433.8 0 61.7 38 2.5 12 12.8 0.46 40.1 -36.5
|
||||
29400 436.3 0 62.0 38 2.7 13 12.8 0.46 40.3 -36.7
|
||||
29500 439 0 62.4 38 2.6 13 12.9 0.47 40.5 -36.8
|
||||
29600 441.6 0 62.7 38 2.6 13 13.0 0.47 40.6 -37.1
|
||||
29700 444.2 0 63.0 37 2.7 13 13.1 0.47 40.9 -37.3
|
||||
29800 446.9 0 63.4 37 2.7 13 13.1 0.47 41.0 -37.4
|
||||
29900 449.6 0 63.7 37 2.7 13 13.2 0.47 41.3 -37.6
|
||||
30000 452.3 0 64.0 37 2.6 13 13.3 0.47 41.5 -37.9
|
||||
30100 454.9 0 64.4 37 2.8 13 13.4 0.47 41.8 -38.1
|
||||
30200 457.7 0 64.7 37 2.6 14 13.4 0.48 42.0 -38.3
|
||||
30300 460.3 0 65.1 37 2.8 14 13.5 0.48 42.2 -38.6
|
||||
30400 463.1 0 65.4 37 2.7 14 13.6 0.48 42.5 -38.8
|
||||
30500 465.8 0 65.7 36 2.8 14 13.7 0.48 42.7 -39.1
|
||||
30600 468.6 0 66.1 36 2.7 14 13.8 0.48 43.0 -39.4
|
||||
30700 471.3 0 66.4 36 2.7 14 13.8 0.48 43.4 -39.7
|
||||
30800 474 0 66.8 36 2.7 14 13.9 0.48 43.8 -40.0
|
||||
30900 476.7 0 67.1 36 2.9 14 14.0 0.48 44.2 -40.3
|
||||
31000 479.6 0 67.4 36 2.8 15 14.1 0.49 44.6 -40.6
|
||||
31100 482.4 0 67.8 36 2.7 15 14.2 0.49 45.0 -40.9
|
||||
31200 485.1 0 68.1 36 2.8 15 14.3 0.49 45.4 -41.2
|
||||
31300 487.9 0 68.5 36 2.8 15 14.3 0.49 45.6 -41.4
|
||||
31400 490.7 0 68.8 36 2.8 15 14.4 0.49 45.9 -41.6
|
||||
31500 493.5 0 69.2 35 2.8 15 14.5 0.49 46.1 -41.7
|
||||
31600 496.3 0 69.5 35 2.9 15 14.6 0.49 46.3 -42.0
|
||||
31700 499.2 0 69.9 35 2.9 16 14.7 0.49 46.4 -42.0
|
||||
31800 502.1 0 70.2 35 2.8 16 14.8 0.49 46.5 -42.2
|
||||
31900 504.9 0 70.6 35 2.9 16 14.9 0.50 46.5 -42.3
|
||||
32000 507.8 0 70.9 35 2.9 16 15.0 0.50 46.6 -42.3
|
||||
32100 510.7 0 71.3 34 2.9 16 15.1 0.50 46.6 -42.5
|
||||
32200 513.6 0 71.6 34 3.0 17 15.2 0.50 46.7 -42.6
|
||||
32300 516.6 0 72.0 34 2.9 17 15.2 0.50 47.0 -42.8
|
||||
32400 519.5 0 72.3 34 2.9 17 15.3 0.50 47.2 -43.0
|
||||
32500 522.4 0 72.7 34 3.0 17 15.4 0.50 47.5 -43.3
|
||||
32600 525.4 0 73.0 34 2.9 17 15.5 0.50 47.9 -43.7
|
||||
32700 528.3 0 73.4 34 3.1 17 15.6 0.50 48.3 -44.0
|
||||
32800 531.4 0 73.8 34 3.0 17 15.7 0.51 48.7 -44.4
|
||||
32900 534.4 0 74.1 34 2.9 18 15.8 0.51 49.1 -44.7
|
||||
33000 537.3 0 74.5 33 3.1 18 15.9 0.51 49.5 -45.0
|
||||
33100 540.4 0 74.8 33 3.0 18 16.0 0.51 50.0 -45.4
|
||||
33200 543.4 0 75.2 33 3.0 18 16.2 0.51 50.3 -45.7
|
||||
33300 546.4 0 75.6 33 3.1 18 16.3 0.51 50.7 -46.1
|
||||
33400 549.5 0 75.9 33 3.1 19 16.4 0.51 51.0 -46.3
|
||||
33500 552.6 0 76.3 33 3.0 19 16.5 0.51 51.3 -46.6
|
||||
33600 555.6 0 76.7 33 3.1 19 16.6 0.51 51.6 -46.8
|
||||
33700 558.7 0 77.0 32 3.2 19 16.7 0.51 51.9 -47.0
|
||||
33800 561.9 0 77.4 32 3.1 19 16.8 0.52 52.2 -47.3
|
||||
33900 565 0 77.8 32 3.1 20 16.9 0.52 52.5 -47.6
|
||||
34000 568.1 0 78.2 32 3.2 20 17.0 0.52 52.8 -47.9
|
||||
34100 571.3 0 78.5 32 3.2 20 17.2 0.52 53.2 -48.1
|
||||
34200 574.5 0 78.9 32 3.1 20 17.3 0.52 53.4 -48.4
|
||||
34300 577.6 0 79.3 31 3.2 20 17.4 0.52 53.7 -48.6
|
||||
34400 580.8 0 79.7 31 3.3 21 17.5 0.52 54.0 -48.9
|
||||
34500 584.1 0 80.1 31 3.2 21 17.6 0.52 54.3 -49.2
|
||||
34600 587.3 0 80.4 31 3.2 21 17.8 0.52 54.7 -49.5
|
||||
34700 590.5 0 80.8 31 3.3 21 17.9 0.52 55.1 -49.9
|
||||
34800 593.8 0 81.2 31 3.4 22 18.0 0.52 55.5 -50.2
|
||||
34900 597.2 0 81.6 31 3.3 22 18.2 0.52 56.0 -50.7
|
||||
35000 600.5 0 82.0 30 3.4 22 18.3 0.53 56.3 -51.1
|
||||
35100 603.9 0 82.4 30 3.2 22 18.4 0.53 56.5 -51.4
|
||||
35200 607.1 0 82.8 30 3.4 23 18.6 0.53 56.8 -51.7
|
||||
35300 610.5 0 83.2 30 3.5 23 18.7 0.53 57.0 -51.9
|
||||
35400 614 0 83.6 30 3.4 23 18.8 0.53 57.2 -52.0
|
||||
35500 617.4 0 84.0 29 3.5 23 19.0 0.53 57.5 -52.2
|
||||
35600 620.9 0 84.4 29 3.5 24 19.1 0.53 57.8 -52.3
|
||||
35700 624.4 0 84.8 29 3.4 24 19.3 0.53 58.1 -52.6
|
||||
35800 627.8 0 85.2 29 3.6 24 19.4 0.53 58.5 -53.0
|
||||
35900 631.4 0 85.6 29 3.5 25 19.6 0.53 58.9 -53.4
|
||||
36000 634.9 0 86.0 28 3.6 25 19.7 0.53 59.3 -53.7
|
||||
36100 638.5 0 86.4 28 3.7 25 19.9 0.53 59.7 -54.0
|
||||
36200 642.2 0 86.8 28 3.6 26 20.1 0.53 60.1 -54.4
|
||||
36300 645.8 0 87.2 28 3.6 26 20.2 0.54 60.5 -54.7
|
||||
36400 649.4 0 87.7 27 3.8 26 20.4 0.54 60.9 -55.1
|
||||
36500 653.2 0 88.1 27 3.7 27 20.6 0.54 61.2 -55.5
|
||||
36600 656.9 0 88.5 27 3.8 27 20.7 0.54 61.6 -55.8
|
||||
36700 660.7 0 89.0 27 3.9 27 20.9 0.54 62.0 -56.1
|
||||
36800 664.6 0 89.4 26 3.8 28 21.1 0.54 62.4 -56.6
|
||||
36900 668.4 0 89.8 26 4.0 28 21.3 0.54 62.8 -57.0
|
||||
37000 672.4 0 90.3 26 3.9 29 21.5 0.54 63.3 -57.6
|
||||
37100 676.3 0 90.7 26 4.0 29 21.7 0.54 63.8 -58.1
|
||||
37200 680.3 0 91.2 25 4.0 30 21.9 0.54 64.6 -58.6
|
||||
37300 684.3 0 91.6 25 4.0 30 22.1 0.54 65.3 -59.1
|
||||
37400 688.3 0 92.1 25 4.2 31 22.3 0.54 66.0 -59.6
|
||||
37500 692.5 0 92.5 25 4.1 31 22.5 0.54 66.6 -60.2
|
||||
37600 696.6 0 93.0 24 4.3 32 22.7 0.54 67.0 -60.7
|
||||
37700 700.9 0 93.5 24 4.3 32 23.0 0.54 67.5 -61.1
|
||||
37800 705.2 0 94.0 24 4.3 33 23.2 0.54 68.0 -61.7
|
||||
37900 709.5 0 94.4 23 4.4 34 23.4 0.55 68.6 -62.1
|
||||
38000 713.9 0 94.9 23 4.5 34 23.7 0.55 69.1 -62.5
|
||||
38100 718.4 0 95.4 23 4.6 35 23.9 0.55 69.6 -63.0
|
||||
38200 723 0 95.9 22 4.6 36 24.2 0.55 70.3 -63.4
|
||||
38300 727.6 0 96.4 22 4.7 36 24.5 0.55 70.9 -64.0
|
||||
38400 732.3 0 96.9 22 4.7 37 24.7 0.55 71.5 -64.6
|
||||
38500 737 0 97.5 22 4.8 37 25.0 0.55 72.2 -65.1
|
||||
38600 741.8 0 98.0 21 4.8 38 25.3 0.55 72.9 -65.7
|
||||
38700 746.6 0 98.5 21 4.9 39 25.6 0.55 73.5 -66.3
|
||||
38800 751.5 0 99.0 21 5.0 39 25.9 0.55 74.1 -66.8
|
||||
38900 756.5 0 99.6 20 5.1 40 26.2 0.55 74.7 -67.3
|
||||
39000 761.6 0 100.1 20 5.2 42 26.5 0.55 75.2 -67.5
|
||||
39100 766.8 0 100.7 19 5.5 43 26.8 0.55 75.4 -67.8
|
||||
39200 772.3 0 101.2 19 5.5 44 27.2 0.55 75.6 -68.0
|
||||
39300 777.8 0 101.8 18 5.8 46 27.5 0.55 75.9 -68.7
|
||||
39400 783.6 0 102.4 18 5.9 48 27.9 0.55 76.7 -69.6
|
||||
39500 789.5 0 103.1 17 6.3 50 28.3 0.55 77.7 -70.4
|
||||
39600 795.8 0 103.7 16 6.5 52 28.7 0.55 78.6 -71.1
|
||||
39700 802.3 0 104.4 16 6.8 55 29.1 0.55 79.4 -71.7
|
||||
39800 809.1 0 105.1 15 7.3 58 29.6 0.55 80.1 -72.3
|
||||
39900 816.4 0 105.8 14 7.8 62 30.1 0.55 80.9 -72.9
|
||||
40000 824.2 0 106.6 13 8.7 68 30.7 0.55 81.6 -73.5
|
||||
40100 832.9 0 107.5 12 9.8 75 31.3 0.55 82.2 -74.0
|
||||
40200 842.7 0 108.4 10 11.5 86 32.1 0.55 82.9 -74.6
|
||||
40300 854.2 0 109.5 9 14.7 104 32.9 0.55 83.3 -75.0
|
||||
40400 868.9 0 110.8 8 17.0 120 34.0 0.55 83.8 -75.4
|
||||
40528 902.9 0 115.0 39.1 5 110 38.0 0.55 84.0 -75.7
|
||||
40400 941.6 0 118.3 25.6 7 104 41.5 0.56 84.2 -75.8
|
||||
40300 954.2 0 119.4 11.3 9 98 42.8 0.57 84.6 -76.1
|
||||
40200 964.1 0 120.3 9.1 11 79 44.0 0.57 84.9 -76.4
|
||||
40100 972.5 0 121.0 8.0 13 69 45.0 0.57 85.2 -76.6
|
||||
40000 980.0 0 121.7 7.1 15 61 45.9 0.57 85.4 -76.9
|
||||
39900 986.7 0 122.3 6.5 16 56 46.7 0.57 85.6 -77.0
|
||||
39800 992.9 0 122.8 5.9 17 51 47.5 0.58 85.7 -77.2
|
||||
39700 998.6 0 123.3 5.5 18 48 48.2 0.58 85.8 -77.2
|
||||
39600 1004.0 0 123.8 5.3 20 45 48.9 0.58 85.8 -77.3
|
||||
39500 1009.1 0 124.2 5.0 21 43 49.6 0.58 85.8 -77.4
|
||||
39400 1014.0 0 124.6 4.8 22 41 50.2 0.58 85.8 -77.4
|
||||
39300 1018.6 0 125.0 4.5 22 39 50.8 0.58 85.7 -77.3
|
||||
39200 1023.1 0 125.3 4.4 23 38 51.4 0.59 85.5 -77.2
|
||||
39100 1027.4 0 125.7 4.3 24 36 51.9 0.59 85.4 -77.2
|
||||
39000 1031.6 0 126.0 4.1 25 35 52.4 0.59 85.2 -77.0
|
||||
38900 1035.7 0 126.4 4.0 26 34 52.9 0.59 85.0 -76.9
|
||||
38800 1039.6 0 126.7 3.9 26 33 53.4 0.59 84.8 -76.7
|
||||
38700 1043.4 0 127.0 3.8 27 32 53.8 0.59 84.5 -76.5
|
||||
38600 1047.1 0 127.3 3.6 28 31 54.2 0.60 84.3 -76.2
|
||||
38500 1050.7 0 127.6 3.5 28 30 54.7 0.60 84.1 -76.0
|
||||
38400 1054.2 0 127.8 3.5 29 29 55.1 0.60 83.7 -75.6
|
||||
38300 1057.7 0 128.1 3.5 30 29 55.5 0.60 83.4 -75.3
|
||||
38200 1061.1 0 128.4 3.4 30 28 56.0 0.60 83.1 -75.0
|
||||
38100 1064.4 0 128.6 3.3 31 27 56.4 0.60 82.8 -74.8
|
||||
38000 1067.6 0 128.9 3.2 32 27 56.8 0.61 82.5 -74.6
|
||||
37900 1070.8 0 129.1 3.2 32 26 57.3 0.61 82.2 -74.3
|
||||
37800 1074.0 0 129.3 3.1 33 26 57.7 0.61 82.0 -74.1
|
||||
37700 1077.0 0 129.6 3.0 33 25 58.1 0.61 81.7 -73.9
|
||||
37600 1080.0 0 129.8 3.0 34 24 58.5 0.61 81.5 -73.7
|
||||
37500 1083.0 0 130.0 3.0 35 24 58.9 0.61 81.2 -73.5
|
||||
37400 1085.9 0 130.2 2.8 35 23 59.3 0.62 80.9 -73.3
|
||||
37300 1088.7 0 130.4 2.8 36 23 59.7 0.62 80.5 -73.1
|
||||
37200 1091.6 0 130.6 2.8 36 23 60.1 0.62 80.1 -72.9
|
||||
37100 1094.3 0 130.8 2.7 37 22 60.5 0.62 79.7 -72.7
|
||||
37000 1097.0 0 131.0 2.7 37 22 60.9 0.62 79.3 -72.5
|
||||
36900 1099.7 0 131.2 2.7 38 21 61.3 0.62 79.2 -72.2
|
||||
36800 1102.4 0 131.4 2.7 39 21 61.7 0.63 79.0 -72.0
|
||||
36700 1105.0 0 131.6 2.6 39 21 62.1 0.63 78.9 -71.7
|
||||
36600 1107.6 0 131.8 2.5 40 20 62.5 0.63 78.8 -71.5
|
||||
36500 1110.1 0 132.0 2.5 40 20 62.8 0.63 78.7 -71.3
|
||||
36400 1112.6 0 132.2 2.5 41 20 63.2 0.63 78.5 -71.0
|
||||
36300 1115.1 0 132.3 2.5 41 19 63.6 0.64 78.3 -70.7
|
||||
36200 1117.6 0 132.5 2.5 42 19 63.9 0.64 78.0 -70.5
|
||||
36100 1120.0 0 132.7 2.4 42 19 64.3 0.64 77.6 -70.3
|
||||
36000 1122.4 0 132.8 2.3 42 19 64.6 0.64 77.3 -70.1
|
||||
35900 1124.7 0 133.0 2.3 43 18 64.9 0.64 77.0 -69.9
|
||||
35800 1127.1 0 133.2 2.4 43 18 65.2 0.64 76.7 -69.6
|
||||
35700 1129.4 0 133.3 2.3 44 18 65.5 0.65 76.3 -69.4
|
||||
35600 1131.7 0 133.5 2.3 44 18 65.8 0.65 75.9 -69.2
|
||||
35500 1134.0 0 133.6 2.3 45 17 66.1 0.65 75.5 -69.0
|
||||
35400 1136.2 0 133.8 2.2 45 17 66.4 0.65 75.1 -68.7
|
||||
35300 1138.4 0 133.9 2.2 46 17 66.6 0.65 74.7 -68.4
|
||||
35200 1140.6 0 134.0 2.2 46 17 66.9 0.65 74.4 -68.2
|
||||
35100 1142.8 0 134.2 2.2 47 16 67.2 0.66 74.0 -68.0
|
||||
35000 1145.0 0 134.3 2.1 47 16 67.4 0.66 73.9 -67.8
|
||||
34900 1147.1 0 134.5 2.1 48 16 67.7 0.66 73.7 -67.5
|
||||
34800 1149.2 0 134.6 2.1 48 16 68.0 0.66 73.5 -67.2
|
||||
34700 1151.3 0 134.7 2.1 49 15 68.3 0.66 73.4 -67.0
|
||||
34600 1153.3 0 134.9 2.0 49 15 68.6 0.67 73.2 -66.9
|
||||
34500 1155.4 0 135.0 2.0 50 15 68.9 0.67 73.1 -66.6
|
||||
34400 1157.4 0 135.1 2.0 50 15 69.4 0.67 72.9 -66.5
|
||||
34300 1159.4 0 135.2 2.0 51 15 69.8 0.67 72.7 -66.3
|
||||
34200 1161.4 0 135.4 2.0 52 14 70.2 0.67 72.6 -66.1
|
||||
34100 1163.3 0 135.5 1.9 52 14 70.6 0.68 72.3 -66.0
|
||||
34000 1165.2 0 135.6 1.9 53 14 70.9 0.68 72.2 -65.8
|
||||
33900 1167.1 0 135.7 1.9 53 14 71.2 0.68 71.9 -65.7
|
||||
33800 1169.0 0 135.8 1.9 54 14 71.5 0.68 71.7 -65.5
|
||||
33700 1170.9 0 136.0 1.9 54 13 71.6 0.69 71.5 -65.3
|
||||
33600 1172.8 0 136.1 1.8 55 13 71.5 0.69 71.3 -65.2
|
||||
33500 1174.6 0 136.2 1.8 55 13 71.4 0.69 71.1 -65.0
|
||||
33400 1176.4 0 136.3 1.8 56 13 71.2 0.69 70.8 -64.8
|
||||
33300 1178.2 0 136.4 1.8 56 13 71.0 0.69 70.6 -64.6
|
||||
33200 1180.0 0 136.5 1.8 57 13 70.8 0.70 70.3 -64.5
|
||||
33100 1181.8 0 136.6 1.8 57 12 70.6 0.70 70.1 -64.3
|
||||
33000 1183.5 0 136.7 1.8 58 12 70.4 0.70 69.9 -64.1
|
||||
32900 1185.3 0 136.8 1.8 58 12 70.2 0.70 69.5 -63.9
|
||||
32800 1187.0 0 136.9 1.7 59 12 70.1 0.71 69.3 -63.7
|
||||
32700 1188.7 0 137.0 1.7 59 12 70.1 0.71 69.1 -63.5
|
||||
32600 1190.4 0 137.1 1.7 59 12 70.0 0.71 68.8 -63.3
|
||||
32500 1192.1 0 137.2 1.7 60 12 70.0 0.71 68.6 -63.1
|
||||
32400 1193.8 0 137.3 1.7 60 12 70.0 0.72 68.3 -62.9
|
||||
32300 1195.5 0 137.4 1.7 60 11 69.9 0.72 68.1 -62.8
|
||||
32200 1197.2 0 137.5 1.7 60 11 69.9 0.72 67.8 -62.5
|
||||
32100 1198.8 0 137.6 1.7 61 11 70.0 0.72 67.6 -62.5
|
||||
32000 1200.5 0 137.7 1.7 60 11 70.0 0.73 67.4 -62.4
|
||||
31900 1202.2 0 137.8 1.7 61 11 70.0 0.73 67.3 -62.3
|
||||
31800 1203.8 0 137.9 1.7 61 11 70.1 0.73 67.2 -62.2
|
||||
31700 1205.5 0 138.0 1.7 61 11 70.1 0.73 67.1 -62.2
|
||||
31600 1207.2 0 138.1 1.7 61 11 70.2 0.74 67.0 -62.2
|
||||
31500 1208.8 0 138.1 1.7 61 11 70.2 0.74 67.0 -62.2
|
||||
31400 1210.5 0 138.2 1.6 61 11 70.3 0.74 66.9 -62.1
|
||||
31300 1212.1 0 138.3 1.7 61 11 70.3 0.74 66.8 -62.1
|
||||
31200 1213.8 0 138.4 1.7 61 11 70.4 0.75 66.7 -62.0
|
||||
31100 1215.4 0 138.5 1.6 61 11 70.4 0.75 66.6 -61.9
|
||||
31000 1217.1 0 138.6 1.6 61 11 70.4 0.75 66.6 -61.7
|
||||
30900 1218.7 0 138.7 1.6 61 11 70.4 0.75 66.4 -61.7
|
||||
30800 1220.3 0 138.8 1.7 61 10 70.3 0.76 66.2 -61.4
|
||||
30700 1222.0 0 138.9 1.6 61 10 70.3 0.76 66.1 -61.3
|
||||
30600 1223.6 0 138.9 1.7 62 10 70.2 0.76 65.9 -61.1
|
||||
30500 1225.3 0 139.0 1.7 62 10 70.2 0.76 65.8 -61.0
|
||||
30400 1226.9 0 139.1 1.6 62 10 70.1 0.77 65.6 -60.8
|
||||
30300 1228.5 0 139.2 1.6 62 10 70.1 0.77 65.4 -60.6
|
||||
30200 1230.1 0 139.3 1.7 62 10 70.1 0.77 65.2 -60.5
|
||||
30100 1231.8 0 139.4 1.7 63 10 70.1 0.77 65.0 -60.3
|
||||
30000 1233.4 0 139.4 1.6 63 10 70.1 0.78 64.9 -60.1
|
||||
29900 1235.0 0 139.5 1.6 63 10 70.1 0.78 64.7 -59.9
|
||||
29800 1236.6 0 139.6 1.6 63 10 70.1 0.78 64.6 -59.8
|
||||
29700 1238.2 0 139.7 1.5 63 10 70.1 0.78 64.3 -59.6
|
||||
29600 1239.7 0 139.8 1.6 64 10 70.2 0.79 64.2 -59.4
|
||||
29500 1241.3 0 139.9 1.6 64 9 70.2 0.79 64.0 -59.3
|
||||
29400 1242.9 0 139.9 1.6 64 9 70.2 0.79 63.8 -59.1
|
||||
29300 1244.5 0 140.0 1.6 64 9 70.2 0.80 63.6 -59.0
|
||||
29200 1246.1 0 140.1 1.5 64 9 70.3 0.80 63.4 -58.7
|
||||
29100 1247.6 0 140.2 1.5 65 9 70.3 0.80 63.2 -58.6
|
||||
29000 1249.2 0 140.2 1.5 65 9 70.3 0.80 62.9 -58.4
|
||||
28900 1250.7 0 140.3 1.6 65 9 70.3 0.81 62.7 -58.2
|
||||
28800 1252.3 0 140.4 1.6 65 9 70.3 0.81 62.5 -58.1
|
||||
28700 1253.8 0 140.5 1.5 65 9 70.3 0.81 62.2 -57.9
|
||||
28600 1255.4 0 140.5 1.5 66 9 70.3 0.81 62.0 -57.7
|
||||
28500 1256.9 0 140.6 1.5 66 9 70.3 0.82 61.7 -57.6
|
||||
}
|
||||
} Ende Spaltengruppe
|
||||
} Ende Standard_Tafel
|
||||
|
||||
} Ende Schuss_Tafel
|
||||
|
||||
+995
@@ -0,0 +1,995 @@
|
||||
/**
|
||||
* @RDE_HEADER@
|
||||
* GeoPairing
|
||||
* $Id$
|
||||
* $HeadURL$
|
||||
* $Author$
|
||||
*/
|
||||
|
||||
#include "GeoPairing.hpp"
|
||||
|
||||
#include <GeoPairingImpl/GeoPairingImplFactory.hpp>
|
||||
#include <GeoPairingImpl/GeoPairingImplDted.hpp>
|
||||
#include <GeoPairingImpl/GeoPairingImplBalistic.hpp>
|
||||
#include <GeoPairingImpl/GeoPairingDataFireReport.hpp>
|
||||
#include <Schusstafel.h>
|
||||
#include <QScopedPointer>
|
||||
#include <FW_Ballistic/AmmunitionTypes.hpp>
|
||||
#include <GBL_ConfigSystem/ammuconfig.h>
|
||||
#include "../settings.h"
|
||||
|
||||
static const double ANGULAR_MIL = 6400.0 / 360.0;
|
||||
using namespace N_GeoPairingImpl;
|
||||
using namespace N_ConfigSystem;
|
||||
using namespace CentralEffectSimulation;
|
||||
using namespace NGL;
|
||||
|
||||
GeoPairing::GeoPairing(const std::shared_ptr<N_Ballistic::BallisticService> &ballisticService)
|
||||
: //m_airTargets(new ZSSIWI::AirTargetsInt)
|
||||
//, m_automaticCannon(new ZSSIWI::AutomaticCannonInt)
|
||||
//, m_geoPairingData(new ZSSIWI::GeoPairingDataInt)
|
||||
//, m_mortarHowitzer(new ZSSIWI::MortarHowitzerInt)
|
||||
//, m_surfaceToAir(new ZSSIWI::SurfaceToAirInt)
|
||||
m_ballisticService(ballisticService)
|
||||
, m_logger(CesGeoPairing::getLogger("Plugin.GeoPairing.GeoPairing"))
|
||||
{
|
||||
INFO_LOG(m_logger) << "konfigPath = " << ballisticService->getConfigPath() ;
|
||||
|
||||
const QString s_configPath = ballisticService->getConfigPath();
|
||||
INFO_LOG(m_logger) << "GeoPairing Config location : " << s_configPath ;
|
||||
|
||||
GeoPairingImpl *l_impl = new GeoPairingImplDted;
|
||||
INFO_LOG(m_logger) << "--> Installing GeoPairingImplDted..." ;
|
||||
GeoPairingImplFactory::setImpl(l_impl);
|
||||
readAmmunitionIni();
|
||||
|
||||
// initialize the GeoPairing implementation
|
||||
if (!GeoPairingImplFactory::initialize(s_configPath))
|
||||
{
|
||||
ERROR_LOG(m_logger) << "Couldn't initialize GeoPairingImplFactory with GeoPairingImplDted!" ;
|
||||
|
||||
l_impl = new GeoPairingImplBalistic();
|
||||
INFO_LOG(m_logger) << "--> Installing GeoPairingImplBalistic...";
|
||||
GeoPairingImplFactory::setImpl(l_impl);
|
||||
if (!GeoPairingImplFactory::initialize(s_configPath))
|
||||
{
|
||||
ERROR_LOG(m_logger) << "Couldn't initialize GeoPairingImplFactory with GeoPairingImplBalistic!" ;
|
||||
abort();
|
||||
}
|
||||
else
|
||||
INFO_LOG(m_logger) << "GeoPairingImplBalistic correctly initialized" ;
|
||||
}
|
||||
else
|
||||
INFO_LOG(m_logger) << "GeoPairingImplDted correctly initialized" ;
|
||||
|
||||
#ifdef _PSEUDO_TARGETS_
|
||||
// initial lat long position
|
||||
// N_Math::GeoCoord l_UtmPos;
|
||||
// l_UtmPos.setLlPositionDegree(22.5, 40.5, 59);
|
||||
//
|
||||
// const SInt32 l_NbrOfObjects = 4;
|
||||
//
|
||||
// std::cout << "Creating Pseudotargets : " << l_NbrOfObjects << std::endl;
|
||||
//
|
||||
// N_Types::Coord3 l_Direction(0, 1000, 0);
|
||||
//
|
||||
// for (int i=0;i<l_NbrOfObjects/2; i++)
|
||||
// {
|
||||
// N_Types::Coord3 l_PosInitial;
|
||||
// l_PosInitial.m_X = l_UtmPos.m_UtmEast;
|
||||
// l_PosInitial.m_Y = l_UtmPos.m_UtmNorth;
|
||||
// l_PosInitial.m_Z = l_UtmPos.m_UtmHeight;
|
||||
//
|
||||
// l_PosInitial += l_Direction;
|
||||
//
|
||||
// N_Math::GeoCoord l_Utm1;
|
||||
// l_Utm1.setTotalUtmPosition(l_PosInitial.m_X, l_PosInitial.m_Y, l_PosInitial.m_Z, l_UtmPos.m_UtmZone, l_UtmPos.m_UtmZoneChar);
|
||||
//
|
||||
// ZSSIWI::AirTargetsInt::AirTarget l_Target;
|
||||
// l_Target.playerId = i+1;
|
||||
// l_Target.positionLat = l_Utm1.m_LlLat;
|
||||
// l_Target.positionLon = l_Utm1.m_LlLong;
|
||||
// l_Target.positionAlt = l_Utm1.m_LlHeight;
|
||||
// l_Target.positionTime = 1;
|
||||
// l_Target.state = 0;
|
||||
//
|
||||
// m_airTargets->getAirTargetsList().append(l_Target);
|
||||
//
|
||||
// l_Direction = l_Direction.rotateZ(-M_PI / (l_NbrOfObjects/2));
|
||||
// }
|
||||
|
||||
ZSSIWI::AirTargetsInt::AirTarget l_Target;
|
||||
l_Target.playerId = 7701;
|
||||
l_Target.positionLat = 53.0412;
|
||||
l_Target.positionLon = 8.87471;
|
||||
l_Target.positionAlt = 120;
|
||||
l_Target.positionTime = 1;
|
||||
l_Target.state = 0;
|
||||
|
||||
m_airTargets->getAirTargetsList().append(l_Target);
|
||||
|
||||
#endif
|
||||
|
||||
INFO_LOG(m_logger) << "Initialization finished";
|
||||
}
|
||||
|
||||
void GeoPairing::calculateAirFire(const QByteArray &transparentData,
|
||||
const QHash<int, CentralEffectSimulation::HandlerParticipant::CesParticipantData> &aircrafts)
|
||||
{
|
||||
INFO_LOG(m_logger) << "calculateAirFire (IGLA)..." ;
|
||||
|
||||
GeoPairingDataFireReport l_Report;
|
||||
if (!l_Report.parse(transparentData))
|
||||
{
|
||||
WARNING_LOG(m_logger) << "Error: Couldn't parse Fire Report" ;
|
||||
return;
|
||||
}
|
||||
|
||||
if (aircrafts.size() == 0)
|
||||
{
|
||||
INFO_LOG(m_logger) << "No Aircraft available";
|
||||
return;
|
||||
}
|
||||
|
||||
QScopedPointer<GeoPairingImplAirTargetUpdater> l_Updater(GeoPairingImplFactory::createAirTargetUpdater());
|
||||
QHashIterator<int, HandlerParticipant::CesParticipantData> i(aircrafts);
|
||||
while (i.hasNext())
|
||||
{
|
||||
i.next();
|
||||
SInt32 vulnerabilityState = i.value().vulnerabilityState.underlying();
|
||||
Float64 lat = i.value().pos().lat() * 180 / M_PI;
|
||||
Float64 lon = i.value().pos().lon() * 180 / M_PI;
|
||||
DEBUG_LOG(m_logger) << "GeoPairing::calculateAirFire"
|
||||
<< "\nl_Updater->update : " << i.key()
|
||||
<< "\n: participantId=" << i.value().participantId()
|
||||
<< "\n participantTypeId= " << i.value().participantTypeId()
|
||||
<< "\n pos lat=" << lat
|
||||
<< "\n lon=" << lon
|
||||
<< "\n alt=" << i.value().pos().z()
|
||||
<< "\n posTime=" << i.value().sampleTime()
|
||||
<< "\n state=" << i.value().vulnerabilityState
|
||||
<< "\n state (SInt32)=" << vulnerabilityState;
|
||||
l_Updater->update(i.value().participantId(),
|
||||
lat,
|
||||
lon,
|
||||
i.value().pos().z(),
|
||||
i.value().sampleTime() / 1000, //s
|
||||
vulnerabilityState);
|
||||
}
|
||||
|
||||
// Prepare SensorData to take into account terrain altitude and geomagnetic differences
|
||||
GeoPairingImplSensorData l_SensorData;
|
||||
l_SensorData.WeaponPositionLat = m_PositionLat;
|
||||
l_SensorData.WeaponPositionLong = m_PositionLon;
|
||||
l_SensorData.FireTime = m_Time;
|
||||
l_SensorData.WeaponElevation = 0;
|
||||
|
||||
INFO_LOG(m_logger) << "--> IGLA : Report Target Fire (createSensorData)"
|
||||
<< "\nl_SensorData.WeaponPositionLat = " << l_SensorData.WeaponPositionLat
|
||||
<< "\nl_SensorData.WeaponPositionLong = " << l_SensorData.WeaponPositionLong
|
||||
<< "\nl_SensorData.WeaponAzimuth=" << l_SensorData.WeaponAzimuth
|
||||
<< "\nl_SensorData.WeaponElevation=" << l_SensorData.WeaponElevation
|
||||
<< "\nl_SensorData.FireTime = " << l_SensorData.FireTime
|
||||
;
|
||||
SInt32 l_DeviceID = GeoPairingImplFactory::createSensorData(&l_SensorData, transparentData);
|
||||
|
||||
INFO_LOG(m_logger) << "createSensorData -> SensorData.WeaponAzimuth=" << l_SensorData.WeaponAzimuth
|
||||
<< "\nl_SensorData.WeaponElevation=" << l_SensorData.WeaponElevation;
|
||||
if (l_DeviceID == -1)
|
||||
{
|
||||
ERROR_LOG(m_logger) << "Couldn't create SensorData" ;
|
||||
return;
|
||||
}
|
||||
|
||||
m_PositionHeight = l_SensorData.WeaponPositionHeight;
|
||||
|
||||
Float64 l_Azimuth = -l_SensorData.WeaponAzimuth * 180 / M_PI; // negate to convert ccw back to cw
|
||||
Float64 l_Elevation = l_SensorData.WeaponElevation * 180 / M_PI;
|
||||
|
||||
|
||||
if (l_Report.m_DeviceID == PAN_GP_REQUEST_IGLA)
|
||||
{
|
||||
INFO_LOG(m_logger) << " -> IGLA : Request Target Detection " ;
|
||||
|
||||
QScopedPointer<GeoPairingImplAirTargetCache> l_Cache(GeoPairingImplFactory::createAirTargetCache(m_equipmentNumber));
|
||||
|
||||
int l_TargetPlayerId = 0;
|
||||
uint64_t l_ImpactTime = 0;
|
||||
|
||||
INFO_LOG(m_logger) << "-> IGLA : Request Target Detection -> searchAirTarget (vor dem aufruf)"
|
||||
<< "\nl_Elevation = " << l_Elevation
|
||||
<< "\nl_Azimuth = " << l_Azimuth
|
||||
;
|
||||
|
||||
|
||||
bool l_TargetFound = searchAirTarget(l_Elevation, l_Azimuth, l_TargetPlayerId, l_ImpactTime);
|
||||
|
||||
INFO_LOG(m_logger) << "-> IGLA : Request Target Detection -> searchAirTarget (nach dem aufruf)"
|
||||
<< "\nl_TargetFound = " << l_TargetFound
|
||||
<< "\nl_TargetPlayerId = " << l_TargetPlayerId
|
||||
<< "\nl_ImpactTime = " << l_ImpactTime
|
||||
;
|
||||
|
||||
bool l_CachedTrackingState = l_Cache->getLatestTrackState(l_TargetPlayerId);
|
||||
UInt32 l_CachedTrackingTime = l_Cache->getLatestTrackTime(l_TargetPlayerId);
|
||||
|
||||
INFO_LOG(m_logger) << "-> IGLA : Retrieved Target Detection Results from Cache"
|
||||
<< "\nl_CachedTrackingState = " << l_CachedTrackingState
|
||||
<< "\nl_CachedTrackingTime = " << l_CachedTrackingTime
|
||||
;
|
||||
|
||||
SInt32 l_DeltaTime = m_Time - l_CachedTrackingTime;
|
||||
bool l_TimeoutPassed = l_DeltaTime > static_cast<SInt32>(l_Cache->getCacheTimeout());
|
||||
|
||||
|
||||
if (l_TargetFound != l_CachedTrackingState || l_TimeoutPassed)
|
||||
{
|
||||
// prepare response for player
|
||||
m_reportTarget.playerId = i.value().participantId();
|
||||
m_reportTarget.sendData.clear();
|
||||
m_reportTarget.sendData.append(0xEB); // Report Target Detection
|
||||
|
||||
UInt8 l_DetectionResult = ((UInt8) l_TargetFound) & 0x03;
|
||||
l_DetectionResult += (l_Report.m_IGLARequestNbr << 2);
|
||||
m_reportTarget.sendData.append(l_DetectionResult);
|
||||
// add 3 reserved bytes
|
||||
m_reportTarget.sendData.append((char)0x00);
|
||||
m_reportTarget.sendData.append((char)0x00);
|
||||
m_reportTarget.sendData.append((char)0x00);
|
||||
m_reportTarget.send = true;
|
||||
|
||||
// Richtung Gefechtsfeld
|
||||
INFO_LOG(m_logger) << "<-- EC : Report Target Detection " ;
|
||||
INFO_LOG(m_logger) << "Target Found : " << l_TargetFound ;
|
||||
|
||||
//m_geoPairingData->sendData(m_PlayerId, l_SendData.data(), l_SendData.size() );
|
||||
|
||||
l_Cache->storeLatestTrackState(l_TargetPlayerId, m_Time, l_TargetFound);
|
||||
}
|
||||
}
|
||||
INFO_LOG(m_logger) << "\n\nPAN_GP_REPORT_IGLA m_DeviceID=" << l_Report.m_DeviceID
|
||||
<< " PAN_GP_REPORT_IGLA=" << PAN_GP_REPORT_IGLA;
|
||||
if (l_Report.m_DeviceID == PAN_GP_REPORT_IGLA)
|
||||
{
|
||||
INFO_LOG(m_logger) << "--> IGLA : Report Target Fire " ;
|
||||
|
||||
int l_TargetPlayerId = 0;
|
||||
UInt64 l_ImpactTime = 0;
|
||||
|
||||
QScopedPointer<GeoPairingImplAirTargetTracker> l_Tracker(GeoPairingImplFactory::createAirTargetTracker());
|
||||
|
||||
INFO_LOG(m_logger) << "--> IGLA : Report Target Fire (l_Tracker->setPosition)"
|
||||
<< "\nm_PositionLat = " << m_PositionLat
|
||||
<< "\nm_PositionLon = " << m_PositionLon
|
||||
<< "\nm_PositionHeight = " << m_PositionHeight
|
||||
;
|
||||
|
||||
l_Tracker->setPosition(m_PositionLat, m_PositionLon, m_PositionHeight);
|
||||
|
||||
INFO_LOG(m_logger) << "--> IGLA : Report Target Fire (setTime)"
|
||||
<< "\nm_Time = " << m_Time ;
|
||||
|
||||
l_Tracker->setTime(m_Time);
|
||||
|
||||
INFO_LOG(m_logger) << "--> IGLA : Report Target Fire (vor l_Tracker->track)"
|
||||
<< "\nl_Azimuth = " << l_Azimuth
|
||||
<< "\nl_Elevation = " << l_Elevation
|
||||
<< "\nl_TargetPlayerId = " << l_TargetPlayerId
|
||||
<< "\nl_ImpactTime = " << l_ImpactTime
|
||||
;
|
||||
|
||||
bool l_TargetFound = l_Tracker->track(l_Azimuth, l_Elevation, l_TargetPlayerId, l_ImpactTime);
|
||||
|
||||
INFO_LOG(m_logger) << "--> IGLA : Report Target Fire (nach l_Tracker->track)"
|
||||
<< "\nl_TargetFound = " << l_TargetFound ;
|
||||
|
||||
if (l_TargetFound)
|
||||
{
|
||||
int l_AmmunitionType = N_Ballistic::IGLA;
|
||||
m_fireToAircraft.participantIdTarget = l_TargetPlayerId;
|
||||
m_fireToAircraft.impactTime = l_ImpactTime;
|
||||
m_fireToAircraft.ammunitionTypeId = l_AmmunitionType;
|
||||
m_fireToAircraft.equipmentNumberGunner = m_equipmentNumber;
|
||||
|
||||
if (l_Tracker->hitCheck(l_TargetPlayerId, l_Report.m_IGLAModeAuto, l_Report.m_IGLAChangeOverPressed))
|
||||
{
|
||||
//m_surfaceToAir->fire(l_TargetPlayerId, l_ImpactTime, l_AmmunitionType, m_PlayerId, true);
|
||||
m_fireToAircraft.hit = true;
|
||||
INFO_LOG(m_logger) << "Air Target " << l_TargetPlayerId << " in reach and hit" ;
|
||||
}
|
||||
else
|
||||
{
|
||||
//m_surfaceToAir->fire(l_TargetPlayerId, l_ImpactTime, l_AmmunitionType, m_PlayerId, false);
|
||||
m_fireToAircraft.hit = false;
|
||||
INFO_LOG(m_logger) << "Air Target " << l_TargetPlayerId << " in reach, but not hit" ;
|
||||
}
|
||||
}
|
||||
else
|
||||
INFO_LOG(m_logger) << "No Air Target withing reach..." ;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
void GeoPairing::calculateAreaFire(const QByteArray &transparentData,
|
||||
const std::shared_ptr<N_Ballistic::BallisticService> &ballisticService)
|
||||
{
|
||||
INFO_LOG(m_logger) << "calculateAreaFire (MK19)..." ;
|
||||
|
||||
// Prepare SensorData for Implementation
|
||||
GeoPairingImplSensorData l_SensorData;
|
||||
l_SensorData.WeaponPositionLat = m_PositionLat;
|
||||
l_SensorData.WeaponPositionLong = m_PositionLon;
|
||||
l_SensorData.FireTime = m_Time;
|
||||
|
||||
GeoPairingDataFireReport l_Report;
|
||||
if (!l_Report.parse(transparentData))
|
||||
{
|
||||
ERROR_LOG(m_logger) << "Error: Couldn't parse Fire Report" ;
|
||||
return;
|
||||
}
|
||||
SInt32 l_DeviceID = GeoPairingImplFactory::createSensorData(&l_SensorData, transparentData);
|
||||
if (l_DeviceID == -1)
|
||||
{
|
||||
ERROR_LOG(m_logger) << "Couldn't create SensorData" ;
|
||||
return;
|
||||
}
|
||||
|
||||
QScopedPointer<GeoPairingImplFiredBullet> l_FiredBullet(GeoPairingImplFactory::createFiredBullet(l_SensorData));
|
||||
if (l_FiredBullet == nullptr)
|
||||
{
|
||||
ERROR_LOG(m_logger) << "Error: Couldn't create FiredBullet object" ;
|
||||
return;
|
||||
}
|
||||
|
||||
double l_FieldWidth = 0;
|
||||
double l_FieldLength = 0;
|
||||
double l_Duration = 0;
|
||||
double l_Heading = 0;
|
||||
UInt8 nbrRounds = 0;
|
||||
|
||||
nbrRounds = l_Report.m_MK19NbrRounds;
|
||||
l_FiredBullet->calculateSalve(ballisticService, nbrRounds, l_FieldWidth, l_FieldLength, l_Duration, l_Heading);
|
||||
GeoPairingImplImpactData *l_ImpactData = l_FiredBullet->getImpactData();
|
||||
if (l_ImpactData == nullptr)
|
||||
{
|
||||
ERROR_LOG(m_logger) << "Error: Couldn't create ImpactData object" ;
|
||||
return;
|
||||
}
|
||||
|
||||
N_Ballistic::ammunitionTypeIndirectFire l_AmmunitionType;
|
||||
N_Ballistic::ammunitionTypeOSAG l_AmmunitionTypeOSAG;
|
||||
switch (l_SensorData.AmmunitionType)
|
||||
{
|
||||
case MK19Type_m385:
|
||||
l_AmmunitionType = N_Ballistic::MK19_M385;
|
||||
l_AmmunitionTypeOSAG = N_Ballistic::MK19_M385_OSAG;
|
||||
INFO_LOG(m_logger) << "Wirkfeld Ammunition MK19_M385" ;
|
||||
break;
|
||||
case MK19Type_m430:
|
||||
l_AmmunitionType = N_Ballistic::MK19_M430;
|
||||
l_AmmunitionTypeOSAG = N_Ballistic::MK19_M430_OSAG;
|
||||
INFO_LOG(m_logger) << "Wirkfeld Ammunition MK19_M430" ;
|
||||
break;
|
||||
default:
|
||||
ERROR_LOG(m_logger) << "Default Ammunition. Must not be called : " << l_SensorData.AmmunitionType ;
|
||||
return;
|
||||
}
|
||||
|
||||
// Richtung Zentrale
|
||||
|
||||
// * Create an area fire to CTAS
|
||||
// * @param playerId Id of the player
|
||||
// * @param impactTime Time of impact
|
||||
// * @param fireDuration Duration [sec] of the fire
|
||||
// * @param impactAreaLat Latitude - Centercoordinate of impact-area
|
||||
// * @param impactAreaLon Longitude - Centercoordinate of impact-area
|
||||
// * @param impactAreaDimensionWidth Width [m] of impact-area
|
||||
// * Width: At right angle to the direction gunner position to impact position
|
||||
// * @param impactAreaDimensionDepth Depth [m] of impact-area.
|
||||
// * Depth: Direction of gunner position to impact position
|
||||
// * @param direction Direction from gunner position to impact position.
|
||||
// * Angle of rotation [0.01 degree] counterclockwise against direction east.
|
||||
// * @param numberOfImpacts Number of impacts
|
||||
// * @param ammunitionType Type of the ammunition
|
||||
/*
|
||||
m_automaticCannon->areaFire(m_PlayerId,
|
||||
l_ImpactData->ImpactTime,
|
||||
l_Duration,
|
||||
l_ImpactData->ImpactPositionLat,
|
||||
l_ImpactData->ImpactPositionLong,
|
||||
l_FieldWidth,
|
||||
l_FieldLength,
|
||||
l_Heading,
|
||||
nbrRounds,
|
||||
l_AmmunitionType,
|
||||
l_AmmunitionTypeOSAG);*/
|
||||
m_areaFireToCtas.playerId = m_equipmentNumber;
|
||||
m_areaFireToCtas.impactTime = l_ImpactData->ImpactTime;
|
||||
m_areaFireToCtas.duration = l_Duration;
|
||||
m_areaFireToCtas.impactPositionLat = l_ImpactData->ImpactPositionLat;
|
||||
m_areaFireToCtas.impactPositionLong = l_ImpactData->ImpactPositionLong;
|
||||
m_areaFireToCtas.fieldWidth = l_FieldWidth;
|
||||
m_areaFireToCtas.fieldLength = l_FieldLength;
|
||||
m_areaFireToCtas.heading = l_Heading;
|
||||
m_areaFireToCtas.nbrRounds = nbrRounds;
|
||||
m_areaFireToCtas.ammunitionType = l_AmmunitionType;
|
||||
m_areaFireToCtas.ammunitionTypeOSAG = l_AmmunitionTypeOSAG;
|
||||
m_areaFireToCtas.hit = true;
|
||||
|
||||
INFO_LOG(m_logger) << "calculateAreaFire m_equipmentNumber=" << m_equipmentNumber
|
||||
<< " ImpactTime=" << l_ImpactData->ImpactTime
|
||||
<< " ImpactPositionLat=" << l_ImpactData->ImpactPositionLat
|
||||
<< " ImpactPositionLong=" << l_ImpactData->ImpactPositionLong
|
||||
<< " l_AmmunitionType=" << l_AmmunitionType
|
||||
<< " l_AmmunitionTypeOSAG=" << l_AmmunitionTypeOSAG
|
||||
<< " l_DeviceID=" << l_DeviceID;
|
||||
m_DeviceID = l_DeviceID;
|
||||
|
||||
}
|
||||
|
||||
|
||||
void GeoPairing::calculateSingleFire(const QByteArray &transparentData, const std::shared_ptr<N_Ballistic::BallisticService> &ballisticService)
|
||||
{
|
||||
INFO_LOG(m_logger) << "calculateSingleFire ..." ;
|
||||
|
||||
ElevationError error_elevation = ElevationError::NoError;
|
||||
int error_charge = 0;
|
||||
int error_mun = 0;
|
||||
bool usage_ok = true;
|
||||
|
||||
// Prepare SensorData for Implementation
|
||||
GeoPairingImplSensorData l_SensorData;
|
||||
l_SensorData.WeaponPositionLat = m_PositionLat;
|
||||
l_SensorData.WeaponPositionLong = m_PositionLon;
|
||||
l_SensorData.FireTime = m_Time;
|
||||
l_SensorData.IgnitionType = -1; // Unknown
|
||||
|
||||
SInt32 l_DeviceID = GeoPairingImplFactory::createSensorData(&l_SensorData, transparentData, error_mun);
|
||||
INFO_LOG(m_logger) << "l_DeviceID=" << l_DeviceID;
|
||||
if (l_DeviceID == -1)
|
||||
{
|
||||
ERROR_LOG(m_logger) << "Couldn't create SensorData" ;
|
||||
return;
|
||||
}
|
||||
|
||||
QScopedPointer<GeoPairingImplFiredBullet> l_FiredBullet(GeoPairingImplFactory::createFiredBullet(l_SensorData));
|
||||
if ((l_DeviceID == PAN_GP_REPORT_G5_G6) || (l_DeviceID == PAN_GP_REPORT_M109) || (l_DeviceID == PAN_GP_REPORT_MORTAR))
|
||||
{
|
||||
// Fuer die Waffe G5/G6 wird die Entfernung aus einer Schusstafel-Datei ausgelesen
|
||||
// und nicht ueber einen ballistischen Algorithmus berechnet
|
||||
Schusstafel::TAFEL_NAMEN_ET tafelName = Schusstafel::ST_AUFSATZ;
|
||||
//std::string pfad = "./";
|
||||
QString pfadQstr = CesGeoPairing::Settings::cesGeopairingIniPath() + QStringLiteral("/");
|
||||
std::string pfad = pfadQstr.toStdString();
|
||||
std::string munart;
|
||||
INFO_LOG(m_logger) << "Vor switch AmmunitionType=" << l_SensorData.AmmunitionType
|
||||
<< " ChargeType=" << l_SensorData.ChargeType;
|
||||
|
||||
// Ammunition HE-M1
|
||||
switch (l_SensorData.AmmunitionType)
|
||||
{
|
||||
case HE_M1A2:
|
||||
{
|
||||
INFO_LOG(m_logger) << "HE_M1A2";
|
||||
switch (l_SensorData.ChargeType)
|
||||
{
|
||||
case 0:
|
||||
munart = "HE-M1-M64Base-TableE";
|
||||
break;
|
||||
case 1:
|
||||
munart = "HE-M1-M64Incr3-TableE";
|
||||
break;
|
||||
case 2:
|
||||
munart = "HE-M1-M64Incr4-TableE";
|
||||
break;
|
||||
case 3:
|
||||
munart = "HE-M1-M64Incr5-TableE";
|
||||
break;
|
||||
case 4:
|
||||
munart = "HE-M1-M64Incr5BaseBleed-TableE";
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case M60mm_m385:
|
||||
case M60mm_m430:
|
||||
{
|
||||
INFO_LOG(m_logger) << "M60mm_m385 M60mm_m430";
|
||||
switch (l_SensorData.IgnitionType) // ChargeType = Ladung...
|
||||
{
|
||||
// Todo: Umbenennen und ggf. Zuordnung korrigieren
|
||||
case 0:
|
||||
INFO_LOG(m_logger) << "Moerser-60mm-Lad1";
|
||||
munart = "Moerser-60mm-Lad1";
|
||||
break;
|
||||
case 1:
|
||||
INFO_LOG(m_logger) << "Moerser-60mm-Lad2";
|
||||
munart = "Moerser-60mm-Lad2";
|
||||
break;
|
||||
case 2:
|
||||
INFO_LOG(m_logger) << "Moerser-60mm-Lad3";
|
||||
munart = "Moerser-60mm-Lad3";
|
||||
break;
|
||||
case 3:
|
||||
INFO_LOG(m_logger) << "Moerser-60mm-Lad4";
|
||||
munart = "Moerser-60mm-Lad4";
|
||||
break;
|
||||
case 4:
|
||||
INFO_LOG(m_logger) << "Moerser-60mm-Lad5";
|
||||
munart = "Moerser-60mm-Lad5";
|
||||
break;
|
||||
case 5:
|
||||
INFO_LOG(m_logger) << "Moerser-60mm-La6";
|
||||
munart = "Moerser-60mm-Lad6";
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case VLAP_M9703:
|
||||
{
|
||||
INFO_LOG(m_logger) << "VLAP_M9703";
|
||||
// Sonderfall Ammunition VLAP-M64. Da hier nur 5 x M64 Incr als Ladung vorhanden ist.
|
||||
// Sollten wir eine andere Ladung aus dem Gefechtsfeld bekommen, dann Munition HE M1A2 benutzen
|
||||
switch (l_SensorData.ChargeType)
|
||||
{
|
||||
case 0:
|
||||
munart = "HE-M1-M64Base-TableE";
|
||||
break;
|
||||
case 1:
|
||||
munart = "HE-M1-M64Incr3-TableE";
|
||||
break;
|
||||
case 2:
|
||||
munart = "HE-M1-M64Incr4-TableE";
|
||||
break;
|
||||
case 3:
|
||||
munart = "VLAP-M64Incr5-TableE";
|
||||
break;
|
||||
case 4:
|
||||
munart = "VLAP-M64Incr5-TableE";
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case SMK_BE_M2:
|
||||
{
|
||||
switch (l_SensorData.ChargeType)
|
||||
{
|
||||
case 0:
|
||||
munart = "SMK-BE-RED-RED-PHOSPH-M1-M64Base-TableE";
|
||||
break;
|
||||
case 1:
|
||||
munart = "SMK-BE-RED-RED-PHOSPH-M1-M64Incr3-TableE";
|
||||
break;
|
||||
case 2:
|
||||
munart = "SMK-BE-RED-RED-PHOSPH-M1-M64Incr4-TableE";
|
||||
break;
|
||||
case 3:
|
||||
munart = "SMK-BE-RED-RED-PHOSPH-M1-M64Incr5-TableE";
|
||||
break;
|
||||
case 4:
|
||||
munart = "SMK-BE-RED-RED-PHOSPH-M1-M64Incr5BaseBleed-TableE";
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case CLUSTER_HEHC_M9609:
|
||||
{
|
||||
switch (l_SensorData.ChargeType)
|
||||
{
|
||||
case 0:
|
||||
munart = "Cluster-M64Base-TableE";
|
||||
break;
|
||||
case 1:
|
||||
munart = "Cluster-M64BaseIncr3-TableE";
|
||||
break;
|
||||
case 2:
|
||||
munart = "Cluster-M64BaseIncr4-TableE";
|
||||
break;
|
||||
case 3:
|
||||
munart = "Cluster-M64BaseIncr5-TableE";
|
||||
break;
|
||||
case 4:
|
||||
munart = "Cluster-M64BaseIncr5BaseBleed-TableE";
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
break;
|
||||
}
|
||||
default:
|
||||
break;
|
||||
}
|
||||
if (munart.empty())
|
||||
{
|
||||
WARNING_LOG(m_logger) << "No valid charge type " << l_SensorData.ChargeType <<
|
||||
" for ammunition " << l_SensorData.AmmunitionType <<
|
||||
" (internal ids!)" ;
|
||||
munart = "HE-M1-M64Base-TableE";
|
||||
error_mun = 1; //Keine richtige Muntion/Charge Kombination
|
||||
}
|
||||
|
||||
std::string suffix = ".sus";
|
||||
DEBUG_LOG(m_logger) << "schusstafel pfad=" << pfad
|
||||
<< " munart=" << munart
|
||||
<< " suffix=" << suffix;
|
||||
Schusstafel schusstafel(pfad, munart, suffix);
|
||||
|
||||
float entfernung1 = 0.0;
|
||||
float aufsatz1 = 0.0;
|
||||
float flugzeit1 = 0.0;
|
||||
float drift1 = 0.0;
|
||||
|
||||
float entfernung2 = 0.0;
|
||||
float aufsatz2 = 0.0;
|
||||
float flugzeit2 = 0.0;
|
||||
float drift2 = 0.0;
|
||||
|
||||
float elevation = l_SensorData.WeaponElevation.getZeroTo360();
|
||||
float arg_wert = elevation * ANGULAR_MIL * MILRAD; // Funktion will den Wert in milrad
|
||||
float zielhoehenwinkel = 0.0;
|
||||
double evalMil = elevation * ANGULAR_MIL; //angular mil
|
||||
|
||||
//Wir holen uns nur bei der Haubitze die Daten
|
||||
const GeoPCharge mun = m_geoPMunMap.value(l_SensorData.AmmunitionType + 1).value(l_SensorData.ChargeType);
|
||||
|
||||
//Der type l_DeviceID gibt an, ob es sich um eine G5/G6 oder M109 handelt.
|
||||
usage_ok = mun.checkArty(l_DeviceID, evalMil, error_elevation, error_charge);
|
||||
|
||||
double elevationGrad = l_SensorData.WeaponElevation.getDegree();
|
||||
if (elevationGrad <= 0.0)
|
||||
{
|
||||
INFO_LOG(m_logger) << "Elevation ist <= 0 Grad. Entfernung wird auf 50% des ersten Wertes aus der Schusstafel festgesetzt" ;
|
||||
// Dazu aus der minimal moeglichen Elevation die Entfernung bestimmen und halbieren
|
||||
float minEval = mun.minEleval * MILRAD;
|
||||
DEBUG_LOG(m_logger) << "schusstafel tafelName=" << tafelName
|
||||
<< " minEval=" << minEval
|
||||
<< "zielhoehenwinkel=" << zielhoehenwinkel;
|
||||
|
||||
schusstafel.ST_artillerie(tafelName, minEval, zielhoehenwinkel, &entfernung1, &aufsatz1, &flugzeit1, &drift1,
|
||||
&entfernung2, &aufsatz2, &flugzeit2, &drift2);
|
||||
entfernung1 = entfernung1 / 2;
|
||||
flugzeit1 = flugzeit1 / 2;
|
||||
}
|
||||
else if (elevationGrad >= 90.0)
|
||||
{
|
||||
INFO_LOG(m_logger) << "Elevation ist >= 90 Grad. Entfernung wird auf den letzten Wert aus der Schusstafel festgesetzt" ;
|
||||
// Dazu aus der maximal moeglichen Elevation die Entfernung bestimmen
|
||||
double maxEval = mun.maxEleval * MILRAD;
|
||||
DEBUG_LOG(m_logger) << "schusstafel tafelName=" << tafelName
|
||||
<< " maxEval=" << maxEval
|
||||
<< "zielhoehenwinkel=" << zielhoehenwinkel;
|
||||
schusstafel.ST_artillerie(tafelName, maxEval, zielhoehenwinkel, &entfernung1, &aufsatz1, &flugzeit1, &drift1,
|
||||
&entfernung2, &aufsatz2, &flugzeit2, &drift2);
|
||||
}
|
||||
else
|
||||
{
|
||||
DEBUG_LOG(m_logger) << "schusstafel tafelName=" << tafelName
|
||||
<< " arg_wert=" << arg_wert
|
||||
<< "zielhoehenwinkel=" << zielhoehenwinkel;
|
||||
schusstafel.ST_artillerie(tafelName, arg_wert, zielhoehenwinkel, &entfernung1, &aufsatz1, &flugzeit1, &drift1,
|
||||
&entfernung2, &aufsatz2, &flugzeit2, &drift2);
|
||||
}
|
||||
|
||||
INFO_LOG(m_logger) << "Schusstafel " << munart << ".sus: "
|
||||
<< "Entfernung [m]: " << entfernung1
|
||||
<< " Elevation [mil]: " << evalMil
|
||||
<< " Drift [grad]: " << drift1 * 180 / M_PI
|
||||
<< " Drift [mil]: " << drift1 * 180 / M_PI *ANGULAR_MIL
|
||||
<< " Flugzeit [s]: " << flugzeit1 ;
|
||||
|
||||
l_FiredBullet->calculateG5G6(entfernung1, drift1, flugzeit1);
|
||||
}
|
||||
else
|
||||
{
|
||||
// != G5G6 && != M109
|
||||
INFO_LOG(m_logger) << "calculate(ballisticService)";
|
||||
l_FiredBullet->calculate(ballisticService);
|
||||
}
|
||||
|
||||
GeoPairingImplImpactData *l_ImpactData = l_FiredBullet->getImpactData();
|
||||
if (!l_ImpactData)
|
||||
{
|
||||
ERROR_LOG(m_logger) << "No impact Data available";
|
||||
return;
|
||||
}
|
||||
|
||||
N_Ballistic::ammunitionTypeIndirectFire l_AmmunitionType = N_Ballistic::UNKNOWN;
|
||||
N_Ballistic::ammunitionTypeOSAG l_AmmunitionTypeOSAG = N_Ballistic::UNKNOWN_OSAG;
|
||||
if ((l_DeviceID != PAN_GP_REPORT_G5_G6) && (l_DeviceID != PAN_GP_REPORT_M109))
|
||||
{
|
||||
l_AmmunitionTypeOSAG = N_Ballistic::UNKNOWN_OSAG;
|
||||
switch (l_SensorData.AmmunitionType)
|
||||
{
|
||||
case MortarType1:
|
||||
default:
|
||||
l_AmmunitionType = N_Ballistic::MOERSER;
|
||||
l_AmmunitionTypeOSAG = N_Ballistic::MORTAR_PRC_OSAG;
|
||||
break;
|
||||
case MortarType2:
|
||||
l_AmmunitionType = N_Ballistic::NEBEL;
|
||||
l_AmmunitionTypeOSAG = N_Ballistic::MORTAR_PRX_OSAG;
|
||||
break;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
// Zuordnung Geopairing - Code -> sys_db.munitionsarten (OSAG-Code)
|
||||
// 4 -> 30 oder 31
|
||||
// 5 -> 33 oder 32
|
||||
// 6 -> 34
|
||||
// 7 -> 35
|
||||
l_AmmunitionType = N_Ballistic::STEILFEUER_HE_AZ;
|
||||
l_AmmunitionTypeOSAG = N_Ballistic::UNKNOWN_OSAG;
|
||||
switch (l_SensorData.AmmunitionType)
|
||||
{
|
||||
case HE_M1A2:
|
||||
switch (l_SensorData.IgnitionTypeG5G6)
|
||||
{
|
||||
case IgnitionTypePercussion:
|
||||
default:
|
||||
l_AmmunitionType = N_Ballistic::STEILFEUER_HE_AZ;
|
||||
l_AmmunitionTypeOSAG = N_Ballistic::M1A2_PRC_OSAG;
|
||||
break;
|
||||
case IgnitionTypeProximity:
|
||||
l_AmmunitionType = N_Ballistic::STEILFEUER_HE_DZ;
|
||||
l_AmmunitionTypeOSAG = N_Ballistic::M1A2_PRX_OSAG;
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case VLAP_M9703:
|
||||
switch (l_SensorData.IgnitionTypeG5G6)
|
||||
{
|
||||
case IgnitionTypePercussion:
|
||||
default:
|
||||
l_AmmunitionType = N_Ballistic::STEILFEUER_HE_AZ;
|
||||
l_AmmunitionTypeOSAG = N_Ballistic::VLAP_PRC_OSAG;
|
||||
break;
|
||||
case IgnitionTypeProximity:
|
||||
l_AmmunitionType = N_Ballistic::STEILFEUER_HE_DZ;
|
||||
l_AmmunitionTypeOSAG = N_Ballistic::VLAP_PRX_OSAG;
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case SMK_BE_M2:
|
||||
l_AmmunitionType = N_Ballistic::NEBEL;
|
||||
l_AmmunitionTypeOSAG = N_Ballistic::SMK_OSAG;
|
||||
break;
|
||||
case CLUSTER_HEHC_M9609:
|
||||
l_AmmunitionType = N_Ballistic::STEILFEUER_BOMBLET;
|
||||
l_AmmunitionTypeOSAG = N_Ballistic::CLUSTER_OSAG;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
// TODO: wird alles nicht ausgewertet
|
||||
// -> in TES-UAE wurde in diesem Fall ein zt_artillery_usage_error_rt telegramm erzeugt was später ausgewertet wurde
|
||||
// wird also einen RP in AHTC geben wenn es auffällt
|
||||
Q_UNUSED(error_elevation);
|
||||
Q_UNUSED(error_charge);
|
||||
Q_UNUSED(error_mun);
|
||||
Q_UNUSED(usage_ok);
|
||||
|
||||
// Richtung Zentrale
|
||||
// Der ammunitionType ist in zssiwi_service_base.hpp zu finden
|
||||
// TODO m_mortarHowitzer
|
||||
// Treffer Einzelfeuer zum DDS schicken:
|
||||
|
||||
//int wirkfeld_id = m_mortarHowitzer->impact(m_equipmentNumber,
|
||||
// l_ImpactData->ImpactTime,
|
||||
// l_ImpactData->ImpactPositionLat,
|
||||
// l_ImpactData->ImpactPositionLong,
|
||||
// l_AmmunitionType,
|
||||
// l_AmmunitionTypeOSAG,
|
||||
// l_DeviceID);
|
||||
QString latStr = QString::number(l_ImpactData->ImpactPositionLat, 'f', 8);
|
||||
QString lonStr = QString::number(l_ImpactData->ImpactPositionLong, 'f', 8);
|
||||
INFO_LOG(m_logger) << "calculateSingleFire m_equipmentNumber=" << m_equipmentNumber
|
||||
<< " ImpactTime=" << l_ImpactData->ImpactTime
|
||||
<< " ImpactPositionLat=" << latStr
|
||||
<< " ImpactPositionLong=" << lonStr
|
||||
<< " l_AmmunitionType=" << l_AmmunitionType
|
||||
<< " l_AmmunitionTypeOSAG=" << l_AmmunitionTypeOSAG
|
||||
<< " l_DeviceID=" << l_DeviceID;
|
||||
m_DeviceID = l_DeviceID;
|
||||
m_singleFireToCtas.impactTime = l_ImpactData->ImpactTime;
|
||||
m_singleFireToCtas.impactPositionLat = l_ImpactData->ImpactPositionLat;
|
||||
m_singleFireToCtas.impactPositionLong = l_ImpactData->ImpactPositionLong;
|
||||
m_singleFireToCtas.ammunitionType = l_AmmunitionType;
|
||||
m_singleFireToCtas.hit = true;
|
||||
|
||||
}
|
||||
|
||||
bool GeoPairing::geoPairingData(const std::shared_ptr<N_Ballistic::BallisticService> &ballisticService,
|
||||
int equipmentNumber,
|
||||
qint64 time,
|
||||
double positionLat,
|
||||
double positionLon,
|
||||
const QByteArray &transparentDataAr,
|
||||
const QHash<int, CentralEffectSimulation::HandlerParticipant::CesParticipantData> &aircrafts)
|
||||
{
|
||||
// first of all, we save the basic info that is directly available
|
||||
m_equipmentNumber = equipmentNumber;
|
||||
m_Time = time;
|
||||
m_PositionLat = positionLat;
|
||||
m_PositionLon = positionLon;
|
||||
m_ballisticService = ballisticService;
|
||||
|
||||
m_fireToAircraft.hit = false;
|
||||
m_singleFireToCtas.hit = false;
|
||||
m_areaFireToCtas.hit = false;
|
||||
m_reportTarget.send = false;
|
||||
|
||||
INFO_LOG(m_logger) << "--------------- geoPairingData empfangen! -----------------" ;
|
||||
INFO_LOG(m_logger) << "playerId = " << m_equipmentNumber ;
|
||||
INFO_LOG(m_logger) << "time = " << (SInt64) m_Time ;
|
||||
INFO_LOG(m_logger) << "positionLat = " << m_PositionLat ;
|
||||
INFO_LOG(m_logger) << "positonLon = " << m_PositionLon ;
|
||||
INFO_LOG(m_logger) << "tr.Data-Size = " << transparentDataAr.size() ;
|
||||
|
||||
INFO_LOG(m_logger) << "transparentData = " << transparentDataAr.toHex() ;
|
||||
|
||||
QHashIterator<int, CentralEffectSimulation::HandlerParticipant::CesParticipantData> i(aircrafts);
|
||||
while (i.hasNext())
|
||||
{
|
||||
i.next();
|
||||
DEBUG_LOG(m_logger) << i.key() << ": participantId=" << i.value().participantId()
|
||||
<< " participantTypeId= " << i.value().participantTypeId()
|
||||
<< " pos lat=" << i.value().pos().lat()
|
||||
<< " pos lon=" << i.value().pos().lon()
|
||||
<< " z=" << i.value().pos().z();
|
||||
}
|
||||
|
||||
|
||||
GeoPairingDataBase l_Header;
|
||||
|
||||
if (!l_Header.parse(transparentDataAr))
|
||||
{
|
||||
ERROR_LOG(m_logger) << "Error: Couldn't parse header of transparent Data!" ;
|
||||
return false;
|
||||
}
|
||||
|
||||
UInt8 l_MessageID = l_Header.m_MessageID;
|
||||
PanGeoPairingDeviceId l_DeviceID = l_Header.m_DeviceID;
|
||||
INFO_LOG(m_logger) << "l_MessageID = " << std::hex << (int)l_MessageID ;
|
||||
INFO_LOG(m_logger) << "l_DeviceID = " << l_DeviceID ;
|
||||
|
||||
if (l_MessageID == 0xE3) // Firing_Report
|
||||
{
|
||||
INFO_LOG(m_logger) << "--> E3 : Firing Report " ;
|
||||
|
||||
switch (l_DeviceID)
|
||||
{
|
||||
case PAN_GP_REPORT_MORTAR:
|
||||
case PAN_GP_REPORT_G5_G6:
|
||||
case PAN_GP_REPORT_M109:
|
||||
calculateSingleFire(transparentDataAr, ballisticService);
|
||||
INFO_LOG(m_logger) << "PAN_GP_REPORT_MORTAR PAN_GP_REPORT_G5_G6 PAN_GP_REPORT_M109 calculateSingleFire";
|
||||
break;
|
||||
case PAN_GP_REPORT_MK19:
|
||||
calculateAreaFire(transparentDataAr, ballisticService);
|
||||
break;
|
||||
case PAN_GP_REPORT_IGLA:
|
||||
case PAN_GP_REQUEST_IGLA:
|
||||
calculateAirFire(transparentDataAr, aircrafts);
|
||||
INFO_LOG(m_logger) << "PAN_GP_REPORT_IGLA PAN_GP_REQUEST_IGLA ";
|
||||
break;
|
||||
default:
|
||||
WARNING_LOG(m_logger) << "--> Unknown DeviceID " << l_DeviceID << " used !" ;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
WARNING_LOG(m_logger) << "--> Unknown MessageID used ! " ;
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
void GeoPairing::setMeteo(double winddirection, double windspeed, double temperature, double pressure)
|
||||
{
|
||||
// create the global meteodata object
|
||||
GeoPairingImplMeteoData l_meteoData;
|
||||
|
||||
l_meteoData.AirPressure = pressure;
|
||||
l_meteoData.Temperature = temperature;
|
||||
l_meteoData.WindDirection = winddirection;
|
||||
l_meteoData.WindSpeed = windspeed;
|
||||
|
||||
GeoPairingImplFactory::setMeteoData(l_meteoData);
|
||||
}
|
||||
|
||||
bool GeoPairing::searchAirTarget(double a_elevation, double azimuth, int &playerId, uint64_t &impactTime)
|
||||
{
|
||||
INFO_LOG(m_logger) << "searchAirTarget (IGLA)..." ;
|
||||
|
||||
QScopedPointer<GeoPairingImplAirTargetTracker> l_Tracker(GeoPairingImplFactory::createAirTargetTracker());
|
||||
|
||||
l_Tracker->setPosition(m_PositionLat, m_PositionLon, m_PositionHeight);
|
||||
l_Tracker->setTime(m_Time);
|
||||
return l_Tracker->track(azimuth,
|
||||
a_elevation,
|
||||
playerId,
|
||||
impactTime);
|
||||
}
|
||||
|
||||
void GeoPairing::readAmmunitionIni()
|
||||
{
|
||||
AmmuConfig *ammuConfig;
|
||||
QString FileName = CesGeoPairing::Settings::cesGeopairingIniPath() + QStringLiteral("/") + CesGeoPairing::Settings::cesAmmunitionIniFile();
|
||||
|
||||
ammuConfig = AmmuConfig::getInstance();
|
||||
ammuConfig->initFilename(FileName);
|
||||
|
||||
//Zu erst holen wir uns alle WaffenTypen
|
||||
const QVector<int> typesList = ammuConfig->getIntegerVector(QStringLiteral("WeaponRestriction"), QStringLiteral("Types"));
|
||||
|
||||
DEBUG_LOG(m_logger) << "typesList.size=" << typesList.size();
|
||||
//Wir holen uns alle Munitionen die in Frage kommen heraus // evtl mit Liste?
|
||||
const QVector<int> ammoList = ammuConfig->getIntegerVector(QStringLiteral("WeaponRestriction"), QStringLiteral("AmmoList"));
|
||||
DEBUG_LOG(m_logger) << "ammoList=" << ammoList.size();
|
||||
for (int ammo : ammoList)
|
||||
{
|
||||
DEBUG_LOG(m_logger) << "ammoListValue=" << ammo;
|
||||
|
||||
QString eleGroup = QStringLiteral("Ammunition") + QStringLiteral("P") + QString::number(ammo) + QStringLiteral("/CWParams");
|
||||
const QVector<double> minElevataion = ammuConfig->getFloatVector(eleGroup, QStringLiteral("ElevMin"));
|
||||
DEBUG_LOG(m_logger) << "ammo = " << ammo << " minElevataion.size() =" << minElevataion.size()
|
||||
<< " " << eleGroup << "/" << QStringLiteral("ElevMin");
|
||||
|
||||
const QVector<double> maxElevataion = ammuConfig->getFloatVector(eleGroup, QStringLiteral("ElevMax"));
|
||||
DEBUG_LOG(m_logger) << "ammo = " << ammo << " maxElevataion.size() =" << maxElevataion.size() << eleGroup << "/" << QStringLiteral("ElevMax");
|
||||
|
||||
if (minElevataion.size() != maxElevataion.size())
|
||||
{
|
||||
DEBUG_LOG(m_logger) << "Invalid Ammunition Config for : Ammunition" << ammo ;
|
||||
continue;
|
||||
}
|
||||
// Get Allowd fpr all Types
|
||||
|
||||
QMap<int, GeoPCharge> mun;
|
||||
QMap<int, QMap<int, bool> > allowedCombi;
|
||||
|
||||
for (int weaponTypeId : typesList)
|
||||
{
|
||||
QString alloweKey = QStringLiteral("Allowed") + QString::number(weaponTypeId);
|
||||
const QMap<int, bool> allowed = ammuConfig->getBoolMap(eleGroup, alloweKey);
|
||||
DEBUG_LOG(m_logger) << "alloweKey allowed.size() =" << allowed.size() << " " << eleGroup << "/" << alloweKey;
|
||||
allowedCombi.insert(weaponTypeId, allowed);
|
||||
//DEBUG_LOG(m_logger) << "allowedCombi.insert(" << weaponTypeId <<", " << allowed << ")";
|
||||
}
|
||||
|
||||
for (int j = 0; j < minElevataion.size(); j++)
|
||||
{
|
||||
|
||||
int _chargeId = j;
|
||||
double _minEleval = minElevataion.at(j);
|
||||
double _maxEleval = maxElevataion.at(j);
|
||||
QMap<int, bool> allowedCombiForCharge;
|
||||
for (int weaponTypeId : typesList)
|
||||
{
|
||||
//hier holen wir nur den erlaubtstatus für die jeweilige ChargeElevation und packen sie in die
|
||||
//Map des ChargeType
|
||||
allowedCombiForCharge.insert(weaponTypeId, allowedCombi.value(weaponTypeId).value(j));
|
||||
DEBUG_LOG(m_logger) << "allowedCombiForCharge.insert(" << weaponTypeId << ", " << allowedCombi.value(weaponTypeId).value(j) << ")";
|
||||
}
|
||||
GeoPCharge geoPCharge = GeoPCharge(_chargeId, _minEleval, _maxEleval, allowedCombiForCharge);
|
||||
mun.insert(j, geoPCharge);
|
||||
}
|
||||
m_geoPMunMap.insert(ammo, mun);
|
||||
}
|
||||
DEBUG_LOG(m_logger) << "m_geoPMunMap.size=" << m_geoPMunMap.size();
|
||||
|
||||
}
|
||||
+195
@@ -0,0 +1,195 @@
|
||||
/**
|
||||
* @RDE_HEADER@
|
||||
* GeoPairing
|
||||
* $Id$
|
||||
* $HeadURL$
|
||||
* $Author$
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "../logger.h"
|
||||
#include <CentralEffectSimulation/handler_participant.h>
|
||||
#include <QString>
|
||||
#include <QMap>
|
||||
#include <FW_Ballistic/BallisticService.hpp>
|
||||
#include <FW_Ballistic/AmmunitionTypes.hpp>
|
||||
#include <GeoPairingImpl/GeoPairingImplAirTarget.hpp>
|
||||
#include <iostream>
|
||||
#include <memory>
|
||||
|
||||
namespace ZSSIWI
|
||||
{
|
||||
class AirTargetsInt;
|
||||
class AutomaticCannonInt;
|
||||
class GeoPairingDataInt;
|
||||
class MortarHowitzerInt;
|
||||
class SurfaceToAirInt;
|
||||
}
|
||||
|
||||
class GeoPairing
|
||||
{
|
||||
public:
|
||||
enum class ElevationError
|
||||
{
|
||||
NoError = 0,
|
||||
ToHigh = 1,
|
||||
ToLow = 2,
|
||||
BelowZero = 3
|
||||
};
|
||||
|
||||
struct FireToAircraft
|
||||
{
|
||||
qint64 impactTime = 0;
|
||||
int participantIdTarget = 0;
|
||||
int ammunitionTypeId = 0;
|
||||
int equipmentNumberGunner = 0;
|
||||
bool hit = false;
|
||||
};
|
||||
|
||||
struct ReportTarget
|
||||
{
|
||||
QByteArray sendData;
|
||||
int playerId = 0;
|
||||
bool send = false;
|
||||
};
|
||||
|
||||
struct SingleFireToCtas
|
||||
{
|
||||
qint64 impactTime = 0; int playerId = 0;
|
||||
int duration = 0;
|
||||
double impactPositionLat = 0.0;
|
||||
double impactPositionLong = 0.0;
|
||||
N_Ballistic::ammunitionTypeIndirectFire ammunitionType = N_Ballistic::UNKNOWN;
|
||||
bool hit = false;
|
||||
};
|
||||
|
||||
struct AreaFireToCtas
|
||||
{
|
||||
int playerId = 0;
|
||||
qint64 impactTime = 0;
|
||||
double duration = 0.0;
|
||||
double impactPositionLat = 0.0;
|
||||
double impactPositionLong = 0.0;
|
||||
double fieldWidth = 0.0;
|
||||
double fieldLength = 0.0;
|
||||
double heading = 0.0;
|
||||
int nbrRounds = 0;
|
||||
N_Ballistic::ammunitionTypeIndirectFire ammunitionType = N_Ballistic::UNKNOWN;
|
||||
N_Ballistic::ammunitionTypeOSAG ammunitionTypeOSAG = N_Ballistic::UNKNOWN_OSAG;
|
||||
bool hit = false;
|
||||
};
|
||||
|
||||
private:
|
||||
struct GeoPCharge
|
||||
{
|
||||
int chargeId = 0;
|
||||
double minEleval = -1.0;
|
||||
double maxEleval = -1.0;
|
||||
// QHash<weaponTypeId, allowed yes/no>
|
||||
QMap<int, bool> isAllowed;
|
||||
|
||||
ElevationError checkElevation(double elevation) const
|
||||
{
|
||||
if (elevation < 0)
|
||||
return ElevationError::BelowZero;
|
||||
if (elevation < minEleval)
|
||||
return ElevationError::ToLow;
|
||||
if (elevation > maxEleval)
|
||||
return ElevationError::ToHigh;
|
||||
return ElevationError::NoError;
|
||||
}
|
||||
|
||||
// Check if Elevation and Charge is correct, return _false_ if errors accure and
|
||||
// change the Error integers
|
||||
bool checkArty(int weaponTypeId, double elevation, ElevationError &eleError, int &chargeError) const
|
||||
{
|
||||
eleError = checkElevation(elevation);
|
||||
bool ret = (eleError == ElevationError::NoError);
|
||||
|
||||
if (!isAllowed.value(weaponTypeId)) //Falls wert nicht vorhanden immer Falsche Kombi
|
||||
{
|
||||
chargeError = 1;
|
||||
ret = false;
|
||||
}
|
||||
else
|
||||
chargeError = 0;
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
GeoPCharge(int _chargeId, double _minEleval, double _maxEleval, const QMap<int, bool> &_isAllowed)
|
||||
: chargeId(_chargeId), minEleval(_minEleval), maxEleval(_maxEleval), isAllowed(_isAllowed)
|
||||
{}
|
||||
|
||||
GeoPCharge() = default;
|
||||
};
|
||||
using GeoPMunitonMap = QMap<int, QMap<int, GeoPCharge> >;
|
||||
|
||||
|
||||
public:
|
||||
Q_DISABLE_COPY(GeoPairing)
|
||||
explicit GeoPairing(const std::shared_ptr<N_Ballistic::BallisticService> &ballisticService);
|
||||
|
||||
bool geoPairingData(const std::shared_ptr<N_Ballistic::BallisticService> &ballisticService,
|
||||
int equipmentNumber,
|
||||
qint64 time,
|
||||
double positionLat,
|
||||
double positionLon,
|
||||
const QByteArray &transparentDataAr,
|
||||
const QHash<int, CentralEffectSimulation::HandlerParticipant::CesParticipantData> &aircrafts);
|
||||
|
||||
FireToAircraft fireToAircraft() const { return m_fireToAircraft; }
|
||||
SingleFireToCtas singleFireToCtas() const { return m_singleFireToCtas; }
|
||||
AreaFireToCtas areaFireToCtas() const { return m_areaFireToCtas; }
|
||||
ReportTarget reportTarget() const { return m_reportTarget; }
|
||||
|
||||
// sets the global meteo conditions
|
||||
// winddirection in degrees -+180
|
||||
// windspeed in m/s
|
||||
// temperature in degrees
|
||||
// pressure default 1013
|
||||
static void setMeteo(double winddirection, double windspeed, double temperature, double pressure);
|
||||
|
||||
//qint64 getImpactTime() { return m_ImpactTime;}
|
||||
//double getImpactPositionLat() { return m_ImpactPositionLat;}
|
||||
//double getImpactPositionLon() { return m_ImpactPositionLon;}
|
||||
//int getAmmunitionType() { return m_AmmunitionType;}
|
||||
//N_Ballistic::ammunitionTypeOSAG getAmmunitionTypeOSAG() { return m_AmmunitionTypeOSAG;}
|
||||
//int getDeviceID() { return m_DeviceID;}
|
||||
|
||||
private:
|
||||
//ZSSIWI::AirTargetsInt *m_airTargets;
|
||||
//ZSSIWI::AutomaticCannonInt* m_automaticCannon;
|
||||
//ZSSIWI::GeoPairingDataInt* m_geoPairingData;
|
||||
//ZSSIWI::MortarHowitzerInt *m_mortarHowitzer;
|
||||
//ZSSIWI::SurfaceToAirInt* m_surfaceToAir;
|
||||
|
||||
QString m_konfigPath; // Pfad fuer Konfigurationsverzeichnis
|
||||
|
||||
int m_equipmentNumber = -1;
|
||||
qint64 m_Time = 0;
|
||||
double m_PositionLat = 0;
|
||||
double m_PositionLon = 0;
|
||||
double m_PositionHeight = 0;
|
||||
GeoPMunitonMap m_geoPMunMap;
|
||||
std::shared_ptr<N_Ballistic::BallisticService> m_ballisticService; ///< Pointer Ballistic Service
|
||||
|
||||
//N_Ballistic::ammunitionTypeOSAG m_AmmunitionTypeOSAG;
|
||||
int m_DeviceID = 0;
|
||||
FireToAircraft m_fireToAircraft;
|
||||
SingleFireToCtas m_singleFireToCtas;
|
||||
AreaFireToCtas m_areaFireToCtas;
|
||||
ReportTarget m_reportTarget;
|
||||
|
||||
NGL::INGLLogger &m_logger;
|
||||
|
||||
void calculateAirFire(const QByteArray &transparentData,
|
||||
const QHash<int, CentralEffectSimulation::HandlerParticipant::CesParticipantData> &aircrafts);
|
||||
void calculateAreaFire(const QByteArray &transparentData,
|
||||
const std::shared_ptr<N_Ballistic::BallisticService> &ballisticService);
|
||||
void calculateSingleFire(const QByteArray &transparentData,
|
||||
const std::shared_ptr<N_Ballistic::BallisticService> &ballisticService);
|
||||
bool searchAirTarget(double a_elevation, double azimuth, int &playerId, uint64_t &impactTime);
|
||||
void readAmmunitionIni();
|
||||
};
|
||||
+74
@@ -0,0 +1,74 @@
|
||||
[GeoPairing]
|
||||
AmmunitionFile = Ammunition.ini
|
||||
NumberOfEntries = 8
|
||||
KeyOfEntries = Ammunition
|
||||
|
||||
[Precision]
|
||||
DeltaTime = 0.05
|
||||
|
||||
[GeoMagneticField]
|
||||
# http://www.ngdc.noaa.gov/geomag-web/#declination
|
||||
# Declination in degrees, + means East, - means West
|
||||
# UAE, Ruwais : Lat 24° 5' 29" Lon 52° 39' 9"
|
||||
Date = 2020-02-24
|
||||
Declination = 2.25
|
||||
ChangePerYear = 0.333333
|
||||
|
||||
# RDE, Bremen : 53° 4' 30" N, 8° 48' 16" E
|
||||
#Date = 2020-02-24
|
||||
#Declination = 2.9
|
||||
#ChangePerYear = 0.18333
|
||||
|
||||
|
||||
[IGLA]
|
||||
ElevationWindow = 4.0
|
||||
AzimuthWindow = 4.0
|
||||
FlightSpeed = 600
|
||||
DistRange = 5200
|
||||
FlightHeightMax = 3500
|
||||
TimeRange = 17
|
||||
TrackingRange = 8000
|
||||
|
||||
ModeAutoProbability = 1.0
|
||||
ModeManuProbability = 1.0
|
||||
WrongCOPFactor = 0.5
|
||||
IRJammerFactor = 0.5
|
||||
|
||||
CacheTimeout = 5
|
||||
|
||||
[MK19]
|
||||
RoundsPerMinute = 350
|
||||
BeatenZoneLength = 7.5
|
||||
BeatenZoneWidth = 15
|
||||
|
||||
[Elevation]
|
||||
# if more than one file is used: filePaths_rough_to_fine
|
||||
# example: MapFile = "/usr/share/arcgis/resources/elevation/ele1.tif;/usr/share/arcgis/resources/elevation/ele2.tif"
|
||||
#
|
||||
# Bremen:
|
||||
MapFile = "/usr/share/arcgis/resources/elevation/srtm_38_02.tif"
|
||||
# AHTC: filePaths_rough_to_fine
|
||||
# MapFile = "/usr/share/arcgis/resources/elevation/Elevation.tif;/usr/share/arcgis/resources/elevation/AHTC_utm_dgm_surface_wgs84.tif"
|
||||
# Altmark
|
||||
# MapFile = "/usr/share/arcgis/resources/elevation/Altmark_dt1.tif"
|
||||
|
||||
[AmmunitionMap]
|
||||
Ammunition1 = "Moerser60mm"
|
||||
Ammunition2 = "Moerser60mm_S1"
|
||||
Ammunition3 = "M430"
|
||||
Ammunition4 = "M385"
|
||||
Ammunition5 = "HE_M1A2"
|
||||
Ammunition6 = "VLAP_M9703"
|
||||
Ammunition7 = "SMK_BE_M2"
|
||||
Ammunition8 = "CLUSTER_HEHC_M9609"
|
||||
|
||||
[ChargeMap]
|
||||
Ammunition1 = 58.8, 98.1, 129.5, 155.9, 179.9
|
||||
Ammunition2 = 58.8, 98.1, 129.5, 155.9, 179.9
|
||||
Ammunition3 = 242
|
||||
Ammunition4 = 242
|
||||
Ammunition5 = 450.000, 610.000, 765.000, 911.000, 908.000
|
||||
Ammunition6 = 912.000
|
||||
Ammunition7 = 450.000, 610.000, 765.000, 911.000, 908.000
|
||||
Ammunition8 = 450.000, 610.000, 765.000, 911.000, 908.000
|
||||
|
||||
BIN
Binary file not shown.
|
After Width: | Height: | Size: 43 KiB |
Executable
BIN
Binary file not shown.
|
After Width: | Height: | Size: 47 KiB |
Executable
+241
@@ -0,0 +1,241 @@
|
||||
###########################################################################
|
||||
# #
|
||||
# Projekt TES : File "HE-M1-M64Base-TableE.sus" zur Munition "M64" #
|
||||
# #
|
||||
# Bei der Auspraegung des Ballistik-Moduls vereinbarte Bezeichnungen #
|
||||
# Tafel_Namen : ENTFERNUNG, AUFSATZ, FLUGZEIT, -- obligatorisch #
|
||||
# VORHALT -- projektspezifisch #
|
||||
# Param_Namen : DELTA_V0, LUFTTEMP, LUFTDRUCK, #
|
||||
# LAENGSWIND, QUERWIND, #
|
||||
# PULVERTEMP -- Korrektur-Parameter #
|
||||
# #
|
||||
###########################################################################
|
||||
|
||||
# Aenderung/Stand: 09.07.14-07:52
|
||||
|
||||
Schuss_Tafel =
|
||||
{
|
||||
Munition = "HE-M1-M64"
|
||||
Version = "HE M64 Base Table-E"
|
||||
Muni_Parameter = { Kaliber = 155.0 Masse = 46.30 V0 = 912.0 }
|
||||
Std_Parameter = { DELTA_V0 = 0.0
|
||||
LUFTTEMP = 15.0
|
||||
LUFTDRUCK = 1013.25
|
||||
LAENGSWIND= 0.0
|
||||
QUERWIND = 0.0
|
||||
PULVERTEMP= 21.1 }
|
||||
Entfernung_Range= { Min = 100.0 Max = 12100.0 Delta = 100.0 Scheitel = 12228.0 }
|
||||
Ballistik = "Parabel"
|
||||
###########################################################################
|
||||
|
||||
Standard_Tafel =
|
||||
{
|
||||
Spaltengruppe =
|
||||
{ Belegung = { AUFSATZ = (2) [-]
|
||||
VORHALT = (3) [-]
|
||||
FLUGZEIT = (4)
|
||||
DELTA_RGE = (5) [-]
|
||||
DELTA_ELEV = (6)
|
||||
FORK = (7) [-]
|
||||
DRIFT = (8) [-]
|
||||
}
|
||||
Zeilenlaenge = 8
|
||||
Datenblock =
|
||||
{
|
||||
#
|
||||
# RGE ELEV TOF DELTA DELTA FORK BEARING-CORR. RANGE-CORR.
|
||||
# ENTF AUFSATZ VORHALT FLUGZEIT RGE ELEV DRIFT CW DEC INC
|
||||
# [m] [mil] [mil] [sec] [mil] [m] [mil] [mil] [mil] [m] [m]
|
||||
#
|
||||
100 2.5 0 0.2 2.4 41 1 0.1 0 0.1 -0.1
|
||||
200 4.9 0 0.4 2.5 41 1 0.3 0.01 0.2 -0.2
|
||||
300 7.5 0 0.7 2.6 40 1 0.4 0.01 0.3 -0.3
|
||||
400 10 0 0.9 2.6 40 1 0.5 0.02 0.4 -0.5
|
||||
500 12.6 0 1.1 2.6 39 1 0.7 0.02 0.5 -0.6
|
||||
600 15.2 0 1.4 2.6 39 1 0.8 0.03 0.6 -0.7
|
||||
700 17.8 0 1.6 2.7 38 1 1 0.03 0.7 -0.8
|
||||
800 20.5 0 1.8 2.7 38 1 1.1 0.04 0.9 -0.9
|
||||
900 23.1 0 2.1 2.7 37 1 1.2 0.05 0.9 -1
|
||||
1000 25.9 0 2.3 2.8 37 1 1.4 0.05 1 -1.1
|
||||
1100 28.6 0 2.6 2.8 37 1 1.5 0.06 1.1 -1.2
|
||||
1200 31.4 0 2.8 2.8 36 1 1.6 0.06 1.2 -1.3
|
||||
1300 34.2 0 3.1 2.8 36 1 1.8 0.07 1.3 -1.4
|
||||
1400 37.1 0 3.3 2.9 35 1 1.9 0.07 1.4 -1.5
|
||||
1500 40 0 3.6 2.9 35 1 2.1 0.08 1.5 -1.6
|
||||
1600 42.9 0 3.8 3 34 1 2.2 0.08 1.6 -1.7
|
||||
1700 45.9 0 4.1 3 34 1 2.4 0.09 1.7 -1.8
|
||||
1800 48.9 0 4.3 3 34 1 2.5 0.09 1.8 -1.9
|
||||
1900 51.9 0 4.6 3 33 1 2.6 0.1 1.8 -2
|
||||
2000 55 0 4.8 3.1 33 2 2.8 0.1 2 -2.1
|
||||
2100 58.1 0 5.1 3.1 32 2 2.9 0.11 2.1 -2.2
|
||||
2200 61.2 0 5.4 3.2 32 2 3.1 0.12 2.1 -2.3
|
||||
2300 64.4 0 5.7 3.2 32 2 3.2 0.12 2.2 -2.4
|
||||
2400 67.6 0 5.9 3.3 31 2 3.4 0.13 2.3 -2.4
|
||||
2500 70.9 0 6.2 3.3 31 2 3.5 0.13 2.4 -2.5
|
||||
2600 74.2 0 6.5 3.3 31 2 3.7 0.14 2.5 -2.6
|
||||
2700 77.6 0 6.8 3.4 30 2 3.8 0.14 2.6 -2.7
|
||||
2800 81 0 7 3.4 30 2 4 0.15 2.7 -2.8
|
||||
2900 84.4 0 7.3 3.5 29 2 4.1 0.16 2.7 -2.9
|
||||
3000 87.9 0 7.6 3.5 29 2 4.3 0.16 2.8 -3
|
||||
3100 91.4 0 7.9 3.5 29 2 4.4 0.17 2.9 -3.1
|
||||
3200 95 0 8.2 3.6 28 2 4.6 0.17 3 -3.2
|
||||
3300 98.6 0 8.5 3.7 28 2 4.7 0.18 3 -3.3
|
||||
3400 102.3 0 8.8 3.7 28 2 4.9 0.19 3.1 -3.3
|
||||
3500 106 0 9.1 3.8 27 3 5.1 0.19 3.2 -3.4
|
||||
3600 109.8 0 9.4 3.8 27 3 5.2 0.2 3.3 -3.5
|
||||
3700 113.6 0 9.7 3.8 27 3 5.4 0.2 3.3 -3.5
|
||||
3800 117.4 0 10 3.9 26 3 5.5 0.21 3.4 -3.6
|
||||
3900 121.3 0 10.3 4 26 3 5.7 0.21 3.5 -3.7
|
||||
4000 125.3 0 10.6 3.9 26 3 5.9 0.22 3.5 -3.8
|
||||
4100 129.2 0 10.9 4 26 3 6 0.22 3.6 -3.8
|
||||
4200 133.3 0 11.3 4.1 25 3 6.2 0.23 3.6 -3.9
|
||||
4300 137.3 0 11.6 4 25 3 6.3 0.24 3.7 -3.9
|
||||
4400 141.4 0 11.9 4.2 25 3 6.5 0.24 3.7 -4
|
||||
4500 145.6 0 12.2 4.2 24 3 6.7 0.25 3.8 -4.1
|
||||
4600 149.8 0 12.5 4.2 24 3 6.8 0.25 3.8 -4.1
|
||||
4700 154 0 12.9 4.3 24 4 7 0.25 3.9 -4.2
|
||||
4800 158.3 0 13.2 4.3 24 4 7.2 0.26 3.9 -4.2
|
||||
4900 162.6 0 13.5 4.3 24 4 7.3 0.26 4 -4.3
|
||||
5000 166.9 0 13.8 4.3 23 4 7.5 0.27 4 -4.3
|
||||
5100 171.3 0 14.2 4.4 23 4 7.6 0.27 4.1 -4.4
|
||||
5200 175.7 0 14.5 4.4 23 4 7.8 0.28 4.1 -4.4
|
||||
5300 180.2 0 14.8 4.5 23 4 8 0.28 4.2 -4.5
|
||||
5400 184.7 0 15.2 4.6 23 4 8.1 0.29 4.2 -4.5
|
||||
5500 189.3 0 15.5 4.6 22 4 8.3 0.29 4.3 -4.6
|
||||
5600 193.9 0 15.8 4.6 22 4 8.4 0.3 4.3 -4.6
|
||||
5700 198.5 0 16.2 4.7 22 5 8.6 0.3 4.3 -4.7
|
||||
5800 203.2 0 16.5 4.8 22 5 8.8 0.3 4.4 -4.7
|
||||
5900 208 0 16.9 4.8 22 5 8.9 0.31 4.4 -4.8
|
||||
6000 212.7 0 17.2 4.8 21 5 9.1 0.31 4.5 -4.8
|
||||
6100 217.5 0 17.6 4.8 21 5 9.2 0.32 4.5 -4.8
|
||||
6200 222.4 0 17.9 4.9 21 5 9.4 0.32 4.6 -4.9
|
||||
6300 227.3 0 18.3 5 21 5 9.5 0.32 4.6 -4.9
|
||||
6400 232.3 0 18.6 5 21 5 9.7 0.33 4.6 -5
|
||||
6500 237.3 0 19 5 20 6 9.8 0.33 4.7 -5
|
||||
6600 242.3 0 19.3 5 20 6 10 0.34 4.7 -5
|
||||
6700 247.4 0 19.7 5.1 20 6 10.1 0.34 4.7 -5.1
|
||||
6800 252.5 0 20.1 5.2 20 6 10.3 0.34 4.8 -5.1
|
||||
6900 257.7 0 20.4 5.2 20 6 10.4 0.35 4.8 -5.2
|
||||
7000 262.9 0 20.8 5.3 19 6 10.5 0.35 4.8 -5.2
|
||||
7100 268.2 0 21.2 5.4 19 6 10.7 0.36 4.9 -5.2
|
||||
7200 273.6 0 21.5 5.3 19 7 10.8 0.36 4.9 -5.3
|
||||
7300 278.9 0 21.9 5.4 19 7 11 0.36 5 -5.3
|
||||
7400 284.4 0 22.3 5.4 19 7 11.1 0.37 5 -5.3
|
||||
7500 289.8 0 22.7 5.5 19 7 11.2 0.37 5 -5.4
|
||||
7600 295.4 0 23 5.6 18 7 11.4 0.37 5.1 -5.4
|
||||
7700 301 0 23.4 5.6 18 7 11.5 0.38 5.1 -5.5
|
||||
7800 306.6 0 23.8 5.6 18 7 11.6 0.38 5.1 -5.5
|
||||
7900 312.3 0 24.2 5.8 18 8 11.8 0.38 5.2 -5.5
|
||||
8000 318.2 0 24.6 5.9 18 8 11.9 0.39 5.2 -5.6
|
||||
8100 324.1 0 25 5.9 17 8 12 0.39 5.3 -5.6
|
||||
8200 330 0 25.4 5.9 17 8 12.2 0.4 5.3 -5.7
|
||||
8300 336 0 25.8 6.1 17 8 12.3 0.4 5.3 -5.7
|
||||
8400 342.1 0 26.2 6.1 17 9 12.4 0.4 5.4 -5.7
|
||||
8500 348.2 0 26.7 6.1 17 9 12.6 0.41 5.4 -5.8
|
||||
8600 354.4 0 27.1 6.3 16 9 12.7 0.41 5.4 -5.8
|
||||
8700 360.7 0 27.5 6.4 16 9 12.8 0.41 5.5 -5.8
|
||||
8800 367.1 0 27.9 6.4 16 9 12.9 0.42 5.5 -5.9
|
||||
8900 373.6 0 28.4 6.5 16 10 13.1 0.42 5.5 -5.9
|
||||
9000 380.1 0 28.8 6.6 16 10 13.2 0.43 5.6 -6
|
||||
9100 386.8 0 29.2 6.8 15 10 13.3 0.43 5.6 -6
|
||||
9200 393.7 0 29.7 6.9 15 11 13.4 0.43 5.7 -6
|
||||
9300 400.6 0 30.2 6.9 15 11 13.5 0.44 5.7 -6.1
|
||||
9400 407.6 0 30.6 7 15 11 13.7 0.44 5.7 -6.1
|
||||
9500 414.6 0 31.1 7.1 15 11 13.8 0.45 5.8 -6.1
|
||||
9600 421.7 0 31.5 7.3 14 12 13.9 0.45 5.8 -6.2
|
||||
9700 429.1 0 32 7.5 14 12 14 0.45 5.8 -6.2
|
||||
9800 436.8 0 32.5 7.8 13 13 14.1 0.46 5.9 -6.3
|
||||
9900 444.6 0 33 7.8 13 13 14.3 0.46 5.9 -6.3
|
||||
10000 452.4 0 33.5 7.8 13 13 14.4 0.47 6 -6.3
|
||||
10100 460.1 0 34 7.8 13 13 14.5 0.47 6 -6.4
|
||||
10200 468 0 34.5 8.2 13 14 14.6 0.48 6.1 -6.5
|
||||
10300 476.5 0 35.1 8.6 12 15 14.7 0.48 6.1 -6.5
|
||||
10400 485.2 0 35.6 8.8 12 15 14.9 0.48 6.2 -6.6
|
||||
10500 494.1 0 36.2 8.9 12 15 15 0.49 6.2 -6.6
|
||||
10600 503.1 0 36.8 9.1 12 16 15.2 0.49 6.3 -6.6
|
||||
10700 512.2 0 37.3 9.2 11 16 15.3 0.5 6.3 -6.7
|
||||
10800 521.5 0 37.9 9.6 11 17 15.4 0.5 6.3 -6.7
|
||||
10900 531.4 0 38.5 10.2 10 18 15.6 0.51 6.4 -6.8
|
||||
11000 541.9 0 39.2 10.5 10 19 15.8 0.51 6.4 -6.8
|
||||
11100 552.5 0 39.8 10.9 10 20 15.9 0.52 6.5 -6.9
|
||||
11200 563.7 0 40.5 11.5 9 21 16.1 0.53 6.5 -6.9
|
||||
11300 575.5 0 41.2 12.2 9 23 16.4 0.53 6.5 -7.0
|
||||
11400 588.1 0 42.0 13.0 8 24 16.6 0.54 6.6 -7.0
|
||||
11500 601.4 0 42.8 13.4 8 25 16.8 0.55 6.7 -7.1
|
||||
11600 614.8 0 43.6 13.9 8 27 17.1 0.55 6.7 -7.1
|
||||
11700 629.3 0 44.4 15.2 7 29 17.4 0.56 6.8 -7.2
|
||||
11800 645.2 0 45.4 17.3 6 34 17.8 0.57 6.8 -7.2
|
||||
11900 663.9 0 46.4 20.4 5 40 18.3 0.58 6.9 -7.3
|
||||
12000 685.9 0 47.7 24.5 5 48 18.9 0.59 6.9 -7.4
|
||||
12100 713.0 0 49.2 52.9 5 48 19.7 0.61 7.0 -7.4
|
||||
12228 791.7 0 52 78.6 5 48 22 0.66 7.0 -7.5
|
||||
12100 870.3 0 57.3 53.2 5 48 27.8 0.71 7.1 -7.6
|
||||
12000 898.1 0 58.7 24.6 5 50 30.1 0.73 7.1 -7.5
|
||||
11900 919.4 0 59.7 19.8 6 41 32.1 0.75 7.1 -7.5
|
||||
11800 937.6 0 60.5 17 6 35 33.9 0.76 7 -7.4
|
||||
11700 953.5 0 61.3 15.2 7 31 35.7 0.78 7 -7.4
|
||||
11600 968 0 61.9 13.9 8 28 37.4 0.79 6.9 -7.3
|
||||
11500 981.3 0 62.5 12.9 8 26 39.1 0.81 6.9 -7.3
|
||||
11400 993.7 0 63 12.1 9 24 40.9 0.82 6.8 -7.2
|
||||
11300 1005.4 0 63.5 11.4 9 23 42.6 0.83 6.8 -7.2
|
||||
11200 1016.4 0 64 10.8 10 22 44.3 0.84 6.7 -7.1
|
||||
11100 1026.9 0 64.4 10.3 10 21 46 0.86 6.7 -7.1
|
||||
11000 1036.9 0 64.8 9.8 11 20 47.7 0.87 6.6 -7
|
||||
10900 1046.5 0 65.2 9.5 11 19 49.4 0.88 6.6 -7
|
||||
10800 1055.8 0 65.6 9.1 11 18 51.2 0.89 6.5 -6.9
|
||||
10700 1064.7 0 65.9 8.8 12 18 53 0.91 6.5 -6.9
|
||||
10600 1073.4 0 66.3 8.5 12 17 54.8 0.92 0.92 -6.8
|
||||
10500 1081.7 0 66.6 8.3 13 16 56.6 0.93 0.93 -6.7
|
||||
10400 1089.9 0 66.9 8.1 13 16 58.4 0.95 0.95 -6.7
|
||||
10300 1097.8 0 67.2 7.8 13 15 60.2 0.96 0.96 -6.6
|
||||
10200 1105.5 0 67.5 7.6 14 15 62.1 0.97 0.97 -6.6
|
||||
10100 1113 0 67.8 7.4 14 14 64 0.99 0.99 -6.5
|
||||
10000 1120.3 0 68.1 7.3 14 14 65.9 1.00 1 -6.5
|
||||
9900 1127.5 0 68.3 7.1 15 14 67.8 1.01 1.01 -6.4
|
||||
9800 1134.6 0 68.6 7 15 13 69.8 1.03 1.03 -6.3
|
||||
9700 1141.4 0 68.8 6.8 15 13 71.7 1.04 1.04 -6.3
|
||||
9600 1148.2 0 69.1 6.7 15 13 73.7 1.06 1.06 -6.2
|
||||
9500 1154.8 0 69.3 6.6 16 12 75.7 1.07 1.07 -6.2
|
||||
9400 1161.3 0 69.5 6.4 16 12 77.8 1.09 1.09 -6.1
|
||||
9300 1167.7 0 69.7 6.3 16 12 79.8 1.10 1.1 -6
|
||||
9200 1174 0 70 6.2 17 12 81.9 1.12 1.12 -6
|
||||
9100 1180.1 0 70.2 6.1 17 11 84 1.13 1.13 -5.9
|
||||
9000 1186.2 0 70.4 6 17 11 86 1.15 1.15 -5.9
|
||||
8900 1192.2 0 70.6 6 17 11 88.1 1.17 1.17 -5.8
|
||||
8800 1198.1 0 70.8 5.8 18 11 90.2 1.18 1.18 -5.7
|
||||
8700 1203.8 0 70.9 5.8 18 11 92.3 1.20 1.2 -5.7
|
||||
8600 1209.6 0 71.1 5.7 18 10 94.5 1.22 1.22 -5.6
|
||||
8500 1215.2 0 71.3 5.5 18 10 96.5 1.24 1.24 -5.6
|
||||
8400 1220.7 0 71.5 5.5 19 10 98.6 1.26 1.26 -5.5
|
||||
8300 1226.2 0 71.7 5.5 19 10 100.7 1.28 1.28 -5.4
|
||||
8200 1231.6 0 71.8 5.4 19 10 102.7 1.30 1.3 -5.3
|
||||
8100 1236.9 0 72 5.3 19 9 104.8 1.32 1.32 -5.3
|
||||
8000 1242.2 0 72.1 5.3 20 9 106.7 1.34 1.34 -5.2
|
||||
7900 1247.4 0 72.3 5.2 20 9 108.6 1.36 4.9 -5.2
|
||||
7800 1252.5 0 72.5 5.1 20 9 110.5 1.39 4.8 -5.1
|
||||
7700 1257.6 0 72.6 5 20 9 112.2 1.41 4.7 -5
|
||||
7600 1262.6 0 72.7 5 21 9 113.9 1.43 4.7 -5
|
||||
7500 1267.5 0 72.9 4.9 21 8 115.4 1.46 4.6 -4.9
|
||||
7400 1272.3 0 73 4.8 21 8 117 1.49 4.5 -4.9
|
||||
7300 1277.1 0 73.2 4.8 21 8 118.7 1.51 4.5 -4.8
|
||||
7200 1281.9 0 73.3 4.8 22 8 120.5 1.54 4.5 -4.7
|
||||
7100 1286.6 0 73.4 4.8 22 8 122.4 1.57 4.4 -4.7
|
||||
7000 1291.4 0 73.6 4.8 22 8 124.1 1.6 4.3 -4.6
|
||||
6900 1296.1 0 73.7 4.8 21 8 125.7 1.63 4.3 -4.5
|
||||
6800 1300.9 0 73.8 4.8 21 8 127.2 1.66 4.2 -4.5
|
||||
6700 1305.7 0 73.9 4.8 21 8 128.7 1.69 4.2 -4.4
|
||||
6600 1310.5 0 74 4.8 21 8 130.1 1.72 4.1 -4.3
|
||||
6500 1315.3 0 74.1 4.8 21 8 131.3 1.75 4 -4.3
|
||||
6400 1320.1 0 74.2 4.8 21 8 132.6 1.78 4 -4.2
|
||||
6300 1324.9 0 74.3 4.8 22 8 133.7 1.82 3.9 -4.2
|
||||
6200 1329.6 0 74.4 4.8 22 8 134.7 1.85 3.8 -4.1
|
||||
6100 1334.4 0 74.5 4.8 22 7 135.8 1.88 3.8 -4
|
||||
6000 1339.1 0 74.6 4.7 22 7 136.8 1.92 3.7 -4
|
||||
5900 1343.8 0 74.6 4.7 22 7 137.9 1.95 3.6 -3.9
|
||||
5800 1348.5 0 74.7 4.7 22 7 138.9 1.99 3.6 -3.8
|
||||
}
|
||||
} Ende Spaltengruppe
|
||||
} Ende Standard_Tafel
|
||||
|
||||
} Ende Schuss_Tafel
|
||||
|
||||
Executable
+311
@@ -0,0 +1,311 @@
|
||||
###########################################################################
|
||||
# #
|
||||
# Projekt TES : File "HE-M1-M64Incr3-TableE.sus" zur Munition "M64" #
|
||||
# #
|
||||
# Bei der Auspraegung des Ballistik-Moduls vereinbarte Bezeichnungen #
|
||||
# Tafel_Namen : ENTFERNUNG, AUFSATZ, FLUGZEIT, -- obligatorisch #
|
||||
# VORHALT -- projektspezifisch #
|
||||
# Param_Namen : DELTA_V0, LUFTTEMP, LUFTDRUCK, #
|
||||
# LAENGSWIND, QUERWIND, #
|
||||
# PULVERTEMP -- Korrektur-Parameter #
|
||||
# #
|
||||
###########################################################################
|
||||
|
||||
# Aenderung/Stand: 09.07.14-07:52
|
||||
|
||||
Schuss_Tafel =
|
||||
{
|
||||
Munition = "HE-M1-M64"
|
||||
Version = "HE M64 Incr3 Table-E"
|
||||
Muni_Parameter = { Kaliber = 155.0 Masse = 46.30 V0 = 912.0 }
|
||||
Std_Parameter = { DELTA_V0 = 0.0
|
||||
LUFTTEMP = 15.0
|
||||
LUFTDRUCK = 1013.25
|
||||
LAENGSWIND= 0.0
|
||||
QUERWIND = 0.0
|
||||
PULVERTEMP= 21.1 }
|
||||
Entfernung_Range= { Min = 100.0 Max = 17700.0 Delta = 100.0 Scheitel = 17785.0 }
|
||||
Ballistik = "Parabel"
|
||||
###########################################################################
|
||||
|
||||
Standard_Tafel =
|
||||
{
|
||||
Spaltengruppe =
|
||||
{ Belegung = { AUFSATZ = (2) [-]
|
||||
VORHALT = (3) [-]
|
||||
FLUGZEIT = (4)
|
||||
DELTA_RGE = (5) [-]
|
||||
DELTA_ELEV = (6)
|
||||
FORK = (7) [-]
|
||||
DRIFT = (8) [-]
|
||||
}
|
||||
Zeilenlaenge = 8
|
||||
Datenblock =
|
||||
{
|
||||
#
|
||||
# RGE ELEV TOF DELTA DELTA FORK BEARING-CORR. RANGE-CORR.
|
||||
# ENTF AUFSATZ VORHALT FLUGZEIT RGE ELEV DRIFT CW DEC INC
|
||||
# [m] [mil] [mil] [sec] [mil] [m] [mil] [mil] [mil] [m] [m]
|
||||
#
|
||||
100 1.3 0 0.2 1.4 76 1 0.1 0.00 0.1 -0.2
|
||||
200 2.7 0 0.3 1.4 75 1 0.2 0.01 0.2 -0.5
|
||||
300 4.0 0 0.5 1.4 74 1 0.3 0.01 0.4 -0.8
|
||||
400 5.4 0 0.7 1.3 74 1 0.4 0.01 0.5 -1.0
|
||||
500 6.7 0 0.8 1.4 73 1 0.5 0.01 0.6 -1.2
|
||||
600 8.1 0 1.0 1.4 72 1 0.6 0.02 0.7 -1.5
|
||||
700 9.5 0 1.2 1.4 72 1 0.7 0.02 0.9 -1.8
|
||||
800 10.9 0 1.3 1.4 71 1 0.8 0.02 1.0 -2.0
|
||||
900 12.4 0 1.5 1.5 70 1 0.9 0.03 1.1 -2.2
|
||||
1000 13.8 0 1.7 1.5 70 1 1.0 0.03 1.2 -2.5
|
||||
1100 15.3 0 1.9 1.5 69 1 1.1 0.03 1.4 -2.7
|
||||
1200 16.7 0 2.0 1.5 68 1 1.2 0.03 1.4 -2.9
|
||||
1300 18.2 0 2.2 1.5 68 1 1.3 0.04 1.6 -3.2
|
||||
1400 19.7 0 2.4 1.5 67 1 1.4 0.04 1.7 -3.4
|
||||
1500 21.2 0 2.6 1.5 67 1 1.6 0.04 1.8 -3.6
|
||||
1600 22.7 0 2.8 1.5 66 1 1.7 0.05 1.9 -3.9
|
||||
1700 24.3 0 3.0 1.5 65 1 1.8 0.05 2.0 -4.1
|
||||
1800 25.8 0 3.1 1.6 65 1 1.9 0.05 2.1 -4.3
|
||||
1900 27.4 0 3.3 1.6 64 1 2.0 0.06 2.3 -4.6
|
||||
2000 28.9 0 3.5 1.6 64 1 2.1 0.06 2.4 -4.8
|
||||
2100 30.5 0 3.7 1.6 63 1 2.2 0.06 2.5 -5.0
|
||||
2200 32.1 0 3.9 1.6 62 1 2.3 0.07 2.6 -5.2
|
||||
2300 33.8 0 4.1 1.7 62 1 2.4 0.07 2.7 -5.4
|
||||
2400 35.4 0 4.3 1.6 61 1 2.5 0.07 2.8 -5.6
|
||||
2500 37.1 0 4.5 1.6 61 1 2.6 0.08 3.0 -5.9
|
||||
2600 38.7 0 4.7 1.7 60 1 2.7 0.08 3.1 -6.1
|
||||
2700 40.4 0 4.9 1.7 59 1 2.8 0.08 3.2 -6.3
|
||||
2800 42.1 0 5.1 1.8 59 1 2.9 0.09 3.3 -6.5
|
||||
2900 43.9 0 5.3 1.8 58 1 3.0 0.09 3.4 -6.7
|
||||
3000 45.6 0 5.5 1.7 58 1 3.2 0.09 3.5 -6.9
|
||||
3100 47.3 0 5.7 1.8 57 1 3.3 0.10 3.6 -7.2
|
||||
3200 49.1 0 5.9 1.8 57 2 3.4 0.10 3.7 -7.4
|
||||
3300 50.9 0 6.1 1.8 56 2 3.5 0.10 3.8 -7.6
|
||||
3400 52.7 0 6.3 1.8 55 2 3.6 0.11 3.9 -7.8
|
||||
3500 54.6 0 6.5 1.9 55 2 3.7 0.11 4.0 -7.9
|
||||
3600 56.4 0 6.7 1.9 54 2 3.8 0.11 4.0 -8.2
|
||||
3700 58.3 0 6.9 1.8 54 2 3.9 0.12 4.2 -8.4
|
||||
3800 60.1 0 7.1 1.9 53 2 4.0 0.12 4.2 -8.6
|
||||
3900 62.1 0 7.3 2.0 53 2 4.1 0.12 4.4 -8.8
|
||||
4000 64.0 0 7.5 1.9 52 2 4.2 0.13 4.4 -8.9
|
||||
4100 65.9 0 7.8 2.0 52 2 4.4 0.13 4.6 -9.1
|
||||
4200 67.9 0 8.0 2.0 51 2 4.5 0.13 4.6 -9.3
|
||||
4300 69.9 0 8.2 2.0 51 2 4.6 0.14 4.7 -9.5
|
||||
4400 71.9 0 8.4 2.0 50 2 4.7 0.14 4.8 -9.6
|
||||
4500 73.9 0 8.6 2.0 50 2 4.8 0.15 4.9 -9.9
|
||||
4600 75.9 0 8.9 2.0 49 2 4.9 0.15 5.0 -10.0
|
||||
4700 78.0 0 9.1 2.1 49 2 5.0 0.15 5.1 -10.3
|
||||
4800 80.1 0 9.3 2.1 48 2 5.1 0.16 5.2 -10.4
|
||||
4900 82.2 0 9.6 2.2 48 2 5.2 0.16 5.3 -10.6
|
||||
5000 84.4 0 9.8 2.2 47 2 5.4 0.16 5.4 -10.7
|
||||
5100 86.5 0 10.0 2.1 47 2 5.5 0.17 5.5 -11.0
|
||||
5200 88.7 0 10.3 2.2 46 2 5.6 0.17 5.6 -11.1
|
||||
5300 90.9 0 10.5 2.2 46 2 5.7 0.18 5.6 -11.3
|
||||
5400 93.1 0 10.7 2.3 45 2 5.8 0.18 5.7 -11.4
|
||||
5500 95.4 0 11.0 2.3 45 2 5.9 0.18 5.8 -11.6
|
||||
5600 97.7 0 11.2 2.3 44 2 6.0 0.19 5.9 -11.7
|
||||
5700 100.0 0 11.5 2.3 44 2 6.1 0.19 6.0 -11.9
|
||||
5800 102.3 0 11.7 2.3 43 3 6.3 0.20 6.1 -12.0
|
||||
5900 104.7 0 12.0 2.3 43 3 6.4 0.20 6.2 -12.2
|
||||
6000 107.0 0 12.2 2.4 42 3 6.5 0.20 6.2 -12.3
|
||||
6100 109.4 0 12.5 2.5 42 3 6.6 0.21 6.3 -12.5
|
||||
6200 111.9 0 12.7 2.5 41 3 6.7 0.21 6.4 -12.7
|
||||
6300 114.3 0 13.0 2.5 41 3 6.8 0.22 6.5 -12.9
|
||||
6400 116.8 0 13.3 2.5 40 3 6.9 0.22 6.5 -13.0
|
||||
6500 119.3 0 13.5 2.5 40 3 7.1 0.23 6.6 -13.2
|
||||
6600 121.9 0 13.8 2.6 40 3 7.2 0.23 6.7 -13.3
|
||||
6700 124.5 0 14.1 2.6 39 3 7.3 0.23 6.8 -13.5
|
||||
6800 127.1 0 14.3 2.6 39 3 7.4 0.24 6.9 -13.7
|
||||
6900 129.7 0 14.6 2.6 38 3 7.5 0.24 7.0 -13.8
|
||||
7000 132.4 0 14.9 2.7 38 3 7.6 0.25 7.0 -14.0
|
||||
7100 135.1 0 15.1 2.7 37 3 7.7 0.25 7.1 -14.1
|
||||
7200 137.8 0 15.4 2.8 37 3 7.9 0.26 7.2 -14.2
|
||||
7300 140.6 0 15.7 2.8 37 3 8.0 0.26 7.2 -14.3
|
||||
7400 143.4 0 16.0 2.8 36 4 8.1 0.26 7.3 -14.5
|
||||
7500 146.2 0 16.3 2.8 36 4 8.2 0.27 7.4 -14.7
|
||||
7600 149.0 0 16.6 2.8 35 4 8.3 0.27 7.5 -14.8
|
||||
7700 151.9 0 16.9 2.9 35 4 8.4 0.28 7.6 -15.0
|
||||
7800 154.9 0 17.1 3.0 34 4 8.5 0.28 7.6 -15.1
|
||||
7900 157.8 0 17.4 3.0 34 4 8.7 0.29 7.7 -15.3
|
||||
8000 160.8 0 17.7 3.0 34 4 8.8 0.29 7.7 -15.3
|
||||
8100 163.8 0 18.0 3.0 33 4 8.9 0.30 7.8 -15.5
|
||||
8200 166.9 0 18.3 3.1 33 4 9.0 0.30 7.9 -15.7
|
||||
8300 170.0 0 18.6 3.2 32 4 9.1 0.31 7.9 -15.8
|
||||
8400 173.2 0 19.0 3.2 32 4 9.2 0.31 8.0 -16.0
|
||||
8500 176.3 0 19.3 3.2 32 4 9.3 0.32 8.1 -16.0
|
||||
8600 179.6 0 19.6 3.3 31 5 9.5 0.32 8.2 -16.2
|
||||
8700 182.8 0 19.9 3.3 31 5 9.6 0.32 8.2 -16.3
|
||||
8800 186.1 0 20.2 3.3 31 5 9.7 0.33 8.3 -16.4
|
||||
8900 189.4 0 20.5 3.3 30 5 9.8 0.33 8.3 -16.6
|
||||
9000 192.8 0 20.8 3.4 30 5 9.9 0.34 8.4 -16.7
|
||||
9100 196.2 0 21.2 3.4 30 5 10.0 0.34 8.4 -16.8
|
||||
9200 199.7 0 21.5 3.5 29 5 10.1 0.35 8.5 -17.0
|
||||
9300 203.1 0 21.8 3.5 29 5 10.3 0.35 8.6 -17.0
|
||||
9400 206.7 0 22.1 3.5 29 5 10.4 0.36 8.6 -17.2
|
||||
9500 210.2 0 22.5 3.6 28 6 10.5 0.36 8.7 -17.3
|
||||
9600 213.8 0 22.8 3.6 28 6 10.6 0.36 8.8 -17.4
|
||||
9700 217.4 0 23.1 3.7 28 6 10.7 0.37 8.8 -17.5
|
||||
9800 221.1 0 23.4 3.7 28 6 10.8 0.37 8.9 -17.6
|
||||
9900 224.8 0 23.8 3.8 27 6 10.9 0.38 8.9 -17.7
|
||||
10000 228.6 0 24.1 3.8 27 6 11.0 0.38 9.0 -17.8
|
||||
10100 232.3 0 24.4 3.8 27 6 11.1 0.39 9.0 -18.0
|
||||
10200 236.2 0 24.8 3.8 27 6 11.3 0.39 9.1 -18.0
|
||||
10300 240.0 0 25.1 3.8 26 6 11.4 0.39 9.1 -18.1
|
||||
10400 243.9 0 25.5 3.9 26 7 11.5 0.40 9.2 -18.2
|
||||
10500 247.9 0 25.8 4.0 26 7 11.6 0.40 9.2 -18.3
|
||||
10600 251.8 0 26.2 4.0 26 7 11.7 0.41 9.3 -18.4
|
||||
10700 255.9 0 26.5 4.0 25 7 11.8 0.41 9.3 -18.5
|
||||
10800 259.9 0 26.9 4.1 25 7 11.9 0.41 9.4 -18.7
|
||||
10900 264.0 0 27.2 4.1 25 7 12.0 0.42 9.5 -18.7
|
||||
11000 268.1 0 27.6 4.1 25 7 12.1 0.42 9.5 -18.8
|
||||
11100 272.3 0 27.9 4.2 24 8 12.2 0.43 9.5 -19.0
|
||||
11200 276.5 0 28.3 4.3 24 8 12.3 0.43 9.6 -19.0
|
||||
11300 280.8 0 28.6 4.3 24 8 12.4 0.43 9.6 -19.1
|
||||
11400 285.1 0 29.0 4.4 24 8 12.5 0.44 9.7 -19.3
|
||||
11500 289.5 0 29.4 4.4 23 8 12.6 0.44 9.7 -19.4
|
||||
11600 293.9 0 29.7 4.4 23 8 12.7 0.45 9.8 -19.4
|
||||
11700 298.3 0 30.1 4.4 23 8 12.7 0.45 9.8 -19.5
|
||||
11800 302.8 0 30.5 4.5 23 9 12.8 0.45 9.9 -19.7
|
||||
11900 307.2 0 30.8 4.5 23 9 12.9 0.46 9.9 -19.7
|
||||
12000 311.8 0 31.2 4.5 23 9 13.0 0.46 10.0 -19.7
|
||||
12100 316.3 0 31.6 4.6 22 9 13.1 0.47 10.0 -19.8
|
||||
12200 321.0 0 32.0 4.7 22 9 13.2 0.47 10.0 -19.9
|
||||
12300 325.7 0 32.4 4.8 22 10 13.3 0.47 10.1 -20.1
|
||||
12400 330.5 0 32.7 4.8 21 10 13.3 0.48 10.2 -20.1
|
||||
12500 335.3 0 33.1 4.9 21 10 13.4 0.48 10.2 -20.2
|
||||
12600 340.2 0 33.5 4.9 21 10 13.5 0.48 10.2 -20.3
|
||||
12700 345.1 0 33.9 4.9 21 10 13.6 0.49 10.3 -20.4
|
||||
12800 350.0 0 34.3 4.9 21 10 13.7 0.49 10.3 -20.5
|
||||
12900 355.0 0 34.7 5.0 20 11 13.7 0.50 10.4 -20.6
|
||||
13000 360.0 0 35.1 5.1 20 11 13.8 0.50 10.4 -20.7
|
||||
13100 365.1 0 35.5 5.1 20 11 13.9 0.50 10.4 -20.7
|
||||
13200 370.3 0 35.9 5.2 20 11 14.0 0.51 10.5 -20.8
|
||||
13300 375.5 0 36.3 5.3 20 11 14.0 0.51 10.5 -20.9
|
||||
13400 380.8 0 36.7 5.3 19 12 14.1 0.51 10.6 -21.0
|
||||
13500 386.1 0 37.2 5.3 19 12 14.2 0.52 10.6 -21.1
|
||||
13600 391.4 0 37.6 5.4 19 12 14.2 0.52 10.7 -21.1
|
||||
13700 396.9 0 38.0 5.4 19 12 14.3 0.52 10.7 -21.2
|
||||
13800 402.3 0 38.4 5.5 19 12 14.4 0.53 10.7 -21.3
|
||||
13900 407.9 0 38.9 5.6 18 13 14.4 0.53 10.8 -21.4
|
||||
14000 413.5 0 39.3 5.7 18 13 14.5 0.54 10.8 -21.5
|
||||
14100 419.2 0 39.7 5.7 18 13 14.5 0.54 10.9 -21.7
|
||||
14200 424.9 0 40.2 5.8 18 14 14.6 0.54 10.9 -21.7
|
||||
14300 430.8 0 40.6 5.9 17 14 14.7 0.55 10.9 -21.7
|
||||
14400 436.7 0 41.1 6.1 17 14 14.7 0.55 11.0 -21.8
|
||||
14500 442.9 0 41.5 6.2 17 15 14.8 0.55 11.1 -21.9
|
||||
14600 449.1 0 42.0 6.2 17 15 14.9 0.56 11.1 -22.0
|
||||
14700 455.2 0 42.5 6.1 17 15 14.9 0.56 11.1 -22.1
|
||||
14800 461.3 0 42.9 6.2 17 15 15.0 0.56 11.2 -22.1
|
||||
14900 467.6 0 43.4 6.4 16 16 15.0 0.57 11.2 -22.3
|
||||
15000 474.0 0 43.9 6.5 16 16 15.1 0.57 11.3 -22.3
|
||||
15100 480.6 0 44.4 6.7 16 17 15.2 0.57 11.3 -22.4
|
||||
15200 487.4 0 44.9 6.8 15 17 15.2 0.58 11.3 -22.4
|
||||
15300 494.2 0 45.4 6.8 15 17 15.3 0.58 11.4 -22.6
|
||||
15400 501.0 0 45.9 6.8 15 17 15.4 0.59 11.4 -22.7
|
||||
15500 507.9 0 46.4 7.0 15 18 15.4 0.59 11.4 -22.8
|
||||
15600 515.0 0 46.9 7.2 15 18 15.5 0.59 11.5 -22.8
|
||||
15700 522.2 0 47.4 7.3 14 19 15.6 0.60 11.5 -22.9
|
||||
15800 529.5 0 48.0 7.4 14 19 15.7 0.60 11.6 -23.0
|
||||
15900 537.0 0 48.5 7.6 14 20 15.8 0.60 11.6 -23.1
|
||||
16000 544.7 0 49.1 7.8 13 20 15.9 0.61 11.6 -23.1
|
||||
16100 552.5 0 49.6 7.9 13 21 15.9 0.61 11.8 -23.3
|
||||
16200 560.6 0 50.2 8.2 13 22 16.0 0.62 11.8 -23.4
|
||||
16300 568.9 0 50.8 8.5 12 23 16.2 0.62 11.9 -23.6
|
||||
16400 577.5 0 51.4 8.7 12 24 16.3 0.62 12.0 -23.8
|
||||
16500 586.3 0 52.1 9.0 12 25 16.4 0.63 12.0 -23.8
|
||||
16600 595.5 0 52.7 9.4 11 26 16.6 0.63 12.1 -24.0
|
||||
16700 605.0 0 53.4 9.8 11 27 16.7 0.64 12.2 -24.1
|
||||
16800 615.0 0 54.1 10.2 10 28 16.9 0.64 12.3 -24.3
|
||||
16900 625.4 0 54.8 10.7 10 30 17.1 0.65 12.3 -24.4
|
||||
17000 636.4 0 55.6 11.3 9 32 17.3 0.65 12.4 -24.6
|
||||
17100 648.0 0 56.4 12.0 9 34 17.6 0.66 12.5 -24.8
|
||||
17200 660.4 0 57.3 13.0 8 37 17.9 0.67 12.6 -25.0
|
||||
17300 673.9 0 58.2 14.1 8 40 18.2 0.67 12.7 -25.1
|
||||
17400 688.7 0 59.2 15.8 7 45 18.7 0.68 12.8 -25.4
|
||||
17500 705.4 0 60.3 18.4 6 53 19.2 0.69 12.8 -25.6
|
||||
17600 725.4 0 61.7 23.1 5 67 19.8 0.70 13.0 -25.8
|
||||
17700 751.7 0 63.4 40.3 5 68 20.9 0.72 13.1 -26.1
|
||||
17785 806.0 0 66.0 54.0 4 72 25.0 0.76 13.4 -26.5
|
||||
17700 859.7 0 70.3 40.5 5 68 27.8 0.79 13.4 -26.7
|
||||
17600 887.0 0 72.0 23.5 5 70 30.4 0.81 13.4 -26.8
|
||||
17500 906.7 0 73.2 18.0 6 54 32.6 0.83 13.4 -26.7
|
||||
17400 922.9 0 74.2 15.1 7 45 34.5 0.84 13.4 -26.6
|
||||
17300 937.0 0 75.0 13.3 8 40 36.4 0.85 13.3 -26.6
|
||||
17200 949.5 0 75.7 12.0 9 36 38.2 0.87 13.3 -26.5
|
||||
17100 961.0 0 76.4 11.0 10 33 39.9 0.88 13.2 -26.5
|
||||
17000 971.6 0 77.0 10.3 10 31 41.7 0.89 13.2 -26.3
|
||||
16900 981.6 0 77.6 9.7 11 29 43.3 0.90 13.2 -26.2
|
||||
16800 990.9 0 78.1 9.1 11 27 45.0 0.91 13.1 -26.1
|
||||
16700 999.8 0 78.6 8.7 12 26 46.7 0.92 13.0 -26.0
|
||||
16600 1008.3 0 79.1 8.3 13 25 48.4 0.93 13.0 -25.9
|
||||
16500 1016.4 0 79.5 7.9 13 23 50.0 0.94 12.9 -25.8
|
||||
16400 1024.1 0 79.9 7.6 14 23 51.7 0.95 12.8 -25.7
|
||||
16300 1031.6 0 80.3 7.4 14 22 53.4 0.96 12.8 -25.5
|
||||
16200 1038.8 0 80.7 7.1 15 21 55.1 0.97 12.7 -25.4
|
||||
16100 1045.8 0 81.1 6.9 15 20 56.8 0.98 12.7 -25.3
|
||||
16000 1052.6 0 81.5 6.7 15 20 58.5 0.99 12.6 -25.1
|
||||
15900 1059.2 0 81.8 6.5 16 19 60.2 1.00 12.5 -25.1
|
||||
15800 1065.6 0 82.1 6.3 16 18 62.0 1.01 12.5 -24.9
|
||||
15700 1071.8 0 82.5 6.1 17 18 63.7 1.02 12.4 -24.8
|
||||
15600 1077.8 0 82.8 5.9 17 17 65.4 1.03 12.4 -24.7
|
||||
15500 1083.7 0 83.1 5.8 18 17 67.2 1.04 12.3 -24.6
|
||||
15400 1089.5 0 83.4 5.8 18 17 68.9 1.05 12.2 -24.4
|
||||
15300 1095.2 0 83.7 5.6 18 16 70.7 1.06 12.1 -24.3
|
||||
15200 1100.7 0 83.9 5.5 19 16 72.5 1.07 12.1 -24.2
|
||||
15100 1106.1 0 84.2 5.4 19 15 74.2 1.08 12.0 -24.1
|
||||
15000 1111.5 0 84.5 5.3 19 15 76.1 1.09 12.0 -23.9
|
||||
14900 1116.7 0 84.7 5.2 20 15 77.9 1.10 11.9 -23.8
|
||||
14800 1121.8 0 85.0 5.1 20 14 79.7 1.11 11.8 -23.6
|
||||
14700 1126.8 0 85.2 4.9 21 14 81.5 1.12 11.7 -23.5
|
||||
14600 1131.7 0 85.5 4.8 21 14 83.4 1.13 11.6 -23.4
|
||||
14500 1136.5 0 85.7 4.8 21 14 85.2 1.14 11.6 -23.2
|
||||
14400 1141.3 0 85.9 4.7 22 13 87.1 1.15 11.5 -23.1
|
||||
14300 1145.9 0 86.1 4.6 22 13 89.0 1.16 11.5 -23.0
|
||||
14200 1150.5 0 86.3 4.6 22 13 90.9 1.17 11.4 -22.8
|
||||
14100 1155.1 0 86.5 4.5 23 13 92.7 1.19 11.3 -22.7
|
||||
14000 1159.6 0 86.8 4.5 23 12 94.6 1.20 11.3 -22.5
|
||||
13900 1164.0 0 87.0 4.4 23 12 96.6 1.21 11.2 -22.4
|
||||
13800 1168.4 0 87.2 4.3 24 12 98.5 1.22 11.1 -22.3
|
||||
13700 1172.7 0 87.3 4.3 24 12 100.4 1.23 11.1 -22.1
|
||||
13600 1176.9 0 87.5 4.2 24 12 102.3 1.24 11.0 -22.0
|
||||
13500 1181.1 0 87.7 4.2 24 12 104.3 1.26 10.9 -21.8
|
||||
13400 1185.3 0 87.9 4.2 25 11 106.2 1.27 10.8 -21.7
|
||||
13300 1189.4 0 88.1 4.1 25 11 108.1 1.28 10.7 -21.4
|
||||
13200 1193.5 0 88.3 4.0 25 11 110.1 1.29 10.7 -21.3
|
||||
13100 1197.5 0 88.4 4.0 26 11 112.0 1.31 10.6 -21.1
|
||||
13000 1201.4 0 88.6 4.0 26 11 113.9 1.32 10.5 -21.0
|
||||
12900 1205.4 0 88.8 4.0 26 11 115.9 1.33 10.4 -20.8
|
||||
12800 1209.3 0 88.9 3.8 26 10 117.7 1.35 10.3 -20.7
|
||||
12700 1213.1 0 89.1 3.8 27 10 119.6 1.36 10.3 -20.5
|
||||
12600 1216.9 0 89.3 3.8 27 10 121.5 1.37 10.2 -20.4
|
||||
12500 1220.6 0 89.4 3.8 27 10 123.4 1.39 10.2 -20.3
|
||||
12400 1224.4 0 89.6 3.7 28 10 125.2 1.40 10.0 -20.1
|
||||
12300 1228.0 0 89.7 3.6 28 10 127.1 1.42 9.9 -19.9
|
||||
12200 1231.7 0 89.9 3.7 28 10 128.9 1.43 9.8 -19.7
|
||||
12100 1235.3 0 90.0 3.6 28 10 130.6 1.45 9.8 -19.6
|
||||
12000 1238.9 0 90.2 3.5 29 9 132.4 1.46 9.7 -19.5
|
||||
11900 1242.4 0 90.3 3.5 29 9 134.0 1.48 9.6 -19.4
|
||||
11800 1245.9 0 90.5 3.5 29 9 135.7 1.49 9.5 -19.1
|
||||
11700 1249.3 0 90.6 3.5 30 9 137.2 1.51 9.4 -19.0
|
||||
11600 1252.8 0 90.7 3.4 30 9 138.7 1.53 9.3 -18.8
|
||||
11500 1256.2 0 90.8 3.3 30 9 140.2 1.54 9.3 -18.7
|
||||
11400 1259.5 0 91.0 3.4 30 9 141.7 1.56 9.2 -18.4
|
||||
11300 1262.9 0 91.1 3.3 31 9 143.3 1.58 9.1 -18.3
|
||||
11200 1266.2 0 91.2 3.3 31 9 145.0 1.60 9.0 -18.1
|
||||
11100 1269.5 0 91.4 3.3 31 9 146.8 1.62 9.0 -18.0
|
||||
11000 1272.8 0 91.5 3.3 31 8 148.5 1.64 8.9 -17.8
|
||||
10900 1276.1 0 91.6 3.3 31 8 150.2 1.66 8.8 -17.7
|
||||
10800 1279.3 0 91.7 3.3 31 8 151.9 1.68 8.7 -17.5
|
||||
10700 1282.6 0 91.8 3.3 31 8 153.6 1.70 8.7 -17.4
|
||||
10600 1285.8 0 92.0 3.3 31 8 155.2 1.72 8.6 -17.3
|
||||
10500 1289.1 0 92.1 3.3 31 8 156.8 1.74 8.5 -17.1
|
||||
10400 1292.3 0 92.2 3.3 31 8 158.3 1.76 8.5 -17.0
|
||||
10300 1295.6 0 92.3 3.3 31 8 159.6 1.78 8.4 -16.9
|
||||
10200 1298.9 0 92.4 3.3 31 8 161.0 1.80 8.4 -16.7
|
||||
10100 1302.2 0 92.5 3.3 31 8 162.3 1.82 8.3 -16.6
|
||||
10000 1305.4 0 92.6 3.2 31 8 163.5 1.84 8.2 -16.4
|
||||
}
|
||||
} Ende Spaltengruppe
|
||||
} Ende Standard_Tafel
|
||||
|
||||
} Ende Schuss_Tafel
|
||||
|
||||
Executable
+385
@@ -0,0 +1,385 @@
|
||||
###########################################################################
|
||||
# #
|
||||
# Projekt TES : File "HE-M1-M64Incr4-TableE.sus" zur Munition "M64" #
|
||||
# #
|
||||
# Bei der Auspraegung des Ballistik-Moduls vereinbarte Bezeichnungen #
|
||||
# Tafel_Namen : ENTFERNUNG, AUFSATZ, FLUGZEIT, -- obligatorisch #
|
||||
# VORHALT -- projektspezifisch #
|
||||
# Param_Namen : DELTA_V0, LUFTTEMP, LUFTDRUCK, #
|
||||
# LAENGSWIND, QUERWIND, #
|
||||
# PULVERTEMP -- Korrektur-Parameter #
|
||||
# #
|
||||
###########################################################################
|
||||
|
||||
# Aenderung/Stand: 09.07.14-07:52
|
||||
|
||||
Schuss_Tafel =
|
||||
{
|
||||
Munition = "HE-M1-M64"
|
||||
Version = "HE M64 Incr4 Table-E"
|
||||
Muni_Parameter = { Kaliber = 155.0 Masse = 46.30 V0 = 912.0 }
|
||||
Std_Parameter = { DELTA_V0 = 0.0
|
||||
LUFTTEMP = 15.0
|
||||
LUFTDRUCK = 1013.25
|
||||
LAENGSWIND= 0.0
|
||||
QUERWIND = 0.0
|
||||
PULVERTEMP= 21.1 }
|
||||
Entfernung_Range= { Min = 100.0 Max = 23900.0 Delta = 100.0 Scheitel = 23975.0 }
|
||||
Ballistik = "Parabel"
|
||||
###########################################################################
|
||||
|
||||
Standard_Tafel =
|
||||
{
|
||||
Spaltengruppe =
|
||||
{ Belegung = { AUFSATZ = (2) [-]
|
||||
VORHALT = (3) [-]
|
||||
FLUGZEIT = (4)
|
||||
DELTA_RGE = (5) [-]
|
||||
DELTA_ELEV = (6)
|
||||
FORK = (7) [-]
|
||||
DRIFT = (8) [-]
|
||||
}
|
||||
Zeilenlaenge = 8
|
||||
Datenblock =
|
||||
{
|
||||
#
|
||||
# RGE ELEV TOF DELTA DELTA FORK BEARING-CORR. RANGE-CORR.
|
||||
# ENTF AUFSATZ VORHALT FLUGZEIT RGE ELEV DRIFT CW DEC INC
|
||||
# [m] [mil] [mil] [sec] [mil] [m] [mil] [mil] [mil] [m] [m]
|
||||
#
|
||||
100 0.8 0 0.1 0.9 119 1 0.1 0.00 0.1 -0.3
|
||||
200 1.7 0 0.3 0.9 118 1 0.1 0.00 0.3 -0.4
|
||||
300 2.5 0 0.4 0.9 117 1 0.2 0.01 0.5 -0.7
|
||||
400 3.4 0 0.5 0.9 116 1 0.2 0.01 0.7 -1.0
|
||||
500 4.3 0 0.7 0.8 115 1 0.3 0.01 0.8 -1.3
|
||||
600 5.1 0 0.8 0.8 114 1 0.3 0.01 1.0 -1.4
|
||||
700 6.0 0 0.9 0.9 114 1 0.4 0.01 1.2 -1.7
|
||||
800 6.9 0 1.1 0.9 113 1 0.5 0.02 1.3 -2.0
|
||||
900 7.8 0 1.2 0.9 112 1 0.5 0.02 1.5 -2.2
|
||||
1000 8.7 0 1.3 0.9 111 1 0.6 0.02 1.6 -2.5
|
||||
1100 9.6 0 1.5 0.9 110 1 0.6 0.02 1.8 -2.8
|
||||
1200 10.5 0 1.6 0.9 109 1 0.7 0.02 1.9 -3.0
|
||||
1300 11.5 0 1.8 0.9 108 1 0.8 0.03 2.1 -3.1
|
||||
1400 12.4 0 1.9 0.9 108 1 0.8 0.03 2.3 -3.4
|
||||
1500 13.3 0 2.0 1.0 107 1 0.9 0.03 2.4 -3.6
|
||||
1600 14.3 0 2.2 0.9 106 1 0.9 0.03 2.5 -3.8
|
||||
1700 15.2 0 2.3 1.0 105 1 1.0 0.03 2.6 -4.0
|
||||
1800 16.2 0 2.5 1.0 104 1 1.1 0.04 2.7 -4.1
|
||||
1900 17.2 0 2.6 0.9 103 1 1.1 0.04 2.9 -4.4
|
||||
2000 18.1 0 2.8 0.9 102 1 1.2 0.04 3.0 -4.6
|
||||
2100 19.1 0 2.9 1.0 102 1 1.2 0.04 3.2 -4.8
|
||||
2200 20.1 0 3.1 1.0 101 1 1.3 0.05 3.3 -4.9
|
||||
2300 21.1 0 3.2 1.0 100 1 1.4 0.05 3.4 -5.1
|
||||
2400 22.1 0 3.4 1.0 99 1 1.4 0.05 3.5 -5.3
|
||||
2500 23.1 0 3.5 1.1 98 1 1.5 0.05 3.7 -5.6
|
||||
2600 24.2 0 3.7 1.1 98 1 1.6 0.05 3.8 -5.8
|
||||
2700 25.2 0 3.8 1.0 97 1 1.6 0.06 4.0 -5.9
|
||||
2800 26.2 0 4.0 1.0 96 1 1.7 0.06 4.1 -6.1
|
||||
2900 27.3 0 4.1 1.1 95 1 1.8 0.06 4.2 -6.3
|
||||
3000 28.4 0 4.3 1.1 94 1 1.8 0.06 4.4 -6.6
|
||||
3100 29.4 0 4.4 1.1 94 1 1.9 0.07 4.5 -6.7
|
||||
3200 30.5 0 4.6 1.1 93 1 1.9 0.07 4.6 -6.9
|
||||
3300 31.6 0 4.8 1.1 92 1 2.0 0.07 4.7 -7.1
|
||||
3400 32.7 0 4.9 1.1 91 1 2.1 0.07 4.9 -7.3
|
||||
3500 33.8 0 5.1 1.1 91 1 2.1 0.07 5.0 -7.5
|
||||
3600 34.9 0 5.2 1.1 90 1 2.2 0.08 5.2 -7.6
|
||||
3700 36.0 0 5.4 1.1 89 1 2.3 0.08 5.3 -7.8
|
||||
3800 37.2 0 5.6 1.1 88 1 2.3 0.08 5.4 -8.1
|
||||
3900 38.3 0 5.7 1.1 87 1 2.4 0.08 5.6 -8.3
|
||||
4000 39.5 0 5.9 1.1 87 1 2.5 0.09 5.7 -8.5
|
||||
4100 40.6 0 6.1 1.1 86 1 2.6 0.09 5.8 -8.6
|
||||
4200 41.8 0 6.2 1.2 85 1 2.6 0.09 6.0 -8.8
|
||||
4300 43.0 0 6.4 1.2 85 1 2.7 0.09 6.1 -9.0
|
||||
4400 44.2 0 6.6 1.2 84 2 2.8 0.10 6.1 -9.2
|
||||
4500 45.4 0 6.7 1.2 83 2 2.8 0.10 6.3 -9.4
|
||||
4600 46.6 0 6.9 1.2 82 2 2.9 0.10 6.4 -9.5
|
||||
4700 47.8 0 7.1 1.3 82 2 3.0 0.10 6.6 -9.7
|
||||
4800 49.1 0 7.3 1.3 81 2 3.0 0.11 6.6 -9.9
|
||||
4900 50.3 0 7.4 1.3 80 2 3.1 0.11 6.7 -10.1
|
||||
5000 51.6 0 7.6 1.3 80 2 3.2 0.11 6.8 -10.3
|
||||
5100 52.9 0 7.8 1.3 79 2 3.3 0.11 6.9 -10.4
|
||||
5200 54.1 0 8.0 1.3 78 2 3.3 0.12 7.1 -10.6
|
||||
5300 55.4 0 8.1 1.3 77 2 3.4 0.12 7.2 -10.8
|
||||
5400 56.7 0 8.3 1.3 77 2 3.5 0.12 7.3 -10.9
|
||||
5500 58.1 0 8.5 1.4 76 2 3.5 0.12 7.4 -11.1
|
||||
5600 59.4 0 8.7 1.3 75 2 3.6 0.13 7.5 -11.2
|
||||
5700 60.7 0 8.9 1.3 75 2 3.7 0.13 7.7 -11.4
|
||||
5800 62.1 0 9.1 1.4 74 2 3.8 0.13 7.8 -11.6
|
||||
5900 63.4 0 9.2 1.4 73 2 3.8 0.14 7.8 -11.7
|
||||
6000 64.8 0 9.4 1.4 73 2 3.9 0.14 8.0 -11.9
|
||||
6100 66.2 0 9.6 1.4 72 2 4.0 0.14 8.1 -12.1
|
||||
6200 67.6 0 9.8 1.4 71 2 4.1 0.14 8.2 -12.2
|
||||
6300 69.0 0 10.0 1.5 71 2 4.1 0.15 8.3 -12.4
|
||||
6400 70.5 0 10.2 1.5 70 2 4.2 0.15 8.5 -12.6
|
||||
6500 71.9 0 10.4 1.5 70 2 4.3 0.15 8.5 -12.7
|
||||
6600 73.4 0 10.6 1.5 69 2 4.4 0.15 8.6 -12.9
|
||||
6700 74.8 0 10.8 1.5 68 2 4.4 0.16 8.8 -13.0
|
||||
6800 76.3 0 11.0 1.5 68 2 4.5 0.16 8.9 -13.1
|
||||
6900 77.8 0 11.2 1.5 67 2 4.6 0.16 8.9 -13.3
|
||||
7000 79.3 0 11.4 1.5 66 2 4.7 0.17 9.1 -13.4
|
||||
7100 80.8 0 11.6 1.5 66 2 4.7 0.17 9.2 -13.6
|
||||
7200 82.4 0 11.8 1.5 65 2 4.8 0.17 9.2 -13.8
|
||||
7300 83.9 0 12.0 1.5 65 2 4.9 0.17 9.4 -13.9
|
||||
7400 85.5 0 12.2 1.6 64 2 5.0 0.18 9.5 -14.0
|
||||
7500 87.1 0 12.4 1.6 63 2 5.1 0.18 9.5 -14.2
|
||||
7600 88.7 0 12.6 1.6 63 2 5.1 0.18 9.7 -14.4
|
||||
7700 90.3 0 12.8 1.6 62 2 5.2 0.19 9.7 -14.5
|
||||
7800 91.9 0 13.1 1.6 62 2 5.3 0.19 9.9 -14.7
|
||||
7900 93.6 0 13.3 1.6 61 2 5.4 0.19 10.0 -14.8
|
||||
8000 95.2 0 13.5 1.7 60 3 5.4 0.20 10.0 -14.9
|
||||
8100 96.9 0 13.7 1.7 60 3 5.5 0.20 10.2 -15.0
|
||||
8200 98.6 0 13.9 1.7 59 3 5.6 0.20 10.3 -15.2
|
||||
8300 100.3 0 14.1 1.7 59 3 5.7 0.20 10.3 -15.3
|
||||
8400 102.0 0 14.4 1.8 58 3 5.8 0.21 10.5 -15.5
|
||||
8500 103.8 0 14.6 1.8 58 3 5.9 0.21 10.5 -15.6
|
||||
8600 105.5 0 14.8 1.8 57 3 5.9 0.21 10.6 -15.7
|
||||
8700 107.3 0 15.0 1.8 57 3 6.0 0.22 10.7 -15.9
|
||||
8800 109.1 0 15.3 1.8 56 3 6.1 0.22 10.8 -16.0
|
||||
8900 110.9 0 15.5 1.8 56 3 6.2 0.22 10.9 -16.2
|
||||
9000 112.7 0 15.7 1.8 55 3 6.3 0.23 10.9 -16.3
|
||||
9100 114.6 0 16.0 1.9 54 3 6.4 0.23 11.1 -16.5
|
||||
9200 116.4 0 16.2 1.9 54 3 6.4 0.23 11.1 -16.6
|
||||
9300 118.3 0 16.4 1.9 53 3 6.5 0.24 11.3 -16.7
|
||||
9400 120.2 0 16.7 1.9 53 3 6.6 0.24 11.3 -16.8
|
||||
9500 122.1 0 16.9 2.0 52 3 6.7 0.24 11.4 -16.9
|
||||
9600 124.1 0 17.1 2.0 52 3 6.8 0.25 11.5 -17.1
|
||||
9700 126.0 0 17.4 2.0 51 3 6.9 0.25 11.6 -17.2
|
||||
9800 128.0 0 17.6 2.0 51 3 7.0 0.25 11.7 -17.4
|
||||
9900 130.0 0 17.9 2.0 50 3 7.1 0.26 11.7 -17.5
|
||||
10000 132.0 0 18.1 2.0 50 3 7.1 0.26 11.8 -17.5
|
||||
10100 134.0 0 18.4 2.1 49 3 7.2 0.26 11.9 -17.7
|
||||
10200 136.1 0 18.6 2.1 49 4 7.3 0.27 12.0 -17.8
|
||||
10300 138.2 0 18.9 2.1 48 4 7.4 0.27 12.1 -18.0
|
||||
10400 140.3 0 19.1 2.1 48 4 7.5 0.27 12.2 -18.1
|
||||
10500 142.4 0 19.4 2.1 48 4 7.6 0.28 12.2 -18.2
|
||||
10600 144.5 0 19.6 2.2 47 4 7.7 0.28 12.3 -18.4
|
||||
10700 146.7 0 19.9 2.2 47 4 7.8 0.28 12.4 -18.4
|
||||
10800 148.9 0 20.2 2.2 46 4 7.9 0.29 12.5 -18.5
|
||||
10900 151.1 0 20.4 2.2 46 4 8.0 0.29 12.6 -18.7
|
||||
11000 153.3 0 20.7 2.2 45 4 8.0 0.29 12.7 -18.8
|
||||
11100 155.5 0 21.0 2.3 45 4 8.1 0.30 12.7 -18.9
|
||||
11200 157.8 0 21.2 2.3 44 4 8.2 0.30 12.8 -19.1
|
||||
11300 160.1 0 21.5 2.3 44 4 8.3 0.30 12.9 -19.2
|
||||
11400 162.4 0 21.8 2.3 43 4 8.4 0.31 13.0 -19.3
|
||||
11500 164.8 0 22.1 2.4 43 4 8.5 0.31 13.1 -19.3
|
||||
11600 167.1 0 22.3 2.3 43 4 8.6 0.31 13.1 -19.5
|
||||
11700 169.5 0 22.6 2.4 42 5 8.7 0.32 13.3 -19.6
|
||||
11800 171.9 0 22.9 2.4 42 5 8.8 0.32 13.3 -19.7
|
||||
11900 174.3 0 23.2 2.5 41 5 8.9 0.33 13.4 -19.8
|
||||
12000 176.8 0 23.5 2.5 41 5 9.0 0.33 13.4 -19.9
|
||||
12100 179.3 0 23.7 2.5 41 5 9.1 0.33 13.6 -20.1
|
||||
12200 181.8 0 24.0 2.5 40 5 9.2 0.34 13.6 -20.2
|
||||
12300 184.3 0 24.3 2.5 40 5 9.3 0.34 13.7 -20.2
|
||||
12400 186.9 0 24.6 2.6 39 5 9.4 0.34 13.7 -20.3
|
||||
12500 189.5 0 24.9 2.6 39 5 9.5 0.35 13.9 -20.5
|
||||
12600 192.1 0 25.2 2.6 39 5 9.6 0.35 13.9 -20.6
|
||||
12700 194.7 0 25.5 2.6 38 5 9.7 0.35 14.0 -20.7
|
||||
12800 197.4 0 25.8 2.7 38 5 9.8 0.36 14.1 -20.9
|
||||
12900 200.1 0 26.1 2.7 37 6 9.9 0.36 14.2 -21.0
|
||||
13000 202.8 0 26.4 2.7 37 6 10.0 0.37 14.2 -21.1
|
||||
13100 205.5 0 26.7 2.8 37 6 10.1 0.37 14.3 -21.2
|
||||
13200 208.3 0 27.0 2.8 36 6 10.2 0.37 14.4 -21.3
|
||||
13300 211.1 0 27.4 2.8 36 6 10.3 0.38 14.5 -21.4
|
||||
13400 214.0 0 27.7 2.8 36 6 10.4 0.38 14.5 -21.5
|
||||
13500 216.8 0 28.0 2.8 35 6 10.5 0.39 14.6 -21.6
|
||||
13600 219.7 0 28.3 2.9 35 6 10.6 0.39 14.7 -21.7
|
||||
13700 222.6 0 28.6 3.0 35 6 10.7 0.39 14.8 -21.8
|
||||
13800 225.6 0 28.9 2.9 34 6 10.8 0.40 14.8 -21.9
|
||||
13900 228.5 0 29.3 2.9 34 7 10.9 0.40 14.9 -22.0
|
||||
14000 231.5 0 29.6 3.1 34 7 11.1 0.40 15.0 -22.1
|
||||
14100 234.6 0 29.9 3.1 33 7 11.2 0.41 15.1 -22.2
|
||||
14200 237.6 0 30.2 3.0 33 7 11.3 0.41 15.1 -22.4
|
||||
14300 240.7 0 30.6 3.1 33 7 11.4 0.41 15.2 -22.5
|
||||
14400 243.8 0 30.9 3.2 32 7 11.5 0.42 15.3 -22.7
|
||||
14500 247.0 0 31.2 3.2 32 7 11.6 0.42 15.3 -22.8
|
||||
14600 250.1 0 31.5 3.2 32 7 11.7 0.43 15.4 -22.9
|
||||
14700 253.3 0 31.9 3.3 32 7 11.8 0.43 15.5 -22.9
|
||||
14800 256.6 0 32.2 3.2 31 8 11.9 0.43 15.6 -23.0
|
||||
14900 259.8 0 32.5 3.3 31 8 12.1 0.44 15.6 -23.1
|
||||
15000 263.1 0 32.9 3.3 31 8 12.2 0.44 15.7 -23.3
|
||||
15100 266.4 0 33.2 3.3 31 8 12.3 0.44 15.8 -23.4
|
||||
15200 269.8 0 33.6 3.4 30 8 12.4 0.45 15.8 -23.6
|
||||
15300 273.1 0 33.9 3.4 30 8 12.5 0.45 15.9 -23.7
|
||||
15400 276.5 0 34.2 3.4 30 8 12.6 0.45 16.0 -23.8
|
||||
15500 280.0 0 34.6 3.4 30 9 12.7 0.46 16.1 -23.8
|
||||
15600 283.4 0 34.9 3.4 29 9 12.9 0.46 16.1 -23.9
|
||||
15700 286.9 0 35.3 3.5 29 9 13.0 0.46 16.2 -24.0
|
||||
15800 290.4 0 35.6 3.6 29 9 13.1 0.47 16.2 -24.1
|
||||
15900 294.0 0 36.0 3.6 29 9 13.2 0.47 16.4 -24.3
|
||||
16000 297.6 0 36.3 3.6 28 9 13.3 0.47 16.4 -24.4
|
||||
16100 301.2 0 36.7 3.6 28 9 13.4 0.48 16.5 -24.5
|
||||
16200 304.8 0 37.1 3.6 28 9 13.6 0.48 16.5 -24.6
|
||||
16300 308.5 0 37.4 3.7 28 10 13.7 0.49 16.7 -24.7
|
||||
16400 312.2 0 37.8 3.8 27 10 13.8 0.49 16.7 -24.7
|
||||
16500 316.0 0 38.1 3.8 27 10 13.9 0.49 16.8 -24.8
|
||||
16600 319.7 0 38.5 3.8 27 10 14.0 0.50 16.8 -25.0
|
||||
16700 323.5 0 38.9 3.8 27 10 14.2 0.50 16.9 -25.1
|
||||
16800 327.3 0 39.2 3.9 27 10 14.3 0.50 17.0 -25.2
|
||||
16900 331.2 0 39.6 3.9 26 11 14.4 0.51 17.0 -25.3
|
||||
17000 335.1 0 40.0 3.9 26 11 14.5 0.51 17.2 -25.5
|
||||
17100 339.0 0 40.4 3.9 26 11 14.7 0.51 17.2 -25.6
|
||||
17200 343.0 0 40.7 4.0 26 11 14.8 0.51 17.3 -25.6
|
||||
17300 347.0 0 41.1 4.0 25 11 14.9 0.52 17.4 -25.7
|
||||
17400 351.0 0 41.5 4.1 25 11 15.0 0.52 17.5 -25.8
|
||||
17500 355.1 0 41.9 4.1 25 11 15.2 0.52 17.5 -26.0
|
||||
17600 359.2 0 42.3 4.1 25 12 15.3 0.53 17.6 -26.1
|
||||
17700 363.3 0 42.6 4.1 25 12 15.4 0.53 17.6 -26.2
|
||||
17800 367.5 0 43.0 4.2 24 12 15.5 0.53 17.7 -26.3
|
||||
17900 371.7 0 43.4 4.3 24 12 15.7 0.54 17.8 -26.5
|
||||
18000 376.0 0 43.8 4.3 24 12 15.8 0.54 17.9 -26.5
|
||||
18100 380.2 0 44.2 4.3 24 13 15.9 0.54 17.9 -26.6
|
||||
18200 384.5 0 44.6 4.3 24 13 16.1 0.55 18.0 -26.7
|
||||
18300 388.9 0 45.0 4.4 23 13 16.2 0.55 18.1 -26.9
|
||||
18400 393.3 0 45.4 4.4 23 13 16.3 0.55 18.1 -27.0
|
||||
18500 397.7 0 45.8 4.5 23 13 16.5 0.56 18.2 -27.1
|
||||
18600 402.2 0 46.2 4.5 23 14 16.6 0.56 18.3 -27.3
|
||||
18700 406.7 0 46.6 4.5 23 14 16.7 0.56 18.4 -27.4
|
||||
18800 411.3 0 47.1 4.6 22 14 16.9 0.57 18.4 -27.4
|
||||
18900 415.9 0 47.5 4.6 22 14 17.0 0.57 18.6 -27.5
|
||||
19000 420.5 0 47.9 4.7 22 14 17.2 0.57 18.6 -27.6
|
||||
19100 425.2 0 48.3 4.8 22 15 17.3 0.58 18.7 -27.8
|
||||
19200 430.0 0 48.7 4.8 21 15 17.4 0.58 18.7 -27.9
|
||||
19300 434.8 0 49.2 4.8 21 15 17.6 0.58 18.8 -28.0
|
||||
19400 439.6 0 49.6 4.9 21 15 17.7 0.59 18.9 -28.2
|
||||
19500 444.5 0 50.0 4.9 21 16 17.9 0.59 19.0 -28.3
|
||||
19600 449.4 0 50.5 4.9 21 16 18.0 0.59 19.1 -28.3
|
||||
19700 454.4 0 50.9 5.0 20 16 18.2 0.59 19.2 -28.4
|
||||
19800 459.4 0 51.4 5.1 20 16 18.3 0.60 19.2 -28.6
|
||||
19900 464.5 0 51.8 5.2 20 17 18.5 0.60 19.3 -28.7
|
||||
20000 469.7 0 52.3 5.2 20 17 18.7 0.60 19.5 -28.8
|
||||
20100 474.9 0 52.7 5.3 20 17 18.8 0.61 19.5 -28.9
|
||||
20200 480.2 0 53.2 5.3 19 18 19.0 0.61 19.6 -29.1
|
||||
20300 485.5 0 53.7 5.3 19 18 19.2 0.61 19.7 -29.2
|
||||
20400 490.9 0 54.1 5.4 19 18 19.3 0.62 19.8 -29.2
|
||||
20500 496.3 0 54.6 5.4 19 18 19.5 0.62 19.8 -29.5
|
||||
20600 501.8 0 55.1 5.6 19 19 19.7 0.62 19.9 -29.6
|
||||
20700 507.4 0 55.6 5.6 18 19 19.9 0.63 20.0 -29.7
|
||||
20800 513.1 0 56.1 5.7 18 19 20.0 0.63 20.1 -29.9
|
||||
20900 518.8 0 56.6 5.8 18 20 20.2 0.63 20.1 -30.1
|
||||
21000 524.7 0 57.1 5.9 18 20 20.4 0.64 20.2 -30.1
|
||||
21100 530.6 0 57.6 5.9 17 21 20.6 0.64 20.3 -30.1
|
||||
21200 536.5 0 58.1 6.1 17 21 20.8 0.64 20.4 -30.3
|
||||
21300 542.7 0 58.6 6.2 17 22 21.0 0.65 20.5 -30.5
|
||||
21400 548.9 0 59.2 6.3 16 22 21.3 0.65 20.6 -30.6
|
||||
21500 555.2 0 59.7 6.3 16 23 21.5 0.65 20.6 -30.8
|
||||
21600 561.6 0 60.3 6.5 16 23 21.7 0.66 20.7 -30.9
|
||||
21700 568.2 0 60.8 6.6 16 24 22.0 0.66 20.8 -31.0
|
||||
21800 574.8 0 61.4 6.7 15 24 22.2 0.67 20.9 -31.1
|
||||
21900 581.6 0 62.0 6.9 15 25 22.5 0.67 20.9 -31.2
|
||||
22000 588.6 0 62.6 7.1 15 25 22.7 0.67 21.0 -31.3
|
||||
22100 595.7 0 63.2 7.1 14 26 23.0 0.68 21.1 -31.5
|
||||
22200 603.0 0 63.8 7.4 14 27 23.3 0.68 21.2 -31.6
|
||||
22300 610.5 0 64.5 7.6 14 28 23.6 0.69 21.3 -31.7
|
||||
22400 618.2 0 65.1 7.8 13 29 23.9 0.69 21.4 -31.9
|
||||
22500 626.1 0 65.8 8.0 13 30 24.3 0.69 21.5 -31.9
|
||||
22600 634.3 0 66.5 8.3 13 31 24.6 0.70 21.6 -32.0
|
||||
22700 642.7 0 67.2 8.6 12 32 25.0 0.70 21.7 -32.2
|
||||
22800 651.5 0 68.0 8.9 12 34 25.4 0.71 21.7 -32.3
|
||||
22900 660.6 0 68.8 9.3 11 35 25.8 0.71 21.8 -32.5
|
||||
23000 670.0 0 69.6 9.7 11 37 26.3 0.72 22.0 -32.6
|
||||
23100 680.0 0 70.4 10.3 10 39 26.8 0.73 22.0 -32.8
|
||||
23200 690.5 0 71.3 11.0 10 42 27.4 0.73 22.1 -32.8
|
||||
23300 701.9 0 72.3 11.8 9 45 28.0 0.74 22.2 -33.1
|
||||
23400 714.0 0 73.3 12.7 8 49 28.7 0.75 22.3 -33.2
|
||||
23500 727.3 0 74.4 14.0 8 55 29.5 0.75 22.4 -33.4
|
||||
23600 742.1 0 75.7 15.8 7 61 30.4 0.76 22.6 -33.7
|
||||
23700 758.8 0 77.1 18.0 6 71 31.5 0.77 22.8 -34.0
|
||||
23800 778.1 0 78.7 22.6 5 89 33.0 0.78 23.0 -34.5
|
||||
23900 803.9 0 80.7 36.3 4 90 35.0 0.80 23.3 -34.8
|
||||
23975 850.6 0 85.0 44.4 4 90 40.0 0.83 24.0 -35.5
|
||||
23900 892.7 0 87.5 32.2 5 90 44.3 0.85 24.7 -36.8
|
||||
23800 914.9 0 89.1 19.3 6 77 47.3 0.86 24.9 -37.2
|
||||
23700 931.2 0 90.3 14.8 7 60 49.7 0.87 25.1 -37.6
|
||||
23600 944.6 0 91.2 12.4 9 50 51.8 0.88 25.4 -37.9
|
||||
23500 955.9 0 92.0 10.8 10 44 53.0 0.89 25.4 -38.2
|
||||
23400 966.1 0 92.7 9.8 11 40 54.2 0.90 25.4 -38.2
|
||||
23300 975.6 0 93.4 9.1 12 37 55.6 0.91 25.5 -38.2
|
||||
23200 984.3 0 94.0 8.5 12 34 56.9 0.92 25.5 -38.2
|
||||
23100 992.5 0 94.5 8.0 13 32 58.3 0.92 25.5 -38.2
|
||||
23000 1000.2 0 95.0 7.5 14 30 59.7 0.93 25.4 -38.3
|
||||
22900 1007.5 0 95.5 7.1 15 29 61.0 0.94 25.4 -38.3
|
||||
22800 1014.4 0 96.0 6.8 15 27 62.2 0.95 25.4 -38.3
|
||||
22700 1021.0 0 96.4 6.5 16 26 63.4 0.95 25.4 -38.3
|
||||
22600 1027.4 0 96.8 6.3 16 25 64.6 0.96 25.5 -38.2
|
||||
22500 1033.5 0 97.2 6.0 17 24 65.8 0.97 25.4 -38.2
|
||||
22400 1039.4 0 97.6 5.8 18 23 67.0 0.97 25.4 -38.3
|
||||
22300 1045.0 0 97.9 5.5 19 22 68.2 0.98 25.4 -38.2
|
||||
22200 1050.5 0 98.3 5.4 19 22 69.4 0.99 25.3 -38.1
|
||||
22100 1055.8 0 98.6 5.3 20 21 70.5 0.99 25.2 -38.1
|
||||
22000 1061.0 0 98.9 5.1 20 20 71.6 1.00 25.2 -38.1
|
||||
21900 1066.0 0 99.2 5.0 20 20 72.7 1.01 25.2 -38.0
|
||||
21800 1071.0 0 99.6 4.9 21 20 73.9 1.01 25.2 -37.9
|
||||
21700 1075.8 0 99.9 4.8 21 19 75.0 1.02 25.1 -37.8
|
||||
21600 1080.6 0 100.1 4.8 22 19 76.2 1.03 25.0 -37.8
|
||||
21500 1085.3 0 100.4 4.6 22 18 77.3 1.03 24.9 -37.6
|
||||
21400 1089.8 0 100.7 4.5 23 18 78.4 1.04 24.9 -37.5
|
||||
21300 1094.3 0 101.0 4.4 23 18 79.5 1.05 24.8 -37.4
|
||||
21200 1098.6 0 101.2 4.3 24 17 80.7 1.05 24.7 -37.3
|
||||
21100 1102.9 0 101.5 4.3 24 17 81.8 1.06 24.6 -37.2
|
||||
21000 1107.1 0 101.7 4.1 25 16 82.9 1.07 24.6 -37.2
|
||||
20900 1111.2 0 102.0 4.0 25 16 84.0 1.07 24.5 -37.1
|
||||
20800 1115.2 0 102.2 4.0 26 16 85.0 1.08 24.4 -36.9
|
||||
20700 1119.2 0 102.4 4.0 26 16 86.1 1.09 24.3 -36.8
|
||||
20600 1123.1 0 102.7 3.9 26 15 87.1 1.09 24.2 -36.7
|
||||
20500 1126.9 0 102.9 3.8 27 15 88.2 1.10 24.1 -36.5
|
||||
20400 1130.7 0 103.1 3.8 27 15 89.3 1.11 24.1 -36.4
|
||||
20300 1134.5 0 103.3 3.7 27 15 90.4 1.11 24.0 -36.3
|
||||
20200 1138.1 0 103.5 3.6 28 14 91.5 1.12 23.8 -36.2
|
||||
20100 1141.7 0 103.7 3.6 28 14 92.6 1.13 23.7 -36.0
|
||||
20000 1145.3 0 103.9 3.6 29 14 93.7 1.14 23.7 -35.8
|
||||
19900 1148.8 0 104.1 3.5 29 14 94.7 1.14 23.6 -35.6
|
||||
19800 1152.3 0 104.3 3.4 30 13 95.8 1.15 23.5 -35.4
|
||||
19700 1155.7 0 104.5 3.4 30 13 96.8 1.16 23.5 -35.4
|
||||
19600 1159.1 0 104.7 3.4 30 13 97.8 1.17 23.4 -35.2
|
||||
19500 1162.4 0 104.9 3.3 31 13 98.9 1.17 23.3 -35.1
|
||||
19400 1165.7 0 105.1 3.3 31 13 99.9 1.18 23.2 -34.9
|
||||
19300 1168.9 0 105.2 3.2 31 13 100.9 1.19 23.1 -34.8
|
||||
19200 1172.1 0 105.4 3.2 32 12 101.8 1.20 22.9 -34.6
|
||||
19100 1175.3 0 105.6 3.2 32 12 102.8 1.20 22.8 -34.5
|
||||
19000 1178.4 0 105.7 3.1 33 12 103.7 1.21 22.7 -34.3
|
||||
18900 1181.5 0 105.9 3.1 33 12 104.6 1.22 22.6 -34.1
|
||||
18800 1184.6 0 106.1 3.0 34 12 105.5 1.23 22.4 -33.9
|
||||
18700 1187.6 0 106.2 3.0 34 11 106.4 1.24 22.3 -33.7
|
||||
18600 1190.5 0 106.4 2.9 34 11 107.3 1.25 22.3 -33.7
|
||||
18500 1193.4 0 106.5 2.9 35 11 108.2 1.25 22.1 -33.5
|
||||
18400 1196.3 0 106.7 2.9 35 11 109.0 1.26 22.0 -33.3
|
||||
18300 1199.2 0 106.8 2.8 36 11 109.9 1.27 21.9 -33.1
|
||||
18200 1202.0 0 107.0 2.9 36 11 110.7 1.28 21.8 -32.9
|
||||
18100 1204.9 0 107.1 2.8 36 11 111.4 1.29 21.7 -32.8
|
||||
18000 1207.6 0 107.2 2.8 37 11 112.2 1.30 21.5 -32.6
|
||||
17900 1210.4 0 107.4 2.8 37 10 112.9 1.31 21.5 -32.4
|
||||
17800 1213.1 0 107.5 2.7 37 10 113.7 1.32 21.4 -32.2
|
||||
17700 1215.8 0 107.6 2.7 38 10 114.4 1.33 21.2 -32.0
|
||||
17600 1218.5 0 107.8 2.7 38 10 115.0 1.34 21.0 -31.9
|
||||
17500 1221.2 0 107.9 2.7 38 10 115.7 1.34 20.9 -31.7
|
||||
17400 1223.8 0 108.0 2.6 39 10 116.3 1.35 20.8 -31.6
|
||||
17300 1226.4 0 108.1 2.6 39 10 117.0 1.36 20.7 -31.5
|
||||
17200 1229.0 0 108.3 2.6 39 10 117.6 1.37 20.6 -31.3
|
||||
17100 1231.6 0 108.4 2.5 40 10 118.3 1.38 20.5 -31.2
|
||||
17000 1234.1 0 108.5 2.5 40 10 119.1 1.39 20.3 -31.0
|
||||
16900 1236.6 0 108.6 2.5 40 10 119.8 1.41 20.2 -30.9
|
||||
16800 1239.2 0 108.7 2.5 40 9 120.5 1.42 20.1 -30.7
|
||||
16700 1241.7 0 108.9 2.5 40 9 121.3 1.43 20.0 -30.6
|
||||
16600 1244.2 0 109.0 2.6 40 9 122.0 1.44 20.0 -30.5
|
||||
16500 1246.8 0 109.1 2.6 40 9 122.6 1.45 19.9 -30.5
|
||||
16400 1249.3 0 109.2 2.5 40 9 123.2 1.46 19.8 -30.4
|
||||
16300 1251.9 0 109.3 2.5 40 9 123.8 1.47 19.8 -30.3
|
||||
16200 1254.4 0 109.4 2.5 40 9 124.4 1.48 19.7 -30.1
|
||||
16100 1257.0 0 109.5 2.5 40 9 124.9 1.49 19.6 -30.1
|
||||
16000 1259.6 0 109.6 2.5 40 9 125.5 1.50 19.6 -29.9
|
||||
15900 1262.1 0 109.7 2.5 40 9 126.0 1.51 19.5 -29.8
|
||||
15800 1264.6 0 109.8 2.5 40 9 126.4 1.52 19.4 -29.7
|
||||
15700 1267.2 0 109.9 2.5 40 9 126.9 1.53 19.3 -29.6
|
||||
15600 1269.7 0 110.0 2.5 40 9 127.3 1.54 19.2 -29.5
|
||||
15500 1272.2 0 110.1 2.5 40 9 127.7 1.56 19.1 -29.3
|
||||
15400 1274.7 0 110.2 2.5 40 9 128.1 1.57 19.0 -29.2
|
||||
15300 1277.2 0 110.3 2.5 40 9 128.5 1.58 18.9 -29.1
|
||||
15200 1279.7 0 110.4 2.5 40 9 128.9 1.59 18.8 -28.9
|
||||
15100 1282.2 0 110.5 2.5 40 9 129.3 1.60 18.7 -28.7
|
||||
15000 1284.7 0 110.6 2.5 40 9 129.7 1.61 18.6 -28.6
|
||||
}
|
||||
} Ende Spaltengruppe
|
||||
} Ende Standard_Tafel
|
||||
|
||||
} Ende Schuss_Tafel
|
||||
|
||||
Executable
+457
@@ -0,0 +1,457 @@
|
||||
###########################################################################
|
||||
# #
|
||||
# Projekt TES : File "HE-M1-M64Incr5-TableE.sus" zur Munition "M64" #
|
||||
# #
|
||||
# Bei der Auspraegung des Ballistik-Moduls vereinbarte Bezeichnungen #
|
||||
# Tafel_Namen : ENTFERNUNG, AUFSATZ, FLUGZEIT, -- obligatorisch #
|
||||
# VORHALT -- projektspezifisch #
|
||||
# Param_Namen : DELTA_V0, LUFTTEMP, LUFTDRUCK, #
|
||||
# LAENGSWIND, QUERWIND, #
|
||||
# PULVERTEMP -- Korrektur-Parameter #
|
||||
# #
|
||||
###########################################################################
|
||||
|
||||
# Aenderung/Stand: 09.07.14-07:52
|
||||
|
||||
Schuss_Tafel =
|
||||
{
|
||||
Munition = "HE-M1-M64"
|
||||
Version = "HE M64 Incr5 Table-E"
|
||||
Muni_Parameter = { Kaliber = 155.0 Masse = 46.30 V0 = 912.0 }
|
||||
Std_Parameter = { DELTA_V0 = 0.0
|
||||
LUFTTEMP = 15.0
|
||||
LUFTDRUCK = 1013.25
|
||||
LAENGSWIND= 0.0
|
||||
QUERWIND = 0.0
|
||||
PULVERTEMP= 21.1 }
|
||||
Entfernung_Range= { Min = 100.0 Max = 31500.0 Delta = 100.0 Scheitel = 31588.0 }
|
||||
Ballistik = "Parabel"
|
||||
###########################################################################
|
||||
|
||||
Standard_Tafel =
|
||||
{
|
||||
Spaltengruppe =
|
||||
{ Belegung = { AUFSATZ = (2) [-]
|
||||
VORHALT = (3) [-]
|
||||
FLUGZEIT = (4)
|
||||
DELTA_RGE = (5) [-]
|
||||
DELTA_ELEV = (6)
|
||||
FORK = (7) [-]
|
||||
DRIFT = (8) [-]
|
||||
}
|
||||
Zeilenlaenge = 8
|
||||
Datenblock =
|
||||
{
|
||||
#
|
||||
# RGE ELEV TOF DELTA DELTA FORK BEARING-CORR. RANGE-CORR.
|
||||
# ENTF AUFSATZ VORHALT FLUGZEIT RGE ELEV DRIFT CW DEC INC
|
||||
# [m] [mil] [mil] [sec] [mil] [m] [mil] [mil] [mil] [m] [m]
|
||||
#
|
||||
100 0.6 0 0.1 0.6 169 1 0.0 0.00 0.2 -0.1
|
||||
200 1.2 0 0.2 0.6 168 1 0.1 0.00 0.3 -0.3
|
||||
300 1.8 0 0.3 0.6 167 1 0.1 0.00 0.5 -0.5
|
||||
400 2.4 0 0.4 0.6 165 1 0.1 0.01 0.7 -0.7
|
||||
500 3.0 0 0.6 0.6 164 1 0.1 0.01 0.8 -0.8
|
||||
600 3.6 0 0.7 0.6 163 1 0.2 0.01 1.0 -1.0
|
||||
700 4.2 0 0.8 0.7 162 1 0.2 0.01 1.1 -1.1
|
||||
800 4.9 0 0.9 0.7 161 1 0.2 0.01 1.4 -1.3
|
||||
900 5.5 0 1.0 0.6 160 1 0.2 0.01 1.5 -1.5
|
||||
1000 6.1 0 1.1 0.6 159 1 0.3 0.01 1.7 -1.6
|
||||
1100 6.7 0 1.2 0.7 158 1 0.3 0.02 1.8 -1.8
|
||||
1200 7.4 0 1.4 0.7 157 1 0.3 0.02 2.0 -1.9
|
||||
1300 8.0 0 1.5 0.6 156 1 0.4 0.02 2.1 -2.1
|
||||
1400 8.7 0 1.6 0.7 155 1 0.4 0.02 2.3 -2.2
|
||||
1500 9.3 0 1.7 0.7 154 1 0.4 0.02 2.4 -2.4
|
||||
1600 10.0 0 1.8 0.7 153 1 0.4 0.02 2.6 -2.5
|
||||
1700 10.6 0 1.9 0.7 152 1 0.5 0.02 2.8 -2.7
|
||||
1800 11.3 0 2.1 0.7 151 1 0.5 0.03 2.9 -2.8
|
||||
1900 12.0 0 2.2 0.7 150 1 0.5 0.03 3.1 -3.0
|
||||
2000 12.6 0 2.3 0.7 149 1 0.6 0.03 3.2 -3.1
|
||||
2100 13.3 0 2.4 0.7 148 1 0.6 0.03 3.4 -3.3
|
||||
2200 14.0 0 2.6 0.7 147 1 0.6 0.03 3.5 -3.4
|
||||
2300 14.7 0 2.7 0.7 146 1 0.6 0.03 3.7 -3.6
|
||||
2400 15.4 0 2.8 0.7 145 1 0.7 0.04 3.8 -3.7
|
||||
2500 16.1 0 2.9 0.7 144 1 0.7 0.04 4.0 -3.9
|
||||
2600 16.8 0 3.0 0.7 143 1 0.7 0.04 4.1 -4.0
|
||||
2700 17.5 0 3.2 0.7 142 1 0.8 0.04 4.3 -4.2
|
||||
2800 18.2 0 3.3 0.7 141 1 0.8 0.04 4.5 -4.3
|
||||
2900 18.9 0 3.4 0.7 140 1 0.8 0.04 4.6 -4.5
|
||||
3000 19.6 0 3.6 0.8 139 1 0.9 0.04 4.8 -4.6
|
||||
3100 20.4 0 3.7 0.8 138 1 0.9 0.05 4.9 -4.8
|
||||
3200 21.1 0 3.8 0.7 137 1 0.9 0.05 5.1 -4.9
|
||||
3300 21.8 0 3.9 0.8 136 1 0.9 0.05 5.1 -5.1
|
||||
3400 22.6 0 4.1 0.8 135 1 1.0 0.05 5.3 -5.2
|
||||
3500 23.3 0 4.2 0.8 134 1 1.0 0.05 5.4 -5.4
|
||||
3600 24.1 0 4.3 0.8 133 1 1.0 0.05 5.6 -5.5
|
||||
3700 24.8 0 4.5 0.8 132 1 1.1 0.06 5.7 -5.6
|
||||
3800 25.6 0 4.6 0.8 131 1 1.1 0.06 5.9 -5.7
|
||||
3900 26.4 0 4.7 0.8 130 1 1.1 0.06 6.0 -5.9
|
||||
4000 27.1 0 4.9 0.8 129 1 1.2 0.06 6.1 -6.0
|
||||
4100 27.9 0 5.0 0.8 128 1 1.2 0.06 6.3 -6.2
|
||||
4200 28.7 0 5.1 0.8 127 1 1.2 0.06 6.4 -6.3
|
||||
4300 29.5 0 5.3 0.8 126 1 1.3 0.07 6.6 -6.4
|
||||
4400 30.3 0 5.4 0.8 125 1 1.3 0.07 6.7 -6.6
|
||||
4500 31.1 0 5.5 0.8 124 1 1.3 0.07 6.8 -6.7
|
||||
4600 31.9 0 5.7 0.8 123 1 1.4 0.07 6.9 -6.9
|
||||
4700 32.7 0 5.8 0.8 122 1 1.4 0.07 7.1 -6.9
|
||||
4800 33.6 0 6.0 0.9 121 1 1.4 0.08 7.2 -7.1
|
||||
4900 34.4 0 6.1 0.8 121 1 1.5 0.08 7.3 -7.2
|
||||
5000 35.2 0 6.2 0.8 120 1 1.5 0.08 7.5 -7.4
|
||||
5100 36.1 0 6.4 0.9 119 1 1.5 0.08 7.6 -7.5
|
||||
5200 36.9 0 6.5 0.9 118 1 1.6 0.08 7.8 -7.6
|
||||
5300 37.8 0 6.7 0.8 117 1 1.6 0.08 7.8 -7.8
|
||||
5400 38.6 0 6.8 0.9 116 1 1.7 0.09 8.0 -7.8
|
||||
5500 39.5 0 7.0 0.9 115 1 1.7 0.09 8.1 -8.0
|
||||
5600 40.4 0 7.1 0.9 114 1 1.7 0.09 8.2 -8.1
|
||||
5700 41.3 0 7.3 0.8 113 1 1.8 0.09 8.4 -8.2
|
||||
5800 42.1 0 7.4 0.9 113 2 1.8 0.09 8.5 -8.3
|
||||
5900 43.0 0 7.6 0.9 112 2 1.8 0.10 8.6 -8.5
|
||||
6000 43.9 0 7.7 1.0 111 2 1.9 0.10 8.7 -8.6
|
||||
6100 44.9 0 7.9 0.9 110 2 1.9 0.10 8.9 -8.7
|
||||
6200 45.8 0 8.0 0.9 109 2 2.0 0.10 9.0 -8.9
|
||||
6300 46.7 0 8.2 0.9 108 2 2.0 0.10 9.1 -8.9
|
||||
6400 47.6 0 8.3 0.9 107 2 2.0 0.11 9.2 -9.1
|
||||
6500 48.6 0 8.5 1.0 107 2 2.1 0.11 9.4 -9.2
|
||||
6600 49.5 0 8.6 1.0 106 2 2.1 0.11 9.4 -9.3
|
||||
6700 50.5 0 8.8 1.0 105 2 2.1 0.11 9.6 -9.5
|
||||
6800 51.4 0 8.9 1.0 104 2 2.2 0.11 9.7 -9.5
|
||||
6900 52.4 0 9.1 1.0 103 2 2.2 0.12 9.8 -9.7
|
||||
7000 53.4 0 9.3 1.0 103 2 2.3 0.12 10.0 -9.8
|
||||
7100 54.4 0 9.4 0.9 102 2 2.3 0.12 10.0 -9.9
|
||||
7200 55.3 0 9.6 0.9 101 2 2.3 0.12 10.2 -10.0
|
||||
7300 56.3 0 9.7 1.1 100 2 2.4 0.12 10.3 -10.1
|
||||
7400 57.4 0 9.9 1.1 99 2 2.4 0.13 10.4 -10.2
|
||||
7500 58.4 0 10.1 1.0 98 2 2.5 0.13 10.5 -10.4
|
||||
7600 59.4 0 10.2 1.0 98 2 2.5 0.13 10.6 -10.4
|
||||
7700 60.4 0 10.4 1.0 97 2 2.6 0.13 10.7 -10.6
|
||||
7800 61.5 0 10.6 1.0 96 2 2.6 0.13 10.9 -10.7
|
||||
7900 62.5 0 10.7 1.0 95 2 2.6 0.14 10.9 -10.8
|
||||
8000 63.6 0 10.9 1.0 95 2 2.7 0.14 11.0 -10.9
|
||||
8100 64.6 0 11.1 1.0 94 2 2.7 0.14 11.2 -11.0
|
||||
8200 65.7 0 11.2 1.1 93 2 2.8 0.14 11.2 -11.1
|
||||
8300 66.8 0 11.4 1.1 92 2 2.8 0.14 11.4 -11.2
|
||||
8400 67.9 0 11.6 1.1 92 2 2.9 0.15 11.5 -11.3
|
||||
8500 69.0 0 11.8 1.1 91 2 2.9 0.15 11.6 -11.4
|
||||
8600 70.1 0 11.9 1.1 90 2 2.9 0.15 11.7 -11.6
|
||||
8700 71.2 0 12.1 1.2 89 2 3.0 0.15 11.8 -11.6
|
||||
8800 72.4 0 12.3 1.2 89 2 3.0 0.15 11.9 -11.7
|
||||
8900 73.5 0 12.5 1.1 88 2 3.1 0.16 12.0 -11.9
|
||||
9000 74.6 0 12.6 1.2 87 2 3.1 0.16 12.1 -11.9
|
||||
9100 75.8 0 12.8 1.2 86 2 3.2 0.16 12.2 -12.0
|
||||
9200 77.0 0 13.0 1.1 86 2 3.2 0.16 12.3 -12.2
|
||||
9300 78.1 0 13.2 1.2 85 2 3.3 0.17 12.4 -12.2
|
||||
9400 79.3 0 13.4 1.2 84 2 3.3 0.17 12.5 -12.3
|
||||
9500 80.5 0 13.6 1.2 84 2 3.4 0.17 12.6 -12.4
|
||||
9600 81.7 0 13.7 1.3 83 2 3.4 0.17 12.7 -12.5
|
||||
9700 83.0 0 13.9 1.3 82 2 3.4 0.18 12.8 -12.6
|
||||
9800 84.2 0 14.1 1.2 82 2 3.5 0.18 12.9 -12.7
|
||||
9900 85.4 0 14.3 1.3 81 2 3.5 0.18 13.0 -12.8
|
||||
10000 86.7 0 14.5 1.3 80 2 3.6 0.18 13.1 -12.9
|
||||
10100 87.9 0 14.7 1.3 80 2 3.6 0.18 13.2 -13.0
|
||||
10200 89.2 0 14.9 1.3 79 2 3.7 0.19 13.3 -13.1
|
||||
10300 90.5 0 15.1 1.3 78 2 3.7 0.19 13.4 -13.2
|
||||
10400 91.8 0 15.3 1.3 78 2 3.8 0.19 13.5 -13.3
|
||||
10500 93.1 0 15.5 1.3 77 3 3.8 0.19 13.6 -13.3
|
||||
10600 94.4 0 15.7 1.3 76 3 3.9 0.20 13.7 -13.4
|
||||
10700 95.7 0 15.9 1.3 76 3 3.9 0.20 13.8 -13.5
|
||||
10800 97.1 0 16.1 1.4 75 3 4.0 0.20 13.9 -13.6
|
||||
10900 98.4 0 16.3 1.4 74 3 4.0 0.20 14.0 -13.7
|
||||
11000 99.8 0 16.5 1.3 74 3 4.1 0.21 14.1 -13.8
|
||||
11100 101.1 0 16.7 1.3 73 3 4.2 0.21 14.2 -13.9
|
||||
11200 102.5 0 16.9 1.4 73 3 4.2 0.21 14.3 -14.0
|
||||
11300 103.9 0 17.1 1.4 72 3 4.3 0.21 14.3 -14.1
|
||||
11400 105.3 0 17.3 1.4 71 3 4.3 0.22 14.4 -14.2
|
||||
11500 106.7 0 17.5 1.4 71 3 4.4 0.22 14.5 -14.3
|
||||
11600 108.2 0 17.7 1.5 70 3 4.4 0.22 14.6 -14.4
|
||||
11700 109.6 0 17.9 1.5 70 3 4.5 0.22 14.6 -14.5
|
||||
11800 111.1 0 18.1 1.5 69 3 4.5 0.23 14.8 -14.5
|
||||
11900 112.5 0 18.3 1.5 68 3 4.6 0.23 14.9 -14.6
|
||||
12000 114.0 0 18.5 1.5 68 3 4.6 0.23 14.9 -14.8
|
||||
12100 115.5 0 18.8 1.5 67 3 4.7 0.23 15.0 -14.8
|
||||
12200 117.0 0 19.0 1.5 67 3 4.8 0.24 15.1 -14.9
|
||||
12300 118.5 0 19.2 1.5 66 3 4.8 0.24 15.2 -15.0
|
||||
12400 120.1 0 19.4 1.5 65 3 4.9 0.24 15.2 -15.1
|
||||
12500 121.6 0 19.6 1.5 65 3 4.9 0.24 15.4 -15.1
|
||||
12600 123.2 0 19.9 1.5 64 3 5.0 0.25 15.5 -15.2
|
||||
12700 124.7 0 20.1 1.6 64 3 5.0 0.25 15.5 -15.3
|
||||
12800 126.3 0 20.3 1.6 63 3 5.1 0.25 15.6 -15.4
|
||||
12900 127.9 0 20.5 1.6 63 3 5.2 0.25 15.7 -15.5
|
||||
13000 129.5 0 20.8 1.6 62 3 5.2 0.26 15.8 -15.6
|
||||
13100 131.2 0 21.0 1.7 62 4 5.3 0.26 15.8 -15.7
|
||||
13200 132.8 0 21.2 1.7 61 4 5.3 0.26 15.9 -15.7
|
||||
13300 134.5 0 21.5 1.7 61 4 5.4 0.27 16.0 -15.8
|
||||
13400 136.1 0 21.7 1.7 60 4 5.5 0.27 16.1 -15.9
|
||||
13500 137.8 0 21.9 1.7 60 4 5.5 0.27 16.2 -16.0
|
||||
13600 139.5 0 22.2 1.7 59 4 5.6 0.27 16.3 -16.0
|
||||
13700 141.2 0 22.4 1.8 59 4 5.7 0.28 16.4 -16.1
|
||||
13800 143.0 0 22.6 1.8 58 4 5.7 0.28 16.4 -16.3
|
||||
13900 144.7 0 22.9 1.8 58 4 5.8 0.28 16.5 -16.3
|
||||
14000 146.5 0 23.1 1.8 57 4 5.9 0.28 16.6 -16.4
|
||||
14100 148.2 0 23.4 1.8 57 4 5.9 0.29 16.7 -16.5
|
||||
14200 150.0 0 23.6 1.8 56 4 6.0 0.29 16.7 -16.6
|
||||
14300 151.8 0 23.9 1.8 56 4 6.0 0.29 16.8 -16.6
|
||||
14400 153.7 0 24.1 1.8 55 4 6.1 0.30 16.9 -16.7
|
||||
14500 155.5 0 24.4 1.8 55 4 6.2 0.30 17.0 -16.8
|
||||
14600 157.4 0 24.6 1.8 54 4 6.3 0.30 17.0 -16.8
|
||||
14700 159.2 0 24.9 1.9 54 4 6.3 0.30 17.2 -16.9
|
||||
14800 161.1 0 25.1 1.9 53 4 6.4 0.31 17.3 -17.0
|
||||
14900 163.0 0 25.4 1.9 53 4 6.5 0.31 17.3 -17.1
|
||||
15000 164.9 0 25.6 1.9 52 5 6.5 0.31 17.4 -17.1
|
||||
15100 166.9 0 25.9 2.0 52 5 6.6 0.32 17.5 -17.2
|
||||
15200 168.8 0 26.1 2.0 52 5 6.7 0.32 17.6 -17.3
|
||||
15300 170.8 0 26.4 2.0 51 5 6.7 0.32 17.6 -17.4
|
||||
15400 172.8 0 26.7 2.0 51 5 6.8 0.32 17.7 -17.4
|
||||
15500 174.8 0 26.9 2.0 50 5 6.9 0.33 17.8 -17.6
|
||||
15600 176.8 0 27.2 2.0 50 5 7.0 0.33 17.9 -17.7
|
||||
15700 178.8 0 27.5 2.0 49 5 7.0 0.33 18.0 -17.7
|
||||
15800 180.9 0 27.7 2.0 49 5 7.1 0.34 18.0 -17.8
|
||||
15900 182.9 0 28.0 2.1 49 5 7.2 0.34 18.1 -17.9
|
||||
16000 185.0 0 28.3 2.1 48 5 7.3 0.34 18.2 -18.0
|
||||
16100 187.1 0 28.6 2.2 48 5 7.3 0.34 18.3 -18.0
|
||||
16200 189.3 0 28.8 2.1 47 5 7.4 0.35 18.4 -18.1
|
||||
16300 191.4 0 29.1 2.2 47 5 7.5 0.35 18.5 -18.2
|
||||
16400 193.6 0 29.4 2.2 47 5 7.6 0.35 18.6 -18.3
|
||||
16500 195.7 0 29.7 2.1 46 6 7.7 0.36 18.6 -18.3
|
||||
16600 197.9 0 30.0 2.2 46 6 7.7 0.36 18.7 -18.4
|
||||
16700 200.1 0 30.2 2.3 46 6 7.8 0.36 18.8 -18.6
|
||||
16800 202.4 0 30.5 2.3 45 6 7.9 0.37 18.9 -18.6
|
||||
16900 204.6 0 30.8 2.3 45 6 8.0 0.37 18.9 -18.7
|
||||
17000 206.9 0 31.1 2.3 44 6 8.1 0.37 19.0 -18.8
|
||||
17100 209.2 0 31.4 2.3 44 6 8.2 0.37 19.1 -18.9
|
||||
17200 211.5 0 31.7 2.3 44 6 8.2 0.38 19.2 -18.9
|
||||
17300 213.8 0 32.0 2.3 43 6 8.3 0.38 19.2 -19.0
|
||||
17400 216.1 0 32.3 2.3 43 6 8.4 0.38 19.3 -19.1
|
||||
17500 218.5 0 32.6 2.4 43 6 8.5 0.39 19.5 -19.2
|
||||
17600 220.9 0 32.9 2.4 42 6 8.6 0.39 19.5 -19.2
|
||||
17700 223.3 0 33.2 2.4 42 7 8.7 0.39 19.6 -19.3
|
||||
17800 225.7 0 33.5 2.4 42 7 8.8 0.40 19.7 -19.4
|
||||
17900 228.1 0 33.8 2.5 41 7 8.9 0.40 19.8 -19.5
|
||||
18000 230.6 0 34.1 2.5 41 7 8.9 0.40 19.8 -19.5
|
||||
18100 233.1 0 34.4 2.5 41 7 9.0 0.40 19.9 -19.6
|
||||
18200 235.6 0 34.7 2.5 40 7 9.1 0.41 20.0 -19.7
|
||||
18300 238.1 0 35.0 2.5 40 7 9.2 0.41 20.1 -19.8
|
||||
18400 240.6 0 35.3 2.5 40 7 9.3 0.41 20.1 -19.9
|
||||
18500 243.2 0 35.6 2.6 39 7 9.4 0.42 20.3 -20.0
|
||||
18600 245.8 0 35.9 2.6 39 7 9.5 0.42 20.4 -20.1
|
||||
18700 248.4 0 36.3 2.6 39 7 9.6 0.42 20.4 -20.1
|
||||
18800 251.0 0 36.6 2.6 39 8 9.7 0.43 20.5 -20.3
|
||||
18900 253.6 0 36.9 2.6 38 8 9.8 0.43 20.6 -20.4
|
||||
19000 256.3 0 37.2 2.6 38 8 9.9 0.43 20.7 -20.4
|
||||
19100 258.9 0 37.5 2.7 38 8 10.0 0.44 20.8 -20.5
|
||||
19200 261.6 0 37.9 2.8 37 8 10.1 0.44 20.9 -20.6
|
||||
19300 264.4 0 38.2 2.8 37 8 10.2 0.44 21.0 -20.7
|
||||
19400 267.1 0 38.5 2.7 37 8 10.3 0.44 21.0 -20.8
|
||||
19500 269.8 0 38.8 2.8 37 8 10.4 0.45 21.1 -20.9
|
||||
19600 272.6 0 39.2 2.8 36 8 10.5 0.45 21.3 -20.9
|
||||
19700 275.4 0 39.5 2.8 36 9 10.6 0.45 21.3 -21.0
|
||||
19800 278.2 0 39.8 2.9 36 9 10.7 0.46 21.4 -21.1
|
||||
19900 281.1 0 40.2 2.8 36 9 10.8 0.46 21.5 -21.2
|
||||
20000 283.9 0 40.5 2.8 35 9 10.9 0.46 21.6 -21.3
|
||||
20100 286.8 0 40.8 2.9 35 9 11.0 0.47 21.7 -21.4
|
||||
20200 289.7 0 41.1 2.9 35 9 11.1 0.47 21.8 -21.5
|
||||
20300 292.6 0 41.5 2.9 35 9 11.3 0.47 21.9 -21.6
|
||||
20400 295.5 0 41.8 2.9 34 9 11.4 0.47 21.9 -21.7
|
||||
20500 298.5 0 42.2 2.9 34 9 11.5 0.48 22.1 -21.8
|
||||
20600 301.4 0 42.5 2.9 34 10 11.6 0.48 22.2 -21.8
|
||||
20700 304.4 0 42.8 3.1 34 10 11.7 0.48 22.3 -21.9
|
||||
20800 307.5 0 43.2 3.1 34 10 11.8 0.49 22.3 -22.1
|
||||
20900 310.5 0 43.5 3.0 33 10 11.9 0.49 22.5 -22.1
|
||||
21000 313.5 0 43.9 3.1 33 10 12.1 0.49 22.6 -22.2
|
||||
21100 316.6 0 44.2 3.1 33 10 12.2 0.49 22.6 -22.4
|
||||
21200 319.7 0 44.6 3.1 33 10 12.3 0.50 22.8 -22.4
|
||||
21300 322.8 0 44.9 3.1 33 10 12.4 0.50 22.9 -22.5
|
||||
21400 325.9 0 45.3 3.2 32 10 12.5 0.50 23.0 -22.7
|
||||
21500 329.1 0 45.6 3.2 32 11 12.6 0.50 23.1 -22.7
|
||||
21600 332.3 0 46.0 3.2 32 11 12.8 0.51 23.2 -22.9
|
||||
21700 335.5 0 46.3 3.2 32 11 12.9 0.51 23.3 -23.0
|
||||
21800 338.7 0 46.7 3.2 32 11 13.0 0.51 23.4 -23.1
|
||||
21900 341.9 0 47.0 3.3 31 11 13.1 0.52 23.5 -23.2
|
||||
22000 345.2 0 47.4 3.3 31 11 13.3 0.52 23.5 -23.3
|
||||
22100 348.4 0 47.7 3.2 31 11 13.4 0.52 23.7 -23.4
|
||||
22200 351.7 0 48.1 3.3 31 11 13.5 0.52 23.8 -23.5
|
||||
22300 355.0 0 48.5 3.3 31 12 13.6 0.53 23.8 -23.6
|
||||
22400 358.4 0 48.8 3.4 30 12 13.8 0.53 23.9 -23.6
|
||||
22500 361.7 0 49.2 3.4 30 12 13.9 0.53 24.1 -23.7
|
||||
22600 365.1 0 49.6 3.4 30 12 14.0 0.53 24.1 -23.8
|
||||
22700 368.5 0 49.9 3.4 30 12 14.2 0.54 24.3 -23.9
|
||||
22800 371.9 0 50.3 3.4 30 12 14.3 0.54 24.4 -24.0
|
||||
22900 375.4 0 50.7 3.5 29 12 14.4 0.54 24.5 -24.2
|
||||
23000 378.9 0 51.1 3.5 29 13 14.6 0.55 24.6 -24.2
|
||||
23100 382.4 0 51.4 3.5 29 13 14.7 0.55 24.7 -24.4
|
||||
23200 385.9 0 51.8 3.5 29 13 14.9 0.55 24.8 -24.5
|
||||
23300 389.4 0 52.2 3.6 29 13 15.0 0.55 25.0 -24.6
|
||||
23400 393.0 0 52.6 3.6 28 13 15.1 0.56 25.0 -24.8
|
||||
23500 396.6 0 53.0 3.6 28 13 15.3 0.56 25.2 -24.8
|
||||
23600 400.2 0 53.4 3.6 28 14 15.4 0.56 25.3 -25.0
|
||||
23700 403.8 0 53.8 3.6 28 14 15.6 0.56 25.4 -25.0
|
||||
23800 407.4 0 54.1 3.7 28 14 15.7 0.57 25.6 -25.2
|
||||
23900 411.1 0 54.5 3.7 28 14 15.9 0.57 25.7 -25.3
|
||||
24000 414.8 0 54.9 3.8 27 14 16.0 0.57 25.8 -25.4
|
||||
24100 418.6 0 55.3 3.8 27 14 16.2 0.58 25.9 -25.5
|
||||
24200 422.3 0 55.7 3.8 27 14 16.3 0.58 26.0 -25.6
|
||||
24300 426.1 0 56.1 3.8 27 15 16.5 0.58 26.2 -25.7
|
||||
24400 429.9 0 56.5 3.8 27 15 16.6 0.58 26.2 -25.9
|
||||
24500 433.8 0 57.0 3.9 26 15 16.8 0.59 26.4 -26.0
|
||||
24600 437.6 0 57.4 3.9 26 15 16.9 0.59 26.5 -26.1
|
||||
24700 441.5 0 57.8 3.9 26 15 17.1 0.59 26.6 -26.2
|
||||
24800 445.5 0 58.2 3.9 26 16 17.3 0.59 26.8 -26.4
|
||||
24900 449.4 0 58.6 3.9 26 16 17.4 0.60 26.9 -26.5
|
||||
25000 453.4 0 59.1 4.0 26 16 17.6 0.60 27.1 -26.7
|
||||
25100 457.4 0 59.5 4.1 25 16 17.8 0.60 27.2 -26.8
|
||||
25200 461.5 0 59.9 4.1 25 16 17.9 0.61 27.3 -27.0
|
||||
25300 465.5 0 60.3 4.1 25 17 18.1 0.61 27.5 -27.2
|
||||
25400 469.6 0 60.8 4.1 25 17 18.3 0.61 27.7 -27.4
|
||||
25500 473.8 0 61.2 4.2 25 17 18.5 0.61 27.8 -27.4
|
||||
25600 478.0 0 61.7 4.2 24 17 18.6 0.62 28.0 -27.6
|
||||
25700 482.2 0 62.1 4.2 24 17 18.8 0.62 28.1 -27.7
|
||||
25800 486.4 0 62.6 4.3 24 18 19.0 0.62 28.3 -27.9
|
||||
25900 490.7 0 63.0 4.3 24 18 19.2 0.63 28.4 -28.0
|
||||
26000 495.0 0 63.5 4.3 24 18 19.4 0.63 28.6 -28.2
|
||||
26100 499.3 0 63.9 4.4 23 18 19.6 0.63 28.7 -28.3
|
||||
26200 503.7 0 64.4 4.5 23 19 19.7 0.63 29.0 -28.6
|
||||
26300 508.2 0 64.9 4.4 23 19 19.9 0.64 29.1 -28.8
|
||||
26400 512.6 0 65.3 4.4 23 19 20.1 0.64 29.3 -28.9
|
||||
26500 517.1 0 65.8 4.6 23 19 20.3 0.64 29.5 -29.1
|
||||
26600 521.7 0 66.3 4.6 22 20 20.5 0.65 29.6 -29.2
|
||||
26700 526.3 0 66.8 4.6 22 20 20.8 0.65 29.9 -29.3
|
||||
26800 530.9 0 67.3 4.6 22 20 21.0 0.65 30.0 -29.5
|
||||
26900 535.6 0 67.8 4.7 22 20 21.2 0.65 30.2 -29.7
|
||||
27000 540.3 0 68.3 4.8 22 21 21.4 0.66 30.5 -30.0
|
||||
27100 545.1 0 68.8 4.9 21 21 21.6 0.66 30.7 -30.2
|
||||
27200 550.0 0 69.3 4.9 21 21 21.8 0.66 30.8 -30.4
|
||||
27300 554.8 0 69.8 4.9 21 22 22.1 0.67 31.2 -30.6
|
||||
27400 559.7 0 70.3 5.0 21 22 22.3 0.67 31.4 -30.9
|
||||
27500 564.7 0 70.9 5.0 21 22 22.5 0.67 31.7 -31.2
|
||||
27600 569.7 0 71.4 5.0 20 22 22.8 0.68 32.0 -31.5
|
||||
27700 574.8 0 71.9 5.1 20 23 23.0 0.68 32.4 -31.8
|
||||
27800 579.9 0 72.5 5.1 20 23 23.3 0.68 32.7 -32.1
|
||||
27900 585.0 0 73.0 5.1 20 23 23.5 0.69 33.1 -32.4
|
||||
28000 590.2 0 73.5 5.2 20 23 23.8 0.69 33.4 -32.8
|
||||
28100 595.4 0 74.1 5.2 20 24 24.0 0.69 33.8 -33.2
|
||||
28200 600.6 0 74.6 5.3 20 24 24.3 0.69 34.1 -33.5
|
||||
28300 605.9 0 75.2 5.3 19 24 24.6 0.70 34.4 -33.8
|
||||
28400 611.2 0 75.7 5.3 19 25 24.9 0.70 34.6 -34.1
|
||||
28500 616.6 0 76.3 5.4 19 25 25.1 0.70 34.9 -34.3
|
||||
28600 622.0 0 76.8 5.5 19 25 25.4 0.70 35.2 -34.6
|
||||
28700 627.5 0 77.4 5.5 18 26 25.7 0.71 35.5 -34.8
|
||||
28800 633.1 0 77.9 5.6 18 26 26.0 0.71 35.8 -35.1
|
||||
28900 638.8 0 78.5 5.8 18 27 26.3 0.71 36.0 -35.4
|
||||
29000 644.6 0 79.1 5.8 18 27 26.7 0.71 36.3 -35.6
|
||||
29100 650.4 0 79.6 5.9 17 28 27.0 0.72 36.6 -35.9
|
||||
29200 656.4 0 80.2 6.0 17 28 27.3 0.72 36.9 -36.2
|
||||
29300 662.4 0 80.8 6.1 17 29 27.7 0.72 37.2 -36.5
|
||||
29400 668.6 0 81.4 6.3 17 30 28.0 0.72 37.4 -36.8
|
||||
29500 674.9 0 82.0 6.4 16 30 28.4 0.73 37.7 -37.1
|
||||
29600 681.3 0 82.7 6.4 16 31 28.8 0.73 38.0 -37.3
|
||||
29700 687.8 0 83.3 6.6 16 32 29.2 0.73 38.4 -37.6
|
||||
29800 694.5 0 84.0 6.8 15 33 29.6 0.74 38.7 -37.9
|
||||
29900 701.4 0 84.6 7.0 15 34 30.0 0.74 39.1 -38.3
|
||||
30000 708.4 0 85.3 7.1 14 35 30.5 0.74 39.4 -38.6
|
||||
30100 715.7 0 86.0 7.4 14 36 31.0 0.74 39.7 -39.0
|
||||
30200 723.2 0 86.7 7.6 14 37 31.5 0.75 40.1 -39.4
|
||||
30300 730.9 0 87.5 7.9 13 39 32.0 0.75 40.5 -39.7
|
||||
30400 739.0 0 88.2 8.3 13 41 32.6 0.75 41.0 -40.1
|
||||
30500 747.4 0 89.0 8.6 12 43 33.1 0.75 41.3 -40.5
|
||||
30600 756.2 0 89.9 9.0 12 45 33.8 0.76 41.8 -40.9
|
||||
30700 765.4 0 90.8 9.5 11 48 34.5 0.76 42.2 -41.3
|
||||
30800 775.3 0 91.7 10.3 10 51 35.2 0.77 42.7 -41.7
|
||||
30900 785.9 0 92.7 11.1 9 56 36.1 0.77 43.2 -42.2
|
||||
31000 797.6 0 93.8 12.3 9 62 37.0 0.77 43.7 -42.6
|
||||
31100 810.6 0 95.0 14.0 8 71 38.1 0.78 44.0 -43.1
|
||||
31200 825.5 0 96.3 15.9 7 81 39.4 0.78 44.4 -43.5
|
||||
31300 842.4 0 97.9 19.8 6 101 41.0 0.79 44.7 -43.8
|
||||
31400 865.0 0 99.9 33.3 3 171 43.3 0.80 44.9 -44.1
|
||||
31500 909.1 0 103.8 39.5 2 180 48.3 0.81 45.0 -44.4
|
||||
31588 943.9 0 106.0 32.8 2 180 50.0 0.81 45.1 -44.6
|
||||
31500 974.6 0 109.5 23.2 6 90 58.3 0.82 45.2 -44.7
|
||||
31400 990.3 0 110.8 13.7 8 71 61.1 0.83 45.3 -44.7
|
||||
31300 1001.9 0 111.8 10.7 10 56 63.4 0.83 45.4 -44.8
|
||||
31200 1011.7 0 112.6 9.3 11 48 65.4 0.84 45.5 -44.9
|
||||
31100 1020.4 0 113.3 8.2 13 43 67.2 0.84 45.6 -45.0
|
||||
31000 1028.1 0 113.9 7.4 14 39 69.0 0.84 45.6 -45.0
|
||||
30900 1035.2 0 114.5 6.9 15 36 70.6 0.85 45.6 -45.1
|
||||
30800 1041.8 0 115.0 6.4 16 33 72.2 0.85 45.6 -45.2
|
||||
30700 1047.9 0 115.5 5.8 17 31 73.7 0.86 45.7 -45.2
|
||||
30600 1053.5 0 116.0 5.5 19 29 75.1 0.86 45.8 -45.2
|
||||
30500 1058.9 0 116.4 5.2 20 27 76.5 0.86 45.9 -45.1
|
||||
30400 1063.9 0 116.8 5.0 21 26 77.8 0.87 46.0 -45.1
|
||||
30300 1068.8 0 117.2 4.8 22 25 79.3 0.87 46.2 -45.1
|
||||
30200 1073.4 0 117.5 4.5 23 24 80.6 0.87 46.2 -45.0
|
||||
30100 1077.9 0 117.9 4.3 24 23 81.8 0.88 46.2 -45.0
|
||||
30000 1082.0 0 118.2 4.0 25 22 82.5 0.88 46.1 -45.0
|
||||
29900 1086.0 0 118.5 3.9 26 21 82.9 0.89 46.1 -45.0
|
||||
29800 1089.8 0 118.8 3.8 27 20 83.1 0.89 46.1 -45.0
|
||||
29700 1093.5 0 119.0 3.6 28 19 83.2 0.89 46.0 -44.9
|
||||
29600 1097.1 0 119.3 3.5 29 19 83.3 0.90 46.0 -44.9
|
||||
29500 1100.6 0 119.5 3.5 29 18 83.4 0.90 46.0 -44.9
|
||||
29400 1104.1 0 119.8 3.4 30 18 83.5 0.90 45.9 -44.8
|
||||
29300 1107.4 0 120.0 3.4 30 18 83.7 0.91 45.9 -44.8
|
||||
29200 1110.8 0 120.2 3.3 31 17 83.9 0.91 45.8 -44.8
|
||||
29100 1114.0 0 120.5 3.2 31 17 84.3 0.92 45.7 -44.7
|
||||
29000 1117.2 0 120.7 3.2 32 17 84.7 0.92 45.6 -44.7
|
||||
28900 1120.4 0 120.9 3.2 32 17 85.1 0.92 45.6 -44.7
|
||||
28800 1123.5 0 121.1 3.0 33 16 85.6 0.93 45.5 -44.6
|
||||
28700 1126.5 0 121.3 3.0 34 16 85.9 0.93 45.4 -44.5
|
||||
28600 1129.5 0 121.5 3.0 34 16 86.1 0.94 45.3 -44.4
|
||||
28500 1132.4 0 121.7 2.9 35 15 86.3 0.94 45.3 -44.3
|
||||
28400 1135.3 0 121.9 2.8 36 15 86.5 0.94 45.2 -44.2
|
||||
28300 1138.1 0 122.1 2.8 36 15 86.7 0.95 44.9 -44.1
|
||||
28200 1140.9 0 122.3 2.8 37 15 86.9 0.95 44.6 -44.0
|
||||
28100 1143.7 0 122.5 2.8 37 14 87.2 0.96 44.3 -44.0
|
||||
28000 1146.4 0 122.7 2.7 38 14 87.5 0.96 44.1 -43.9
|
||||
27900 1149.0 0 122.9 2.6 38 14 87.8 0.96 43.9 -43.8
|
||||
27800 1151.6 0 123.0 2.6 39 14 88.1 0.97 43.7 -43.8
|
||||
27700 1154.2 0 123.2 2.6 39 14 88.5 0.97 43.5 -43.6
|
||||
27600 1156.8 0 123.4 2.6 40 13 88.8 0.98 43.3 -43.3
|
||||
27500 1159.3 0 123.5 2.5 41 13 89.0 0.98 43.1 -43.0
|
||||
27400 1161.8 0 123.7 2.4 41 13 89.3 0.99 42.9 -42.7
|
||||
27300 1164.2 0 123.9 2.4 42 13 89.6 0.99 42.8 -42.3
|
||||
27200 1166.6 0 124.0 2.4 42 13 89.8 1.00 42.5 -42.0
|
||||
27100 1169.0 0 124.2 2.4 43 13 90.0 1.00 42.4 -41.8
|
||||
27000 1171.4 0 124.3 2.3 43 12 90.2 1.00 42.2 -41.6
|
||||
26900 1173.7 0 124.5 2.3 44 12 90.4 1.01 42.0 -41.4
|
||||
26800 1176.0 0 124.6 2.3 44 12 90.6 1.01 41.9 -41.3
|
||||
26700 1178.3 0 124.8 2.3 44 12 90.7 1.02 41.6 -41.2
|
||||
26600 1180.6 0 124.9 2.3 45 12 90.9 1.02 41.6 -41.0
|
||||
26500 1182.8 0 125.1 2.3 45 12 91.0 1.03 41.4 -40.9
|
||||
26400 1185.1 0 125.2 2.3 45 12 91.1 1.03 41.3 -40.9
|
||||
26300 1187.3 0 125.4 2.2 46 12 91.3 1.04 41.3 -40.8
|
||||
26200 1189.5 0 125.5 2.2 46 12 91.5 1.04 41.2 -40.7
|
||||
26100 1191.7 0 125.6 2.2 46 12 91.6 1.05 41.0 -40.7
|
||||
26000 1193.9 0 125.8 2.2 46 12 91.7 1.05 40.9 -40.7
|
||||
25900 1196.1 0 125.9 2.2 46 12 91.9 1.06 40.7 -40.7
|
||||
25800 1198.3 0 126.0 2.2 46 11 92.0 1.06 40.7 -40.7
|
||||
25700 1200.4 0 126.2 2.1 46 11 92.1 1.07 40.6 -40.6
|
||||
25600 1202.6 0 126.3 2.2 46 11 92.3 1.07 40.5 -40.6
|
||||
25500 1204.8 0 126.4 2.2 47 11 92.4 1.08 40.4 -40.6
|
||||
25400 1207.0 0 126.5 2.1 47 11 92.5 1.08 40.4 -40.6
|
||||
25300 1209.1 0 126.6 2.2 47 11 92.6 1.09 40.3 -40.6
|
||||
25200 1211.3 0 126.8 2.2 47 11 92.7 1.09 40.1 -40.6
|
||||
25100 1213.4 0 126.9 2.1 47 11 92.8 1.10 40.1 -40.5
|
||||
25000 1215.6 0 127.0 2.1 47 11 92.8 1.10 40.0 -40.5
|
||||
24900 1217.7 0 127.1 2.2 47 11 92.8 1.11 39.9 -40.4
|
||||
24800 1219.9 0 127.2 2.2 47 11 92.8 1.11 39.8 -40.4
|
||||
24700 1222.0 0 127.3 2.1 47 11 92.7 1.11 39.7 -40.3
|
||||
24600 1224.1 0 127.5 2.1 48 11 92.6 1.12 39.7 -39.9
|
||||
24500 1226.2 0 127.6 2.1 48 11 92.6 1.12 39.6 -39.4
|
||||
24400 1228.3 0 127.7 2.1 48 11 92.5 1.13 39.5 -39.1
|
||||
24300 1230.4 0 127.8 2.1 48 11 92.5 1.13 39.4 -38.8
|
||||
24200 1232.5 0 127.9 2.1 49 11 92.5 1.14 39.3 -38.7
|
||||
24100 1234.6 0 128.0 2.0 49 11 92.4 1.14 39.2 -38.5
|
||||
24000 1236.6 0 128.1 2.0 49 11 92.5 1.15 39.1 -38.4
|
||||
23900 1238.7 0 128.2 2.0 49 11 92.5 1.15 39.0 -38.3
|
||||
23800 1240.7 0 128.3 2.0 50 11 92.5 1.16 38.8 -38.2
|
||||
23700 1242.7 0 128.4 2.1 50 11 92.5 1.16 38.8 -38.1
|
||||
23600 1244.8 0 128.5 2.1 50 10 92.5 1.17 38.5 -38.0
|
||||
23500 1246.8 0 128.6 2.0 50 10 92.5 1.17 38.2 -37.9
|
||||
23400 1248.8 0 128.7 2.0 50 10 92.6 1.18 37.8 -37.7
|
||||
23300 1250.8 0 128.8 2.0 51 10 92.6 1.19 37.3 -37.6
|
||||
23200 1252.8 0 128.9 2.0 51 10 92.7 1.19 36.9 -37.4
|
||||
23100 1254.8 0 129.0 1.9 51 10 92.7 1.20 36.4 -37.3
|
||||
23000 1256.7 0 129.1 1.9 51 10 92.7 1.20 36.1 -37.2
|
||||
}
|
||||
} Ende Spaltengruppe
|
||||
} Ende Standard_Tafel
|
||||
|
||||
} Ende Schuss_Tafel
|
||||
|
||||
+581
@@ -0,0 +1,581 @@
|
||||
###########################################################################
|
||||
# #
|
||||
# Projekt TES : File "HE-M1-M64Incr5BaseBleed-TableE.sus" zur Munition #
|
||||
# "M64" #
|
||||
# #
|
||||
# Bei der Auspraegung des Ballistik-Moduls vereinbarte Bezeichnungen #
|
||||
# Tafel_Namen : ENTFERNUNG, AUFSATZ, FLUGZEIT, -- obligatorisch #
|
||||
# VORHALT -- projektspezifisch #
|
||||
# Param_Namen : DELTA_V0, LUFTTEMP, LUFTDRUCK, #
|
||||
# LAENGSWIND, QUERWIND, #
|
||||
# PULVERTEMP -- Korrektur-Parameter #
|
||||
# #
|
||||
###########################################################################
|
||||
|
||||
# Aenderung/Stand: 09.07.14-07:52
|
||||
|
||||
Schuss_Tafel =
|
||||
{
|
||||
Munition = "HE-M1-M64"
|
||||
Version = "HE M64 Incr5BaseBleed Table-E"
|
||||
Muni_Parameter = { Kaliber = 155.0 Masse = 46.30 V0 = 912.0 }
|
||||
Std_Parameter = { DELTA_V0 = 0.0
|
||||
LUFTTEMP = 15.0
|
||||
LUFTDRUCK = 1013.25
|
||||
LAENGSWIND= 0.0
|
||||
QUERWIND = 0.0
|
||||
PULVERTEMP= 21.1 }
|
||||
Entfernung_Range= { Min = 100.0 Max = 40400.0 Delta = 100.0 Scheitel = 40528.0 }
|
||||
Ballistik = "Parabel"
|
||||
###########################################################################
|
||||
|
||||
Standard_Tafel =
|
||||
{
|
||||
Spaltengruppe =
|
||||
{ Belegung = { AUFSATZ = (2) [-]
|
||||
VORHALT = (3) [-]
|
||||
FLUGZEIT = (4)
|
||||
DELTA_RGE = (5) [-]
|
||||
DELTA_ELEV = (6)
|
||||
FORK = (7) [-]
|
||||
DRIFT = (8) [-]
|
||||
}
|
||||
Zeilenlaenge = 8
|
||||
Datenblock =
|
||||
{
|
||||
#
|
||||
# RGE ELEV TOF DELTA DELTA FORK BEARING-CORR. RANGE-CORR.
|
||||
# ENTF AUFSATZ VORHALT FLUGZEIT RGE ELEV DRIFT CW DEC INC
|
||||
# [m] [mil] [mil] [sec] [mil] [m] [mil] [mil] [mil] [m] [m]
|
||||
#
|
||||
100 0.6 0 0.1 0.6 167 1 0.0 0.00 0.2 -0.1
|
||||
200 1.2 0 0.2 0.6 166 1 0.1 0.00 0.3 -0.3
|
||||
300 1.8 0 0.3 0.6 165 1 0.1 0.00 0.6 -0.4
|
||||
400 2.4 0 0.4 0.6 165 1 0.1 0.00 0.7 -0.7
|
||||
500 3.0 0 0.6 0.6 164 1 0.1 0.00 0.9 -0.8
|
||||
600 3.6 0 0.7 0.7 163 1 0.1 0.00 1.0 -1.0
|
||||
700 4.3 0 0.8 0.7 162 1 0.2 0.00 1.2 -1.1
|
||||
800 4.9 0 0.9 0.6 161 1 0.2 0.00 1.4 -1.3
|
||||
900 5.5 0 1.0 0.6 160 1 0.2 0.00 1.6 -1.4
|
||||
1000 6.1 0 1.1 0.7 160 1 0.2 0.00 1.8 -1.6
|
||||
1100 6.8 0 1.2 0.7 159 1 0.3 0.00 1.9 -1.7
|
||||
1200 7.4 0 1.4 0.6 158 1 0.3 0.01 2.1 -1.9
|
||||
1300 8.0 0 1.5 0.6 157 1 0.3 0.01 2.2 -2.0
|
||||
1400 8.7 0 1.6 0.7 156 1 0.3 0.01 2.4 -2.2
|
||||
1500 9.3 0 1.7 0.7 156 1 0.4 0.01 2.6 -2.3
|
||||
1600 10.0 0 1.8 0.7 155 1 0.4 0.01 2.8 -2.5
|
||||
1700 10.6 0 1.9 0.7 154 1 0.4 0.01 3.0 -2.6
|
||||
1800 11.3 0 2.1 0.6 153 1 0.5 0.01 3.1 -2.8
|
||||
1900 11.9 0 2.2 0.7 153 1 0.5 0.01 3.3 -2.9
|
||||
2000 12.6 0 2.3 0.7 152 1 0.5 0.01 3.5 -3.1
|
||||
2100 13.2 0 2.4 0.6 151 1 0.5 0.02 3.6 -3.2
|
||||
2200 13.9 0 2.5 0.7 150 1 0.6 0.02 3.8 -3.4
|
||||
2300 14.6 0 2.6 0.7 149 1 0.6 0.02 3.9 -3.5
|
||||
2400 15.2 0 2.8 0.6 149 1 0.6 0.02 4.1 -3.7
|
||||
2500 15.9 0 2.9 0.7 148 1 0.6 0.02 4.3 -3.8
|
||||
2600 16.6 0 3.0 0.7 147 1 0.7 0.02 4.4 -4.0
|
||||
2700 17.3 0 3.1 0.7 146 1 0.7 0.02 4.6 -4.1
|
||||
2800 18.0 0 3.3 0.7 146 1 0.7 0.02 4.7 -4.2
|
||||
2900 18.7 0 3.4 0.7 145 1 0.7 0.03 4.9 -4.4
|
||||
3000 19.4 0 3.5 0.7 144 1 0.8 0.03 5.1 -4.5
|
||||
3100 20.1 0 3.6 0.7 143 1 0.8 0.03 5.2 -4.7
|
||||
3200 20.8 0 3.7 0.7 143 1 0.8 0.03 5.4 -4.8
|
||||
3300 21.5 0 3.9 0.7 142 1 0.9 0.03 5.5 -4.9
|
||||
3400 22.2 0 4.0 0.7 141 1 0.9 0.03 5.7 -5.1
|
||||
3500 22.9 0 4.1 0.7 140 1 0.9 0.03 5.9 -5.2
|
||||
3600 23.6 0 4.2 0.7 140 1 0.9 0.03 6.0 -5.4
|
||||
3700 24.3 0 4.4 0.7 139 1 1.0 0.03 6.2 -5.5
|
||||
3800 25.0 0 4.5 0.8 138 1 1.0 0.04 6.3 -5.7
|
||||
3900 25.8 0 4.6 0.8 138 1 1.0 0.04 6.4 -5.8
|
||||
4000 26.5 0 4.8 0.7 137 1 1.1 0.04 6.6 -6.0
|
||||
4100 27.2 0 4.9 0.8 136 1 1.1 0.04 6.7 -6.0
|
||||
4200 28.0 0 5.0 0.8 135 1 1.1 0.04 6.9 -6.2
|
||||
4300 28.7 0 5.1 0.8 135 1 1.1 0.04 7.1 -6.3
|
||||
4400 29.5 0 5.3 0.8 134 1 1.2 0.04 7.2 -6.5
|
||||
4500 30.2 0 5.4 0.8 133 1 1.2 0.04 7.3 -6.6
|
||||
4600 31.0 0 5.5 0.8 133 1 1.2 0.05 7.5 -6.7
|
||||
4700 31.7 0 5.7 0.8 132 1 1.3 0.05 7.6 -6.9
|
||||
4800 32.5 0 5.8 0.8 131 1 1.3 0.05 7.8 -7.0
|
||||
4900 33.3 0 5.9 0.8 131 1 1.3 0.05 7.9 -7.2
|
||||
5000 34.0 0 6.1 0.8 130 1 1.3 0.05 8.1 -7.2
|
||||
5100 34.8 0 6.2 0.8 129 1 1.4 0.05 8.2 -7.4
|
||||
5200 35.6 0 6.3 0.8 128 1 1.4 0.05 8.4 -7.5
|
||||
5300 36.4 0 6.5 0.8 128 1 1.4 0.05 8.5 -7.7
|
||||
5400 37.2 0 6.6 0.8 127 1 1.5 0.06 8.7 -7.8
|
||||
5500 38.0 0 6.7 0.8 126 1 1.5 0.06 8.8 -7.9
|
||||
5600 38.7 0 6.9 0.8 126 1 1.5 0.06 8.9 -8.1
|
||||
5700 39.5 0 7.0 0.9 125 1 1.6 0.06 9.1 -8.1
|
||||
5800 40.4 0 7.1 0.9 124 2 1.6 0.06 9.2 -8.3
|
||||
5900 41.2 0 7.3 0.8 124 2 1.6 0.06 9.4 -8.4
|
||||
6000 42.0 0 7.4 0.8 123 2 1.6 0.06 9.5 -8.6
|
||||
6100 42.8 0 7.6 0.8 122 2 1.7 0.06 9.6 -8.6
|
||||
6200 43.6 0 7.7 0.8 122 2 1.7 0.07 9.8 -8.8
|
||||
6300 44.4 0 7.8 0.9 121 2 1.7 0.07 9.9 -8.9
|
||||
6400 45.3 0 8.0 0.8 120 2 1.8 0.07 10.0 -9.0
|
||||
6500 46.1 0 8.1 0.9 120 2 1.8 0.07 10.2 -9.2
|
||||
6600 47.0 0 8.3 0.9 119 2 1.8 0.07 10.4 -9.3
|
||||
6700 47.8 0 8.4 0.9 118 2 1.9 0.07 10.4 -9.4
|
||||
6800 48.7 0 8.5 0.9 118 2 1.9 0.07 10.6 -9.5
|
||||
6900 49.5 0 8.7 0.9 117 2 1.9 0.08 10.8 -9.6
|
||||
7000 50.4 0 8.8 0.9 117 2 2.0 0.08 10.8 -9.8
|
||||
7100 51.2 0 9.0 0.8 116 2 2.0 0.08 11.0 -9.9
|
||||
7200 52.1 0 9.1 0.9 115 2 2.0 0.08 11.1 -10.0
|
||||
7300 53.0 0 9.3 0.9 115 2 2.1 0.08 11.2 -10.1
|
||||
7400 53.8 0 9.4 0.9 114 2 2.1 0.08 11.4 -10.2
|
||||
7500 54.7 0 9.6 0.9 113 2 2.1 0.08 11.5 -10.4
|
||||
7600 55.6 0 9.7 0.9 113 2 2.2 0.08 11.6 -10.4
|
||||
7700 56.5 0 9.9 0.9 112 2 2.2 0.09 11.8 -10.6
|
||||
7800 57.4 0 10.0 0.9 112 2 2.2 0.09 11.9 -10.7
|
||||
7900 58.3 0 10.2 0.9 111 2 2.3 0.09 12.0 -10.8
|
||||
8000 59.2 0 10.3 0.9 110 2 2.3 0.09 12.1 -11.0
|
||||
8100 60.1 0 10.5 0.9 110 2 2.3 0.09 12.3 -11.0
|
||||
8200 61.1 0 10.6 1.0 109 2 2.4 0.09 12.4 -11.2
|
||||
8300 62.0 0 10.8 0.9 109 2 2.4 0.09 12.5 -11.3
|
||||
8400 62.9 0 10.9 0.9 108 2 2.4 0.10 12.7 -11.4
|
||||
8500 63.8 0 11.1 1.0 107 2 2.5 0.10 12.8 -11.5
|
||||
8600 64.8 0 11.2 0.9 107 2 2.5 0.10 12.9 -11.6
|
||||
8700 65.7 0 11.4 0.9 106 2 2.5 0.10 13.0 -11.7
|
||||
8800 66.7 0 11.5 1.0 106 2 2.6 0.10 13.2 -11.9
|
||||
8900 67.6 0 11.7 1.0 105 2 2.6 0.10 13.2 -11.9
|
||||
9000 68.6 0 11.8 1.0 104 2 2.6 0.10 13.4 -12.1
|
||||
9100 69.5 0 12.0 1.0 104 2 2.7 0.11 13.6 -12.2
|
||||
9200 70.5 0 12.2 1.0 103 2 2.7 0.11 13.6 -12.3
|
||||
9300 71.5 0 12.3 1.0 103 2 2.7 0.11 13.8 -12.4
|
||||
9400 72.5 0 12.5 1.0 102 2 2.8 0.11 13.9 -12.5
|
||||
9500 73.5 0 12.6 1.0 102 2 2.8 0.11 14.1 -12.6
|
||||
9600 74.5 0 12.8 1.0 101 2 2.8 0.11 14.1 -12.7
|
||||
9700 75.4 0 13.0 1.0 100 2 2.9 0.11 14.3 -12.8
|
||||
9800 76.5 0 13.1 1.0 100 2 2.9 0.12 14.4 -13.0
|
||||
9900 77.5 0 13.3 1.0 99 2 2.9 0.12 14.5 -13.0
|
||||
10000 78.5 0 13.5 1.0 99 2 3.0 0.12 14.6 -13.1
|
||||
10100 79.5 0 13.6 1.0 98 2 3.0 0.12 14.8 -13.3
|
||||
10200 80.5 0 13.8 1.0 97 2 3.1 0.12 14.9 -13.3
|
||||
10300 81.6 0 14.0 1.0 97 2 3.1 0.12 15.0 -13.5
|
||||
10400 82.6 0 14.1 1.0 96 2 3.1 0.13 15.1 -13.6
|
||||
10500 83.7 0 14.3 1.0 96 2 3.2 0.13 15.3 -13.7
|
||||
10600 84.7 0 14.5 1.1 95 2 3.2 0.13 15.3 -13.8
|
||||
10700 85.8 0 14.6 1.1 95 2 3.2 0.13 15.5 -13.9
|
||||
10800 86.8 0 14.8 1.0 94 2 3.3 0.13 15.6 -14.0
|
||||
10900 87.9 0 15.0 1.1 94 2 3.3 0.13 15.7 -14.2
|
||||
11000 89.0 0 15.1 1.1 93 2 3.3 0.13 15.8 -14.2
|
||||
11100 90.1 0 15.3 1.1 92 2 3.4 0.14 16.0 -14.4
|
||||
11200 91.2 0 15.5 1.1 92 2 3.4 0.14 16.1 -14.5
|
||||
11300 92.3 0 15.7 1.1 91 2 3.5 0.14 16.2 -14.6
|
||||
11400 93.4 0 15.8 1.1 91 2 3.5 0.14 16.3 -14.7
|
||||
11500 94.5 0 16.0 1.1 90 2 3.5 0.14 16.5 -14.8
|
||||
11600 95.6 0 16.2 1.1 90 2 3.6 0.14 16.5 -14.9
|
||||
11700 96.7 0 16.4 1.1 89 2 3.6 0.15 16.7 -15.0
|
||||
11800 97.8 0 16.5 1.2 89 2 3.7 0.15 16.8 -15.1
|
||||
11900 99.0 0 16.7 1.1 88 2 3.7 0.15 16.9 -15.2
|
||||
12000 100.1 0 16.9 1.2 88 2 3.7 0.15 17.0 -15.3
|
||||
12100 101.3 0 17.1 1.2 87 2 3.8 0.15 17.1 -15.4
|
||||
12200 102.4 0 17.3 1.1 86 2 3.8 0.15 17.3 -15.5
|
||||
12300 103.6 0 17.5 1.2 86 2 3.8 0.16 17.3 -15.7
|
||||
12400 104.8 0 17.6 1.2 85 2 3.9 0.16 17.4 -15.7
|
||||
12500 106.0 0 17.8 1.1 85 2 3.9 0.16 17.6 -15.9
|
||||
12600 107.1 0 18.0 1.2 84 2 4.0 0.16 17.7 -16.0
|
||||
12700 108.3 0 18.2 1.2 84 2 4.0 0.16 17.8 -16.1
|
||||
12800 109.5 0 18.4 1.3 83 2 4.0 0.16 17.9 -16.2
|
||||
12900 110.8 0 18.6 1.3 83 2 4.1 0.17 18.1 -16.3
|
||||
13000 112.0 0 18.8 1.2 82 2 4.1 0.17 18.1 -16.4
|
||||
13100 113.2 0 19.0 1.2 82 2 4.2 0.17 18.2 -16.5
|
||||
13200 114.4 0 19.1 1.3 81 2 4.2 0.17 18.4 -16.6
|
||||
13300 115.7 0 19.3 1.3 81 2 4.2 0.17 18.5 -16.7
|
||||
13400 116.9 0 19.5 1.3 80 2 4.3 0.18 18.6 -16.8
|
||||
13500 118.2 0 19.7 1.3 80 2 4.3 0.18 18.7 -16.9
|
||||
13600 119.4 0 19.9 1.3 79 2 4.4 0.18 18.8 -17.0
|
||||
13700 120.7 0 20.1 1.3 79 2 4.4 0.18 18.9 -17.1
|
||||
13800 122.0 0 20.3 1.3 78 2 4.5 0.18 19.0 -17.2
|
||||
13900 123.3 0 20.5 1.3 78 2 4.5 0.18 19.2 -17.3
|
||||
14000 124.6 0 20.7 1.3 77 3 4.5 0.19 19.3 -17.4
|
||||
14100 125.9 0 20.9 1.3 77 3 4.6 0.19 19.4 -17.5
|
||||
14200 127.2 0 21.1 1.3 77 3 4.6 0.19 19.5 -17.6
|
||||
14300 128.5 0 21.3 1.3 76 3 4.7 0.19 19.6 -17.7
|
||||
14400 129.8 0 21.5 1.3 76 3 4.7 0.19 19.7 -17.8
|
||||
14500 131.2 0 21.7 1.3 75 3 4.8 0.20 19.8 -17.9
|
||||
14600 132.5 0 21.9 1.3 75 3 4.8 0.20 19.9 -18.0
|
||||
14700 133.9 0 22.1 1.3 74 3 4.8 0.20 20.0 -18.1
|
||||
14800 135.2 0 22.3 1.4 74 3 4.9 0.20 20.2 -18.2
|
||||
14900 136.6 0 22.5 1.4 73 3 4.9 0.20 20.2 -18.3
|
||||
15000 138.0 0 22.7 1.4 73 3 5.0 0.20 20.3 -18.3
|
||||
15100 139.4 0 22.9 1.4 72 3 5.0 0.21 20.4 -18.5
|
||||
15200 140.8 0 23.2 1.4 72 3 5.1 0.21 20.6 -18.6
|
||||
15300 142.2 0 23.4 1.4 72 3 5.1 0.21 20.6 -18.7
|
||||
15400 143.6 0 23.6 1.4 71 3 5.1 0.21 20.7 -18.8
|
||||
15500 145.0 0 23.8 1.4 71 3 5.2 0.21 20.8 -18.9
|
||||
15600 146.4 0 24.0 1.4 70 3 5.2 0.22 21.0 -19.0
|
||||
15700 147.9 0 24.2 1.5 70 3 5.3 0.22 21.0 -19.1
|
||||
15800 149.3 0 24.4 1.5 69 3 5.3 0.22 21.1 -19.2
|
||||
15900 150.8 0 24.7 1.4 69 3 5.4 0.22 21.3 -19.3
|
||||
16000 152.2 0 24.9 1.4 69 3 5.4 0.22 21.4 -19.4
|
||||
16100 153.7 0 25.1 1.5 68 3 5.5 0.23 21.5 -19.5
|
||||
16200 155.2 0 25.3 1.5 68 3 5.5 0.23 21.6 -19.6
|
||||
16300 156.7 0 25.5 1.5 67 3 5.6 0.23 21.8 -19.8
|
||||
16400 158.2 0 25.7 1.5 67 3 5.6 0.23 21.8 -19.8
|
||||
16500 159.7 0 26.0 1.5 67 3 5.6 0.23 22.0 -20.0
|
||||
16600 161.2 0 26.2 1.5 66 3 5.7 0.24 22.1 -20.1
|
||||
16700 162.7 0 26.4 1.6 66 3 5.7 0.24 22.2 -20.1
|
||||
16800 164.3 0 26.6 1.6 65 3 5.8 0.24 22.3 -20.3
|
||||
16900 165.8 0 26.9 1.5 65 3 5.8 0.24 22.5 -20.4
|
||||
17000 167.3 0 27.1 1.5 65 3 5.9 0.24 22.6 -20.5
|
||||
17100 168.9 0 27.3 1.6 64 3 5.9 0.24 22.7 -20.7
|
||||
17200 170.5 0 27.6 1.6 64 3 6.0 0.25 22.9 -20.7
|
||||
17300 172.1 0 27.8 1.6 64 3 6.0 0.25 23.0 -20.9
|
||||
17400 173.6 0 28.0 1.5 63 3 6.1 0.25 23.1 -20.9
|
||||
17500 175.2 0 28.2 1.6 63 3 6.1 0.25 23.2 -21.1
|
||||
17600 176.9 0 28.5 1.7 63 4 6.2 0.25 23.4 -21.2
|
||||
17700 178.5 0 28.7 1.6 62 4 6.2 0.26 23.4 -21.3
|
||||
17800 180.1 0 28.9 1.6 62 4 6.3 0.26 23.6 -21.4
|
||||
17900 181.7 0 29.2 1.6 61 4 6.3 0.26 23.7 -21.5
|
||||
18000 183.4 0 29.4 1.7 61 4 6.3 0.26 23.8 -21.6
|
||||
18100 185.0 0 29.7 1.7 61 4 6.4 0.26 23.8 -21.7
|
||||
18200 186.7 0 29.9 1.7 60 4 6.4 0.27 23.9 -21.8
|
||||
18300 188.4 0 30.1 1.7 60 4 6.5 0.27 24.0 -21.8
|
||||
18400 190.1 0 30.4 1.7 60 4 6.5 0.27 24.2 -21.9
|
||||
18500 191.7 0 30.6 1.7 59 4 6.6 0.27 24.2 -22.0
|
||||
18600 193.5 0 30.9 1.8 59 4 6.6 0.27 24.3 -22.1
|
||||
18700 195.2 0 31.1 1.7 59 4 6.7 0.28 24.4 -22.1
|
||||
18800 196.9 0 31.4 1.7 58 4 6.7 0.28 24.6 -22.2
|
||||
18900 198.6 0 31.6 1.8 58 4 6.8 0.28 24.6 -22.4
|
||||
19000 200.4 0 31.8 1.8 58 4 6.8 0.28 24.7 -22.4
|
||||
19100 202.1 0 32.1 1.8 57 4 6.9 0.28 24.9 -22.6
|
||||
19200 203.9 0 32.3 1.8 57 4 6.9 0.29 25.0 -22.7
|
||||
19300 205.6 0 32.6 1.8 57 4 7.0 0.29 25.1 -22.7
|
||||
19400 207.4 0 32.8 1.8 57 4 7.0 0.29 25.2 -22.9
|
||||
19500 209.2 0 33.1 1.8 56 4 7.1 0.29 25.4 -23.0
|
||||
19600 211.0 0 33.3 1.8 56 4 7.1 0.29 25.5 -23.1
|
||||
19700 212.8 0 33.6 1.8 56 4 7.2 0.30 25.6 -23.2
|
||||
19800 214.6 0 33.8 1.8 56 4 7.2 0.30 25.7 -23.3
|
||||
19900 216.4 0 34.1 1.8 55 5 7.3 0.30 25.9 -23.4
|
||||
20000 218.3 0 34.4 1.9 55 5 7.3 0.30 25.9 -23.5
|
||||
20100 220.1 0 34.6 1.8 55 5 7.4 0.30 26.1 -23.6
|
||||
20200 222.0 0 34.9 1.8 54 5 7.4 0.31 26.2 -23.7
|
||||
20300 223.8 0 35.1 1.8 54 5 7.5 0.31 26.3 -23.8
|
||||
20400 225.7 0 35.4 1.9 54 5 7.5 0.31 26.4 -23.9
|
||||
20500 227.6 0 35.7 1.9 53 5 7.6 0.31 26.6 -24.1
|
||||
20600 229.5 0 35.9 1.9 53 5 7.6 0.31 26.7 -24.3
|
||||
20700 231.4 0 36.2 1.9 53 5 7.7 0.32 26.8 -24.5
|
||||
20800 233.3 0 36.4 1.9 53 5 7.7 0.32 27.0 -24.7
|
||||
20900 235.2 0 36.7 1.9 52 5 7.8 0.32 27.1 -24.8
|
||||
21000 237.2 0 37.0 2.0 52 5 7.8 0.32 27.2 -25.0
|
||||
21100 239.1 0 37.2 2.0 52 5 7.9 0.32 27.3 -25.2
|
||||
21200 241.1 0 37.5 1.9 52 5 7.9 0.33 27.5 -25.3
|
||||
21300 243.0 0 37.8 1.9 51 5 8.0 0.33 27.5 -25.3
|
||||
21400 245.0 0 38.0 2.0 51 5 8.0 0.33 27.6 -25.1
|
||||
21500 247.0 0 38.3 1.9 51 5 8.1 0.33 27.7 -25.4
|
||||
21600 248.9 0 38.6 1.9 51 5 8.1 0.33 27.8 -25.5
|
||||
21700 250.9 0 38.8 2.0 51 5 8.2 0.34 27.9 -25.5
|
||||
21800 252.9 0 39.1 2.1 50 6 8.2 0.34 28.0 -25.6
|
||||
21900 255.0 0 39.4 2.1 50 6 8.3 0.34 28.2 -25.6
|
||||
22000 257.0 0 39.7 2.0 50 6 8.4 0.34 28.4 -25.7
|
||||
22100 259.0 0 39.9 2.0 50 6 8.4 0.34 28.6 -25.9
|
||||
22200 261.0 0 40.2 2.1 49 6 8.5 0.35 28.8 -26.1
|
||||
22300 263.1 0 40.5 2.1 49 6 8.5 0.35 29.1 -26.3
|
||||
22400 265.1 0 40.8 2.1 49 6 8.6 0.35 29.2 -26.5
|
||||
22500 267.2 0 41.0 2.1 49 6 8.6 0.35 29.4 -26.7
|
||||
22600 269.3 0 41.3 2.1 48 6 8.7 0.35 29.6 -26.8
|
||||
22700 271.4 0 41.6 2.1 48 6 8.7 0.35 29.6 -27.0
|
||||
22800 273.5 0 41.9 2.1 48 6 8.8 0.36 29.7 -27.1
|
||||
22900 275.6 0 42.2 2.1 48 6 8.8 0.36 29.8 -27.1
|
||||
23000 277.7 0 42.4 2.1 48 6 8.9 0.36 29.8 -27.1
|
||||
23100 279.8 0 42.7 2.1 47 6 8.9 0.36 29.9 -27.1
|
||||
23200 282.0 0 43.0 2.2 47 7 9.0 0.36 29.9 -27.2
|
||||
23300 284.1 0 43.3 2.1 47 7 9.1 0.37 29.9 -27.3
|
||||
23400 286.3 0 43.6 2.1 47 7 9.1 0.37 30.2 -27.4
|
||||
23500 288.4 0 43.9 2.2 47 7 9.2 0.37 30.4 -27.5
|
||||
23600 290.6 0 44.2 2.2 47 7 9.2 0.37 30.6 -27.7
|
||||
23700 292.8 0 44.4 2.2 46 7 9.3 0.37 30.8 -28.0
|
||||
23800 295.0 0 44.7 2.2 46 7 9.3 0.37 31.1 -28.1
|
||||
23900 297.2 0 45.0 2.2 46 7 9.4 0.38 31.3 -28.3
|
||||
24000 299.4 0 45.3 2.2 46 7 9.4 0.38 31.5 -28.5
|
||||
24100 301.6 0 45.6 2.2 46 7 9.5 0.38 31.6 -28.6
|
||||
24200 303.8 0 45.9 2.2 45 7 9.5 0.38 31.6 -28.7
|
||||
24300 306.0 0 46.2 2.3 45 7 9.6 0.38 31.6 -28.7
|
||||
24400 308.3 0 46.5 2.3 45 7 9.7 0.39 31.6 -28.7
|
||||
24500 310.5 0 46.8 2.3 45 7 9.7 0.39 31.6 -28.7
|
||||
24600 312.8 0 47.1 2.3 45 8 9.8 0.39 31.6 -28.8
|
||||
24700 315.1 0 47.4 2.3 44 8 9.8 0.39 31.7 -28.8
|
||||
24800 317.3 0 47.6 2.3 44 8 9.9 0.39 32.0 -28.9
|
||||
24900 319.6 0 47.9 2.3 44 8 9.9 0.39 32.1 -29.1
|
||||
25000 321.9 0 48.2 2.3 44 8 10.0 0.40 32.4 -29.3
|
||||
25100 324.3 0 48.5 2.4 44 8 10.1 0.40 32.6 -29.5
|
||||
25200 326.6 0 48.8 2.3 44 8 10.1 0.40 32.8 -29.8
|
||||
25300 328.9 0 49.1 2.3 43 8 10.2 0.40 33.1 -30.0
|
||||
25400 331.2 0 49.4 2.4 43 8 10.2 0.40 33.3 -30.3
|
||||
25500 333.6 0 49.7 2.3 43 8 10.3 0.40 33.5 -30.4
|
||||
25600 335.9 0 50.0 2.3 43 8 10.3 0.41 33.7 -30.6
|
||||
25700 338.3 0 50.3 2.4 43 8 10.4 0.41 33.9 -30.8
|
||||
25800 340.6 0 50.6 2.4 43 9 10.5 0.41 34.0 -30.9
|
||||
25900 343.0 0 51.0 2.4 43 9 10.5 0.41 34.2 -31.1
|
||||
26000 345.4 0 51.3 2.4 42 9 10.6 0.41 34.3 -31.2
|
||||
26100 347.8 0 51.6 2.4 42 9 10.6 0.41 34.3 -31.3
|
||||
26200 350.1 0 51.9 2.4 42 9 10.7 0.42 34.4 -31.3
|
||||
26300 352.6 0 52.2 2.4 42 9 10.8 0.42 34.4 -31.4
|
||||
26400 355.0 0 52.5 2.4 42 9 10.8 0.42 34.4 -31.4
|
||||
26500 357.4 0 52.8 2.4 42 9 10.9 0.42 34.4 -31.5
|
||||
26600 359.8 0 53.1 2.4 41 9 10.9 0.42 34.6 -31.5
|
||||
26700 362.3 0 53.4 2.5 41 9 11.0 0.42 34.8 -31.7
|
||||
26800 364.7 0 53.7 2.5 41 10 11.1 0.43 35.1 -31.9
|
||||
26900 367.2 0 54.0 2.5 41 10 11.1 0.43 35.4 -32.1
|
||||
27000 369.7 0 54.3 2.5 41 10 11.2 0.43 35.6 -32.4
|
||||
27100 372.2 0 54.7 2.4 41 10 11.3 0.43 36.0 -32.7
|
||||
27200 374.6 0 55.0 2.4 41 10 11.3 0.43 36.2 -32.9
|
||||
27300 377.1 0 55.3 2.5 41 10 11.4 0.43 36.4 -33.1
|
||||
27400 379.6 0 55.6 2.5 40 10 11.5 0.44 36.6 -33.2
|
||||
27500 382.1 0 55.9 2.6 40 10 11.5 0.44 36.8 -33.4
|
||||
27600 384.7 0 56.2 2.6 40 10 11.6 0.44 36.9 -33.5
|
||||
27700 387.2 0 56.5 2.5 40 11 11.6 0.44 37.1 -33.8
|
||||
27800 389.7 0 56.9 2.5 40 11 11.7 0.44 37.3 -33.9
|
||||
27900 392.3 0 57.2 2.5 40 11 11.8 0.44 37.4 -34.1
|
||||
28000 394.8 0 57.5 2.6 40 11 11.8 0.44 37.7 -34.2
|
||||
28100 397.4 0 57.8 2.6 39 11 11.9 0.45 37.8 -34.4
|
||||
28200 400.0 0 58.1 2.6 39 11 12.0 0.45 38.1 -34.7
|
||||
28300 402.5 0 58.5 2.6 39 11 12.0 0.45 38.2 -34.8
|
||||
28400 405.1 0 58.8 2.6 39 11 12.1 0.45 38.5 -35.0
|
||||
28500 407.7 0 59.1 2.6 39 11 12.2 0.45 38.7 -35.2
|
||||
28600 410.3 0 59.4 2.6 39 11 12.3 0.45 38.9 -35.3
|
||||
28700 412.9 0 59.8 2.6 39 12 12.3 0.46 39.2 -35.5
|
||||
28800 415.5 0 60.1 2.6 39 12 12.4 0.46 39.4 -35.6
|
||||
28900 418.1 0 60.4 2.6 39 12 12.5 0.46 39.7 -35.8
|
||||
29000 420.8 0 60.7 2.6 38 12 12.5 0.46 39.8 -35.9
|
||||
29100 423.4 0 61.1 2.7 38 12 12.6 0.46 40.0 -36.1
|
||||
29200 426.1 0 61.4 2.7 38 12 12.7 0.46 40.1 -36.3
|
||||
29300 428.8 0 61.7 2.6 38 12 12.8 0.46 40.1 -36.5
|
||||
29400 431.4 0 62.0 2.7 38 13 12.8 0.46 40.3 -36.7
|
||||
29500 434.1 0 62.4 2.7 38 13 12.9 0.47 40.5 -36.8
|
||||
29600 436.8 0 62.7 2.7 38 13 13.0 0.47 40.6 -37.1
|
||||
29700 439.5 0 63.0 2.7 37 13 13.1 0.47 40.9 -37.3
|
||||
29800 442.2 0 63.4 2.8 37 13 13.1 0.47 41.0 -37.4
|
||||
29900 445.0 0 63.7 2.8 37 13 13.2 0.47 41.3 -37.6
|
||||
30000 447.7 0 64.0 2.7 37 13 13.3 0.47 41.5 -37.9
|
||||
30100 450.4 0 64.4 2.8 37 13 13.4 0.47 41.8 -38.1
|
||||
30200 453.2 0 64.7 2.8 37 14 13.4 0.48 42.0 -38.3
|
||||
30300 455.9 0 65.1 2.8 37 14 13.5 0.48 42.2 -38.6
|
||||
30400 458.7 0 65.4 2.8 37 14 13.6 0.48 42.5 -38.8
|
||||
30500 461.5 0 65.7 2.8 36 14 13.7 0.48 42.7 -39.1
|
||||
30600 464.3 0 66.1 2.8 36 14 13.8 0.48 43.0 -39.4
|
||||
30700 467.1 0 66.4 2.8 36 14 13.8 0.48 43.4 -39.7
|
||||
30800 469.8 0 66.8 2.8 36 14 13.9 0.48 43.8 -40.0
|
||||
30900 472.6 0 67.1 2.9 36 14 14.0 0.48 44.2 -40.3
|
||||
31000 475.5 0 67.4 2.8 36 15 14.1 0.49 44.6 -40.6
|
||||
31100 478.3 0 67.8 2.8 36 15 14.2 0.49 45.0 -40.9
|
||||
31200 481.1 0 68.1 2.8 36 15 14.3 0.49 45.4 -41.2
|
||||
31300 483.9 0 68.5 2.8 36 15 14.3 0.49 45.6 -41.4
|
||||
31400 486.8 0 68.8 2.9 36 15 14.4 0.49 45.9 -41.6
|
||||
31500 489.6 0 69.2 2.9 35 15 14.5 0.49 46.1 -41.7
|
||||
31600 492.5 0 69.5 2.9 35 15 14.6 0.49 46.3 -42.0
|
||||
31700 495.4 0 69.9 2.9 35 16 14.7 0.49 46.4 -42.0
|
||||
31800 498.3 0 70.2 2.9 35 16 14.8 0.49 46.5 -42.2
|
||||
31900 501.2 0 70.6 2.9 35 16 14.9 0.50 46.5 -42.3
|
||||
32000 504.1 0 70.9 2.9 35 16 15.0 0.50 46.6 -42.3
|
||||
32100 507.1 0 71.3 2.9 34 16 15.1 0.50 46.6 -42.5
|
||||
32200 510.0 0 71.6 2.9 34 17 15.2 0.50 46.7 -42.6
|
||||
32300 513.0 0 72.0 3.0 34 17 15.2 0.50 47.0 -42.8
|
||||
32400 516.0 0 72.3 3.0 34 17 15.3 0.50 47.2 -43.0
|
||||
32500 518.9 0 72.7 3.0 34 17 15.4 0.50 47.5 -43.3
|
||||
32600 521.9 0 73.0 3.0 34 17 15.5 0.50 47.9 -43.7
|
||||
32700 524.9 0 73.4 3.0 34 17 15.6 0.50 48.3 -44.0
|
||||
32800 528.0 0 73.8 3.0 34 17 15.7 0.51 48.7 -44.4
|
||||
32900 531.0 0 74.1 3.0 34 18 15.8 0.51 49.1 -44.7
|
||||
33000 534.0 0 74.5 3.0 33 18 15.9 0.51 49.5 -45.0
|
||||
33100 537.1 0 74.8 3.0 33 18 16.0 0.51 50.0 -45.4
|
||||
33200 540.1 0 75.2 3.1 33 18 16.2 0.51 50.3 -45.7
|
||||
33300 543.2 0 75.6 3.1 33 18 16.3 0.51 50.7 -46.1
|
||||
33400 546.3 0 75.9 3.1 33 19 16.4 0.51 51.0 -46.3
|
||||
33500 549.4 0 76.3 3.1 33 19 16.5 0.51 51.3 -46.6
|
||||
33600 552.5 0 76.7 3.1 33 19 16.6 0.51 51.6 -46.8
|
||||
33700 555.6 0 77.0 3.1 32 19 16.7 0.51 51.9 -47.0
|
||||
33800 558.8 0 77.4 3.2 32 19 16.8 0.52 52.2 -47.3
|
||||
33900 561.9 0 77.8 3.1 32 20 16.9 0.52 52.5 -47.6
|
||||
34000 565.1 0 78.2 3.2 32 20 17.0 0.52 52.8 -47.9
|
||||
34100 568.3 0 78.5 3.2 32 20 17.2 0.52 53.2 -48.1
|
||||
34200 571.5 0 78.9 3.2 32 20 17.3 0.52 53.4 -48.4
|
||||
34300 574.7 0 79.3 3.2 31 20 17.4 0.52 53.7 -48.6
|
||||
34400 577.9 0 79.7 3.3 31 21 17.5 0.52 54.0 -48.9
|
||||
34500 581.2 0 80.1 3.3 31 21 17.6 0.52 54.3 -49.2
|
||||
34600 584.4 0 80.4 3.3 31 21 17.8 0.52 54.7 -49.5
|
||||
34700 587.7 0 80.8 3.3 31 21 17.9 0.52 55.1 -49.9
|
||||
34800 591.0 0 81.2 3.4 31 22 18.0 0.52 55.5 -50.2
|
||||
34900 594.4 0 81.6 3.4 31 22 18.2 0.52 56.0 -50.7
|
||||
35000 597.7 0 82.0 3.3 30 22 18.3 0.53 56.3 -51.1
|
||||
35100 601.1 0 82.4 3.4 30 22 18.4 0.53 56.5 -51.4
|
||||
35200 604.4 0 82.8 3.4 30 23 18.6 0.53 56.8 -51.7
|
||||
35300 607.8 0 83.2 3.4 30 23 18.7 0.53 57.0 -51.9
|
||||
35400 611.3 0 83.6 3.5 30 23 18.8 0.53 57.2 -52.0
|
||||
35500 614.7 0 84.0 3.5 29 23 19.0 0.53 57.5 -52.2
|
||||
35600 618.2 0 84.4 3.5 29 24 19.1 0.53 57.8 -52.3
|
||||
35700 621.7 0 84.8 3.5 29 24 19.3 0.53 58.1 -52.6
|
||||
35800 625.2 0 85.2 3.5 29 24 19.4 0.53 58.5 -53.0
|
||||
35900 628.8 0 85.6 3.5 29 25 19.6 0.53 58.9 -53.4
|
||||
36000 632.3 0 86.0 3.6 28 25 19.7 0.53 59.3 -53.7
|
||||
36100 635.9 0 86.4 3.6 28 25 19.9 0.53 59.7 -54.0
|
||||
36200 639.6 0 86.8 3.6 28 26 20.1 0.53 60.1 -54.4
|
||||
36300 643.2 0 87.2 3.7 28 26 20.2 0.54 60.5 -54.7
|
||||
36400 646.9 0 87.7 3.8 27 26 20.4 0.54 60.9 -55.1
|
||||
36500 650.7 0 88.1 3.8 27 27 20.6 0.54 61.2 -55.5
|
||||
36600 654.4 0 88.5 3.8 27 27 20.7 0.54 61.6 -55.8
|
||||
36700 658.2 0 89.0 3.8 27 27 20.9 0.54 62.0 -56.1
|
||||
36800 662.1 0 89.4 3.9 26 28 21.1 0.54 62.4 -56.6
|
||||
36900 665.9 0 89.8 3.9 26 28 21.3 0.54 62.8 -57.0
|
||||
37000 669.9 0 90.3 3.9 26 29 21.5 0.54 63.3 -57.6
|
||||
37100 673.8 0 90.7 3.9 26 29 21.7 0.54 63.8 -58.1
|
||||
37200 677.8 0 91.2 4.0 25 30 21.9 0.54 64.6 -58.6
|
||||
37300 681.8 0 91.6 4.1 25 30 22.1 0.54 65.3 -59.1
|
||||
37400 685.9 0 92.1 4.1 25 31 22.3 0.54 66.0 -59.6
|
||||
37500 690.1 0 92.5 4.1 25 31 22.5 0.54 66.6 -60.2
|
||||
37600 694.2 0 93.0 4.2 24 32 22.7 0.54 67.0 -60.7
|
||||
37700 698.5 0 93.5 4.3 24 32 23.0 0.54 67.5 -61.1
|
||||
37800 702.8 0 94.0 4.3 24 33 23.2 0.54 68.0 -61.7
|
||||
37900 707.1 0 94.4 4.4 23 34 23.4 0.55 68.6 -62.1
|
||||
38000 711.5 0 94.9 4.5 23 34 23.7 0.55 69.1 -62.5
|
||||
38100 716.0 0 95.4 4.5 23 35 23.9 0.55 69.6 -63.0
|
||||
38200 720.6 0 95.9 4.6 22 36 24.2 0.55 70.3 -63.4
|
||||
38300 725.2 0 96.4 4.7 22 36 24.5 0.55 70.9 -64.0
|
||||
38400 729.9 0 96.9 4.7 22 37 24.7 0.55 71.5 -64.6
|
||||
38500 734.6 0 97.5 4.8 22 37 25.0 0.55 72.2 -65.1
|
||||
38600 739.4 0 98.0 4.8 21 38 25.3 0.55 72.9 -65.7
|
||||
38700 744.2 0 98.5 4.8 21 39 25.6 0.55 73.5 -66.3
|
||||
38800 749.1 0 99.0 4.9 21 39 25.9 0.55 74.1 -66.8
|
||||
38900 754.1 0 99.6 5.1 20 40 26.2 0.55 74.7 -67.3
|
||||
39000 759.2 0 100.1 5.2 20 42 26.5 0.55 75.2 -67.5
|
||||
39100 764.4 0 100.7 5.3 19 43 26.8 0.55 75.4 -67.8
|
||||
39200 769.8 0 101.2 5.4 19 44 27.2 0.55 75.6 -68.0
|
||||
39300 775.3 0 101.8 5.6 18 46 27.5 0.55 75.9 -68.7
|
||||
39400 781.0 0 102.4 5.8 18 48 27.9 0.55 76.7 -69.6
|
||||
39500 786.9 0 103.1 6.0 17 50 28.3 0.55 77.7 -70.4
|
||||
39600 793.1 0 103.7 6.3 16 52 28.7 0.55 78.6 -71.1
|
||||
39700 799.5 0 104.4 6.6 16 55 29.1 0.55 79.4 -71.7
|
||||
39800 806.2 0 105.1 7.0 15 58 29.6 0.55 80.1 -72.3
|
||||
39900 813.4 0 105.8 7.4 14 62 30.1 0.55 80.9 -72.9
|
||||
40000 821.1 0 106.6 8.0 13 68 30.7 0.55 81.6 -73.5
|
||||
40100 829.5 0 107.5 8.9 12 75 31.3 0.55 82.2 -74.0
|
||||
40200 838.9 0 108.4 10.1 10 86 32.1 0.55 82.9 -74.6
|
||||
40300 849.8 0 109.5 12.2 9 104 32.9 0.55 83.3 -75.0
|
||||
40400 863.3 0 110.8 26.6 7 108 34.0 0.55 83.8 -75.4
|
||||
40528 902.9 0 115.0 39.1 5 110 38.0 0.55 84.0 -75.7
|
||||
40400 941.6 0 118.3 25.6 7 104 41.5 0.56 84.2 -75.8
|
||||
40300 954.2 0 119.4 11.3 9 98 42.8 0.57 84.6 -76.1
|
||||
40200 964.1 0 120.3 9.1 11 79 44.0 0.57 84.9 -76.4
|
||||
40100 972.5 0 121.0 8.0 13 69 45.0 0.57 85.2 -76.6
|
||||
40000 980.0 0 121.7 7.1 15 61 45.9 0.57 85.4 -76.9
|
||||
39900 986.7 0 122.3 6.5 16 56 46.7 0.57 85.6 -77.0
|
||||
39800 992.9 0 122.8 5.9 17 51 47.5 0.58 85.7 -77.2
|
||||
39700 998.6 0 123.3 5.5 18 48 48.2 0.58 85.8 -77.2
|
||||
39600 1004.0 0 123.8 5.3 20 45 48.9 0.58 85.8 -77.3
|
||||
39500 1009.1 0 124.2 5.0 21 43 49.6 0.58 85.8 -77.4
|
||||
39400 1014.0 0 124.6 4.8 22 41 50.2 0.58 85.8 -77.4
|
||||
39300 1018.6 0 125.0 4.5 22 39 50.8 0.58 85.7 -77.3
|
||||
39200 1023.1 0 125.3 4.4 23 38 51.4 0.59 85.5 -77.2
|
||||
39100 1027.4 0 125.7 4.3 24 36 51.9 0.59 85.4 -77.2
|
||||
39000 1031.6 0 126.0 4.1 25 35 52.4 0.59 85.2 -77.0
|
||||
38900 1035.7 0 126.4 4.0 26 34 52.9 0.59 85.0 -76.9
|
||||
38800 1039.6 0 126.7 3.9 26 33 53.4 0.59 84.8 -76.7
|
||||
38700 1043.4 0 127.0 3.8 27 32 53.8 0.59 84.5 -76.5
|
||||
38600 1047.1 0 127.3 3.6 28 31 54.2 0.60 84.3 -76.2
|
||||
38500 1050.7 0 127.6 3.5 28 30 54.7 0.60 84.1 -76.0
|
||||
38400 1054.2 0 127.8 3.5 29 29 55.1 0.60 83.7 -75.6
|
||||
38300 1057.7 0 128.1 3.5 30 29 55.5 0.60 83.4 -75.3
|
||||
38200 1061.1 0 128.4 3.4 30 28 56.0 0.60 83.1 -75.0
|
||||
38100 1064.4 0 128.6 3.3 31 27 56.4 0.60 82.8 -74.8
|
||||
38000 1067.6 0 128.9 3.2 32 27 56.8 0.61 82.5 -74.6
|
||||
37900 1070.8 0 129.1 3.2 32 26 57.3 0.61 82.2 -74.3
|
||||
37800 1074.0 0 129.3 3.1 33 26 57.7 0.61 82.0 -74.1
|
||||
37700 1077.0 0 129.6 3.0 33 25 58.1 0.61 81.7 -73.9
|
||||
37600 1080.0 0 129.8 3.0 34 24 58.5 0.61 81.5 -73.7
|
||||
37500 1083.0 0 130.0 3.0 35 24 58.9 0.61 81.2 -73.5
|
||||
37400 1085.9 0 130.2 2.8 35 23 59.3 0.62 80.9 -73.3
|
||||
37300 1088.7 0 130.4 2.8 36 23 59.7 0.62 80.5 -73.1
|
||||
37200 1091.6 0 130.6 2.8 36 23 60.1 0.62 80.1 -72.9
|
||||
37100 1094.3 0 130.8 2.7 37 22 60.5 0.62 79.7 -72.7
|
||||
37000 1097.0 0 131.0 2.7 37 22 60.9 0.62 79.3 -72.5
|
||||
36900 1099.7 0 131.2 2.7 38 21 61.3 0.62 79.2 -72.2
|
||||
36800 1102.4 0 131.4 2.7 39 21 61.7 0.63 79.0 -72.0
|
||||
36700 1105.0 0 131.6 2.6 39 21 62.1 0.63 78.9 -71.7
|
||||
36600 1107.6 0 131.8 2.5 40 20 62.5 0.63 78.8 -71.5
|
||||
36500 1110.1 0 132.0 2.5 40 20 62.8 0.63 78.7 -71.3
|
||||
36400 1112.6 0 132.2 2.5 41 20 63.2 0.63 78.5 -71.0
|
||||
36300 1115.1 0 132.3 2.5 41 19 63.6 0.64 78.3 -70.7
|
||||
36200 1117.6 0 132.5 2.5 42 19 63.9 0.64 78.0 -70.5
|
||||
36100 1120.0 0 132.7 2.4 42 19 64.3 0.64 77.6 -70.3
|
||||
36000 1122.4 0 132.8 2.3 42 19 64.6 0.64 77.3 -70.1
|
||||
35900 1124.7 0 133.0 2.3 43 18 64.9 0.64 77.0 -69.9
|
||||
35800 1127.1 0 133.2 2.4 43 18 65.2 0.64 76.7 -69.6
|
||||
35700 1129.4 0 133.3 2.3 44 18 65.5 0.65 76.3 -69.4
|
||||
35600 1131.7 0 133.5 2.3 44 18 65.8 0.65 75.9 -69.2
|
||||
35500 1134.0 0 133.6 2.3 45 17 66.1 0.65 75.5 -69.0
|
||||
35400 1136.2 0 133.8 2.2 45 17 66.4 0.65 75.1 -68.7
|
||||
35300 1138.4 0 133.9 2.2 46 17 66.6 0.65 74.7 -68.4
|
||||
35200 1140.6 0 134.0 2.2 46 17 66.9 0.65 74.4 -68.2
|
||||
35100 1142.8 0 134.2 2.2 47 16 67.2 0.66 74.0 -68.0
|
||||
35000 1145.0 0 134.3 2.1 47 16 67.4 0.66 73.9 -67.8
|
||||
34900 1147.1 0 134.5 2.1 48 16 67.7 0.66 73.7 -67.5
|
||||
34800 1149.2 0 134.6 2.1 48 16 68.0 0.66 73.5 -67.2
|
||||
34700 1151.3 0 134.7 2.1 49 15 68.3 0.66 73.4 -67.0
|
||||
34600 1153.3 0 134.9 2.0 49 15 68.6 0.67 73.2 -66.9
|
||||
34500 1155.4 0 135.0 2.0 50 15 68.9 0.67 73.1 -66.6
|
||||
34400 1157.4 0 135.1 2.0 50 15 69.4 0.67 72.9 -66.5
|
||||
34300 1159.4 0 135.2 2.0 51 15 69.8 0.67 72.7 -66.3
|
||||
34200 1161.4 0 135.4 2.0 52 14 70.2 0.67 72.6 -66.1
|
||||
34100 1163.3 0 135.5 1.9 52 14 70.6 0.68 72.3 -66.0
|
||||
34000 1165.2 0 135.6 1.9 53 14 70.9 0.68 72.2 -65.8
|
||||
33900 1167.1 0 135.7 1.9 53 14 71.2 0.68 71.9 -65.7
|
||||
33800 1169.0 0 135.8 1.9 54 14 71.5 0.68 71.7 -65.5
|
||||
33700 1170.9 0 136.0 1.9 54 13 71.6 0.69 71.5 -65.3
|
||||
33600 1172.8 0 136.1 1.8 55 13 71.5 0.69 71.3 -65.2
|
||||
33500 1174.6 0 136.2 1.8 55 13 71.4 0.69 71.1 -65.0
|
||||
33400 1176.4 0 136.3 1.8 56 13 71.2 0.69 70.8 -64.8
|
||||
33300 1178.2 0 136.4 1.8 56 13 71.0 0.69 70.6 -64.6
|
||||
33200 1180.0 0 136.5 1.8 57 13 70.8 0.70 70.3 -64.5
|
||||
33100 1181.8 0 136.6 1.8 57 12 70.6 0.70 70.1 -64.3
|
||||
33000 1183.5 0 136.7 1.8 58 12 70.4 0.70 69.9 -64.1
|
||||
32900 1185.3 0 136.8 1.8 58 12 70.2 0.70 69.5 -63.9
|
||||
32800 1187.0 0 136.9 1.7 59 12 70.1 0.71 69.3 -63.7
|
||||
32700 1188.7 0 137.0 1.7 59 12 70.1 0.71 69.1 -63.5
|
||||
32600 1190.4 0 137.1 1.7 59 12 70.0 0.71 68.8 -63.3
|
||||
32500 1192.1 0 137.2 1.7 60 12 70.0 0.71 68.6 -63.1
|
||||
32400 1193.8 0 137.3 1.7 60 12 70.0 0.72 68.3 -62.9
|
||||
32300 1195.5 0 137.4 1.7 60 11 69.9 0.72 68.1 -62.8
|
||||
32200 1197.2 0 137.5 1.7 60 11 69.9 0.72 67.8 -62.5
|
||||
32100 1198.8 0 137.6 1.7 61 11 70.0 0.72 67.6 -62.5
|
||||
32000 1200.5 0 137.7 1.7 60 11 70.0 0.73 67.4 -62.4
|
||||
31900 1202.2 0 137.8 1.7 61 11 70.0 0.73 67.3 -62.3
|
||||
31800 1203.8 0 137.9 1.7 61 11 70.1 0.73 67.2 -62.2
|
||||
31700 1205.5 0 138.0 1.7 61 11 70.1 0.73 67.1 -62.2
|
||||
31600 1207.2 0 138.1 1.7 61 11 70.2 0.74 67.0 -62.2
|
||||
31500 1208.8 0 138.1 1.7 61 11 70.2 0.74 67.0 -62.2
|
||||
31400 1210.5 0 138.2 1.6 61 11 70.3 0.74 66.9 -62.1
|
||||
31300 1212.1 0 138.3 1.7 61 11 70.3 0.74 66.8 -62.1
|
||||
31200 1213.8 0 138.4 1.7 61 11 70.4 0.75 66.7 -62.0
|
||||
31100 1215.4 0 138.5 1.6 61 11 70.4 0.75 66.6 -61.9
|
||||
31000 1217.1 0 138.6 1.6 61 11 70.4 0.75 66.6 -61.7
|
||||
30900 1218.7 0 138.7 1.6 61 11 70.4 0.75 66.4 -61.7
|
||||
30800 1220.3 0 138.8 1.7 61 10 70.3 0.76 66.2 -61.4
|
||||
30700 1222.0 0 138.9 1.6 61 10 70.3 0.76 66.1 -61.3
|
||||
30600 1223.6 0 138.9 1.7 62 10 70.2 0.76 65.9 -61.1
|
||||
30500 1225.3 0 139.0 1.7 62 10 70.2 0.76 65.8 -61.0
|
||||
30400 1226.9 0 139.1 1.6 62 10 70.1 0.77 65.6 -60.8
|
||||
30300 1228.5 0 139.2 1.6 62 10 70.1 0.77 65.4 -60.6
|
||||
30200 1230.1 0 139.3 1.7 62 10 70.1 0.77 65.2 -60.5
|
||||
30100 1231.8 0 139.4 1.7 63 10 70.1 0.77 65.0 -60.3
|
||||
30000 1233.4 0 139.4 1.6 63 10 70.1 0.78 64.9 -60.1
|
||||
29900 1235.0 0 139.5 1.6 63 10 70.1 0.78 64.7 -59.9
|
||||
29800 1236.6 0 139.6 1.6 63 10 70.1 0.78 64.6 -59.8
|
||||
29700 1238.2 0 139.7 1.5 63 10 70.1 0.78 64.3 -59.6
|
||||
29600 1239.7 0 139.8 1.6 64 10 70.2 0.79 64.2 -59.4
|
||||
29500 1241.3 0 139.9 1.6 64 9 70.2 0.79 64.0 -59.3
|
||||
29400 1242.9 0 139.9 1.6 64 9 70.2 0.79 63.8 -59.1
|
||||
29300 1244.5 0 140.0 1.6 64 9 70.2 0.80 63.6 -59.0
|
||||
29200 1246.1 0 140.1 1.5 64 9 70.3 0.80 63.4 -58.7
|
||||
29100 1247.6 0 140.2 1.5 65 9 70.3 0.80 63.2 -58.6
|
||||
29000 1249.2 0 140.2 1.5 65 9 70.3 0.80 62.9 -58.4
|
||||
28900 1250.7 0 140.3 1.6 65 9 70.3 0.81 62.7 -58.2
|
||||
28800 1252.3 0 140.4 1.6 65 9 70.3 0.81 62.5 -58.1
|
||||
28700 1253.8 0 140.5 1.5 65 9 70.3 0.81 62.2 -57.9
|
||||
28600 1255.4 0 140.5 1.5 66 9 70.3 0.81 62.0 -57.7
|
||||
28500 1256.9 0 140.6 1.5 66 9 70.3 0.82 61.7 -57.6
|
||||
}
|
||||
} Ende Spaltengruppe
|
||||
} Ende Standard_Tafel
|
||||
|
||||
} Ende Schuss_Tafel
|
||||
|
||||
+63
@@ -0,0 +1,63 @@
|
||||
###########################################################################
|
||||
# #
|
||||
# Projekt:File "Moerser-60mm-Lad1.sus" zur Munition "60_mm_Splitter" #
|
||||
# #
|
||||
# Bei der Auspraegung des Ballistik-Moduls vereinbarte Bezeichnungen #
|
||||
# Tafel_Namen : ENTFERNUNG, AUFSATZ, FLUGZEIT, -- obligatorisch #
|
||||
# VORHALT -- projektspezifisch #
|
||||
# Param_Namen : DELTA_V0, LUFTTEMP, LUFTDRUCK, #
|
||||
# LAENGSWIND, QUERWIND, #
|
||||
# PULVERTEMP -- Korrektur-Parameter #
|
||||
# #
|
||||
###########################################################################
|
||||
|
||||
# Aenderung/Stand: 27.06.2024 - 07:04
|
||||
|
||||
Schuss_Tafel =
|
||||
{
|
||||
Munition = "60_mm_Splitter"
|
||||
Version = "60_mm_Splitter_Lad1"
|
||||
Muni_Parameter = { Kaliber = 60.0 Masse = 1.8 V0 = 200.0 }
|
||||
Std_Parameter = { DELTA_V0 = 0.0
|
||||
LUFTTEMP = 15.0
|
||||
LUFTDRUCK = 1013.25
|
||||
LAENGSWIND= 0.0
|
||||
QUERWIND = 0.0
|
||||
PULVERTEMP= 21.1 }
|
||||
Entfernung_Range= { Min = 100.0 Max = 17700.0 Delta = 100.0 Scheitel = 17785.0 }
|
||||
Ballistik = "Parabel"
|
||||
###########################################################################
|
||||
|
||||
Standard_Tafel =
|
||||
{
|
||||
Spaltengruppe =
|
||||
{ Belegung = { AUFSATZ = (2) [-]
|
||||
VORHALT = (3) [-]
|
||||
FLUGZEIT = (4)
|
||||
DELTA_RGE = (5) [-]
|
||||
DELTA_ELEV = (6)
|
||||
FORK = (7) [-]
|
||||
DRIFT = (8) [-]
|
||||
}
|
||||
Zeilenlaenge = 4
|
||||
Datenblock =
|
||||
{
|
||||
#
|
||||
# RGE ELEV TOF DELTA DELTA FORK BEARING-CORR. RANGE-CORR.
|
||||
# ENTF AUFSATZ VORHALT FLUGZEIT RGE ELEV DRIFT CW DEC INC
|
||||
# [m] [mil] [mil] [sec] [mil] [m] [mil] [mil] [mil] [m] [m]
|
||||
#
|
||||
100 1422 0 17,0
|
||||
120 1333 0 16,0
|
||||
140 1244 0 15,0
|
||||
160 1156 0 14,0
|
||||
180 1067 0 13,0
|
||||
200 978 0 12,0
|
||||
220 889 0 11,0
|
||||
240 800 0 10,0
|
||||
}
|
||||
} Ende Spaltengruppe
|
||||
} Ende Standard_Tafel
|
||||
|
||||
} Ende Schuss_Tafel
|
||||
|
||||
+77
@@ -0,0 +1,77 @@
|
||||
###########################################################################
|
||||
# #
|
||||
# Projekt:File "Moerser-60mm-Lad2.sus" zur Munition "60_mm_Splitter" #
|
||||
# #
|
||||
# Bei der Auspraegung des Ballistik-Moduls vereinbarte Bezeichnungen #
|
||||
# Tafel_Namen : ENTFERNUNG, AUFSATZ, FLUGZEIT, -- obligatorisch #
|
||||
# VORHALT -- projektspezifisch #
|
||||
# Param_Namen : DELTA_V0, LUFTTEMP, LUFTDRUCK, #
|
||||
# LAENGSWIND, QUERWIND, #
|
||||
# PULVERTEMP -- Korrektur-Parameter #
|
||||
# #
|
||||
###########################################################################
|
||||
|
||||
# Aenderung/Stand: 27.06.2024 - 07:04
|
||||
|
||||
Schuss_Tafel =
|
||||
{
|
||||
Munition = "60_mm_Splitter"
|
||||
Version = "60_mm_Splitter_Lad2"
|
||||
Muni_Parameter = { Kaliber = 60.0 Masse = 1.8 V0 = 200.0 }
|
||||
Std_Parameter = { DELTA_V0 = 0.0
|
||||
LUFTTEMP = 15.0
|
||||
LUFTDRUCK = 1013.25
|
||||
LAENGSWIND= 0.0
|
||||
QUERWIND = 0.0
|
||||
PULVERTEMP= 21.1 }
|
||||
Entfernung_Range= { Min = 100.0 Max = 17700.0 Delta = 100.0 Scheitel = 17785.0 }
|
||||
Ballistik = "Parabel"
|
||||
###########################################################################
|
||||
|
||||
Standard_Tafel =
|
||||
{
|
||||
Spaltengruppe =
|
||||
{ Belegung = { AUFSATZ = (2) [-]
|
||||
VORHALT = (3) [-]
|
||||
FLUGZEIT = (4)
|
||||
DELTA_RGE = (5) [-]
|
||||
DELTA_ELEV = (6)
|
||||
FORK = (7) [-]
|
||||
DRIFT = (8) [-]
|
||||
}
|
||||
Zeilenlaenge = 4
|
||||
Datenblock =
|
||||
{
|
||||
#
|
||||
# RGE ELEV TOF DELTA DELTA FORK BEARING-CORR. RANGE-CORR.
|
||||
# ENTF AUFSATZ VORHALT FLUGZEIT RGE ELEV DRIFT CW DEC INC
|
||||
# [m] [mil] [mil] [sec] [mil] [m] [mil] [mil] [mil] [m] [m]
|
||||
#
|
||||
150 1476 0 31,4
|
||||
165 1465 0 31,4
|
||||
180 1449 0 31,3
|
||||
195 1436 0 31,2
|
||||
210 1422 0 31,2
|
||||
225 1408 0 31,1
|
||||
240 1394 0 30,9
|
||||
255 1380 0 30,8
|
||||
270 1366 0 30,7
|
||||
285 1351 0 30,6
|
||||
300 1337 0 30,5
|
||||
315 1322 0 30,4
|
||||
330 1306 0 30,3
|
||||
345 1290 0 30,2
|
||||
360 1274 0 30,0
|
||||
375 1258 0 29,9
|
||||
390 1241 0 29,7
|
||||
405 1223 0 29,5
|
||||
420 1205 0 29,3
|
||||
435 1187 0 29,1
|
||||
450 1167 0 28,9
|
||||
457 1147 0 28,6
|
||||
}
|
||||
} Ende Spaltengruppe
|
||||
} Ende Standard_Tafel
|
||||
|
||||
} Ende Schuss_Tafel
|
||||
|
||||
+78
@@ -0,0 +1,78 @@
|
||||
###########################################################################
|
||||
# #
|
||||
# Projekt:File "Moerser-60mm-Lad3.sus" zur Munition "60_mm_Splitter" #
|
||||
# #
|
||||
# Bei der Auspraegung des Ballistik-Moduls vereinbarte Bezeichnungen #
|
||||
# Tafel_Namen : ENTFERNUNG, AUFSATZ, FLUGZEIT, -- obligatorisch #
|
||||
# VORHALT -- projektspezifisch #
|
||||
# Param_Namen : DELTA_V0, LUFTTEMP, LUFTDRUCK, #
|
||||
# LAENGSWIND, QUERWIND, #
|
||||
# PULVERTEMP -- Korrektur-Parameter #
|
||||
# #
|
||||
###########################################################################
|
||||
|
||||
# Aenderung/Stand: 27.06.2024 - 07:04
|
||||
|
||||
Schuss_Tafel =
|
||||
{
|
||||
Munition = "60_mm_Splitter"
|
||||
Version = "60_mm_Splitter_Lad3"
|
||||
Muni_Parameter = { Kaliber = 60.0 Masse = 1.8 V0 = 200.0 }
|
||||
Std_Parameter = { DELTA_V0 = 0.0
|
||||
LUFTTEMP = 15.0
|
||||
LUFTDRUCK = 1013.25
|
||||
LAENGSWIND= 0.0
|
||||
QUERWIND = 0.0
|
||||
PULVERTEMP= 21.1 }
|
||||
Entfernung_Range= { Min = 100.0 Max = 17700.0 Delta = 100.0 Scheitel = 17785.0 }
|
||||
Ballistik = "Parabel"
|
||||
###########################################################################
|
||||
|
||||
Standard_Tafel =
|
||||
{
|
||||
Spaltengruppe =
|
||||
{ Belegung = { AUFSATZ = (2) [-]
|
||||
VORHALT = (3) [-]
|
||||
FLUGZEIT = (4)
|
||||
DELTA_RGE = (5) [-]
|
||||
DELTA_ELEV = (6)
|
||||
FORK = (7) [-]
|
||||
DRIFT = (8) [-]
|
||||
}
|
||||
Zeilenlaenge = 4
|
||||
Datenblock =
|
||||
{
|
||||
#
|
||||
# RGE ELEV TOF DELTA DELTA FORK BEARING-CORR. RANGE-CORR.
|
||||
# ENTF AUFSATZ VORHALT FLUGZEIT RGE ELEV DRIFT CW DEC INC
|
||||
# [m] [mil] [mil] [sec] [mil] [m] [mil] [mil] [mil] [m] [m]
|
||||
#
|
||||
300 1407 0 36,0
|
||||
315 1396 0 36,0
|
||||
330 1386 0 35,9
|
||||
345 1375 0 35,8
|
||||
360 1364 0 35,7
|
||||
375 1353 0 35,6
|
||||
390 1342 0 35,5
|
||||
405 1330 0 35,5
|
||||
420 1319 0 35,3
|
||||
435 1307 0 35,2
|
||||
450 1295 0 35,1
|
||||
465 1283 0 35,0
|
||||
480 1271 0 34,9
|
||||
495 1258 0 34,7
|
||||
510 1245 0 34,6
|
||||
525 1232 0 34,4
|
||||
540 1219 0 34,2
|
||||
555 1205 0 34,0
|
||||
570 1191 0 33,8
|
||||
585 1176 0 33,6
|
||||
600 1161 0 33,4
|
||||
615 1145 0 33,2
|
||||
630 1129 0 32,9
|
||||
}
|
||||
} Ende Spaltengruppe
|
||||
} Ende Standard_Tafel
|
||||
|
||||
} Ende Schuss_Tafel
|
||||
|
||||
+63
@@ -0,0 +1,63 @@
|
||||
###########################################################################
|
||||
# #
|
||||
# Projekt:File "Moerser-60mm-Lad4.sus" zur Munition "60_mm_Splitter" #
|
||||
# #
|
||||
# Bei der Auspraegung des Ballistik-Moduls vereinbarte Bezeichnungen #
|
||||
# Tafel_Namen : ENTFERNUNG, AUFSATZ, FLUGZEIT, -- obligatorisch #
|
||||
# VORHALT -- projektspezifisch #
|
||||
# Param_Namen : DELTA_V0, LUFTTEMP, LUFTDRUCK, #
|
||||
# LAENGSWIND, QUERWIND, #
|
||||
# PULVERTEMP -- Korrektur-Parameter #
|
||||
# #
|
||||
###########################################################################
|
||||
|
||||
# Aenderung/Stand: 27.06.2024 - 07:04
|
||||
|
||||
Schuss_Tafel =
|
||||
{
|
||||
Munition = "60_mm_Splitter"
|
||||
Version = "60_mm_Splitter_Lad4"
|
||||
Muni_Parameter = { Kaliber = 60.0 Masse = 1.8 V0 = 200.0 }
|
||||
Std_Parameter = { DELTA_V0 = 0.0
|
||||
LUFTTEMP = 15.0
|
||||
LUFTDRUCK = 1013.25
|
||||
LAENGSWIND= 0.0
|
||||
QUERWIND = 0.0
|
||||
PULVERTEMP= 21.1 }
|
||||
Entfernung_Range= { Min = 100.0 Max = 17700.0 Delta = 100.0 Scheitel = 17785.0 }
|
||||
Ballistik = "Parabel"
|
||||
###########################################################################
|
||||
|
||||
Standard_Tafel =
|
||||
{
|
||||
Spaltengruppe =
|
||||
{ Belegung = { AUFSATZ = (2) [-]
|
||||
VORHALT = (3) [-]
|
||||
FLUGZEIT = (4)
|
||||
DELTA_RGE = (5) [-]
|
||||
DELTA_ELEV = (6)
|
||||
FORK = (7) [-]
|
||||
DRIFT = (8) [-]
|
||||
}
|
||||
Zeilenlaenge = 4
|
||||
Datenblock =
|
||||
{
|
||||
#
|
||||
# RGE ELEV TOF DELTA DELTA FORK BEARING-CORR. RANGE-CORR.
|
||||
# ENTF AUFSATZ VORHALT FLUGZEIT RGE ELEV DRIFT CW DEC INC
|
||||
# [m] [mil] [mil] [sec] [mil] [m] [mil] [mil] [mil] [m] [m]
|
||||
#
|
||||
260 1510 0 17,0
|
||||
280 1462 0 16,0
|
||||
300 1413 0 15,0
|
||||
320 1362 0 14,0
|
||||
340 1249 0 13,0
|
||||
360 1185 0 12,0
|
||||
380 1110 0 11,0
|
||||
400 1014 0 10,0
|
||||
}
|
||||
} Ende Spaltengruppe
|
||||
} Ende Standard_Tafel
|
||||
|
||||
} Ende Schuss_Tafel
|
||||
|
||||
+81
@@ -0,0 +1,81 @@
|
||||
###########################################################################
|
||||
# #
|
||||
# Projekt:File "Moerser-60mm-Lad5.sus" zur Munition "60_mm_Splitter" #
|
||||
# #
|
||||
# Bei der Auspraegung des Ballistik-Moduls vereinbarte Bezeichnungen #
|
||||
# Tafel_Namen : ENTFERNUNG, AUFSATZ, FLUGZEIT, -- obligatorisch #
|
||||
# VORHALT -- projektspezifisch #
|
||||
# Param_Namen : DELTA_V0, LUFTTEMP, LUFTDRUCK, #
|
||||
# LAENGSWIND, QUERWIND, #
|
||||
# PULVERTEMP -- Korrektur-Parameter #
|
||||
# #
|
||||
###########################################################################
|
||||
|
||||
# Aenderung/Stand: 27.06.2024 - 07:04
|
||||
|
||||
Schuss_Tafel =
|
||||
{
|
||||
Munition = "60_mm_Splitter"
|
||||
Version = "60_mm_Splitter_Lad5"
|
||||
Muni_Parameter = { Kaliber = 60.0 Masse = 1.8 V0 = 200.0 }
|
||||
Std_Parameter = { DELTA_V0 = 0.0
|
||||
LUFTTEMP = 15.0
|
||||
LUFTDRUCK = 1013.25
|
||||
LAENGSWIND= 0.0
|
||||
QUERWIND = 0.0
|
||||
PULVERTEMP= 21.1 }
|
||||
Entfernung_Range= { Min = 100.0 Max = 17700.0 Delta = 100.0 Scheitel = 17785.0 }
|
||||
Ballistik = "Parabel"
|
||||
###########################################################################
|
||||
|
||||
Standard_Tafel =
|
||||
{
|
||||
Spaltengruppe =
|
||||
{ Belegung = { AUFSATZ = (2) [-]
|
||||
VORHALT = (3) [-]
|
||||
FLUGZEIT = (4)
|
||||
DELTA_RGE = (5) [-]
|
||||
DELTA_ELEV = (6)
|
||||
FORK = (7) [-]
|
||||
DRIFT = (8) [-]
|
||||
}
|
||||
Zeilenlaenge = 4
|
||||
Datenblock =
|
||||
{
|
||||
#
|
||||
# RGE ELEV TOF DELTA DELTA FORK BEARING-CORR. RANGE-CORR.
|
||||
# ENTF AUFSATZ VORHALT FLUGZEIT RGE ELEV DRIFT CW DEC INC
|
||||
# [m] [mil] [mil] [sec] [mil] [m] [mil] [mil] [mil] [m] [m]
|
||||
#
|
||||
570 1324 0 42,5
|
||||
585 1315 0 42,4
|
||||
600 1307 0 42,3
|
||||
615 1298 0 42,2
|
||||
630 1290 0 42,1
|
||||
645 1281 0 42,0
|
||||
660 1272 0 41,8
|
||||
675 1263 0 41,7
|
||||
690 1254 0 41,6
|
||||
705 1244 0 41,5
|
||||
720 1235 0 41,3
|
||||
735 1225 0 41,2
|
||||
750 1215 0 41,1
|
||||
765 1205 0 40,9
|
||||
780 1195 0 40,7
|
||||
795 1185 0 40,5
|
||||
810 1174 0 40,3
|
||||
825 1163 0 40,2
|
||||
840 1152 0 40,0
|
||||
855 1141 0 39,8
|
||||
870 1129 0 39,6
|
||||
885 1117 0 39,4
|
||||
900 1105 0 39,1
|
||||
915 1092 0 38,9
|
||||
930 1078 0 38,6
|
||||
946 1064 0 38,4
|
||||
}
|
||||
} Ende Spaltengruppe
|
||||
} Ende Standard_Tafel
|
||||
|
||||
} Ende Schuss_Tafel
|
||||
|
||||
+82
@@ -0,0 +1,82 @@
|
||||
###########################################################################
|
||||
# #
|
||||
# Projekt:File "Moerser-60mm-Lad6.sus" zur Munition "60_mm_Splitter" #
|
||||
# #
|
||||
# Bei der Auspraegung des Ballistik-Moduls vereinbarte Bezeichnungen #
|
||||
# Tafel_Namen : ENTFERNUNG, AUFSATZ, FLUGZEIT, -- obligatorisch #
|
||||
# VORHALT -- projektspezifisch #
|
||||
# Param_Namen : DELTA_V0, LUFTTEMP, LUFTDRUCK, #
|
||||
# LAENGSWIND, QUERWIND, #
|
||||
# PULVERTEMP -- Korrektur-Parameter #
|
||||
# #
|
||||
###########################################################################
|
||||
|
||||
# Aenderung/Stand: 27.06.2024 - 07:04
|
||||
|
||||
Schuss_Tafel =
|
||||
{
|
||||
Munition = "60_mm_Splitter"
|
||||
Version = "60_mm_Splitter_Lad6"
|
||||
Muni_Parameter = { Kaliber = 60.0 Masse = 1.8 V0 = 200.0 }
|
||||
Std_Parameter = { DELTA_V0 = 0.0
|
||||
LUFTTEMP = 15.0
|
||||
LUFTDRUCK = 1013.25
|
||||
LAENGSWIND= 0.0
|
||||
QUERWIND = 0.0
|
||||
PULVERTEMP= 21.1 }
|
||||
Entfernung_Range= { Min = 100.0 Max = 17700.0 Delta = 100.0 Scheitel = 17785.0 }
|
||||
Ballistik = "Parabel"
|
||||
###########################################################################
|
||||
|
||||
Standard_Tafel =
|
||||
{
|
||||
Spaltengruppe =
|
||||
{ Belegung = { AUFSATZ = (2) [-]
|
||||
VORHALT = (3) [-]
|
||||
FLUGZEIT = (4)
|
||||
DELTA_RGE = (5) [-]
|
||||
DELTA_ELEV = (6)
|
||||
FORK = (7) [-]
|
||||
DRIFT = (8) [-]
|
||||
}
|
||||
Zeilenlaenge = 4
|
||||
Datenblock =
|
||||
{
|
||||
#
|
||||
# RGE ELEV TOF DELTA DELTA FORK BEARING-CORR. RANGE-CORR.
|
||||
# ENTF AUFSATZ VORHALT FLUGZEIT RGE ELEV DRIFT CW DEC INC
|
||||
# [m] [mil] [mil] [sec] [mil] [m] [mil] [mil] [mil] [m] [m]
|
||||
#
|
||||
690 1303 0 45,2
|
||||
705 1295 0 45,1
|
||||
720 1287 0 45,0
|
||||
735 1280 0 44,8
|
||||
750 1272 0 44,7
|
||||
765 1264 0 44,6
|
||||
780 1255 0 44,5
|
||||
795 1247 0 44,4
|
||||
810 1239 0 44,3
|
||||
825 1230 0 44,0
|
||||
840 1221 0 43,9
|
||||
855 1213 0 43,8
|
||||
870 1204 0 43,6
|
||||
885 1195 0 43,5
|
||||
900 1185 0 43,3
|
||||
915 1176 0 43,1
|
||||
930 1166 0 43,0
|
||||
945 1156 0 42,8
|
||||
960 1146 0 42,6
|
||||
975 1136 0 42,4
|
||||
990 1125 0 42,2
|
||||
1005 1114 0 42,0
|
||||
1020 1103 0 41,8
|
||||
1035 1091 0 41,6
|
||||
1050 1079 0 41,3
|
||||
1065 1067 0 41,0
|
||||
1083 1054 0 40,7
|
||||
}
|
||||
} Ende Spaltengruppe
|
||||
} Ende Standard_Tafel
|
||||
|
||||
} Ende Schuss_Tafel
|
||||
|
||||
+7
@@ -0,0 +1,7 @@
|
||||
Das Testprogramm läuft auf der Konsole und wird mit zssi_wi_Test gestartet.
|
||||
Es werden willkürliche transparente Daten verschickt.
|
||||
|
||||
Der Klasse GeoPairing hab ich eine weitere Membervariable mit dem Namen m_konfigPath hinzugefügt, die beim Erstellen des
|
||||
Objekts mit einem Konfigurationspfad gesetzt wird.
|
||||
|
||||
Die Munitionstypen unserer Zentrale sind im enum ammunitionType in zssiwi_service_base.hpp zu finden.
|
||||
+166
@@ -0,0 +1,166 @@
|
||||
###########################################################################
|
||||
# #
|
||||
# Projekt TES : File "SMK-BE-RED-RED-PHOSPH-M1-M64Base-TableE.sus" #
|
||||
# #
|
||||
# Bei der Auspraegung des Ballistik-Moduls vereinbarte Bezeichnungen #
|
||||
# Tafel_Namen : ENTFERNUNG, AUFSATZ, FLUGZEIT, -- obligatorisch #
|
||||
# VORHALT -- projektspezifisch #
|
||||
# Param_Namen : DELTA_V0, LUFTTEMP, LUFTDRUCK, #
|
||||
# LAENGSWIND, QUERWIND, #
|
||||
# PULVERTEMP -- Korrektur-Parameter #
|
||||
# #
|
||||
###########################################################################
|
||||
|
||||
# Aenderung/Stand: 09.07.14-07:52
|
||||
|
||||
Schuss_Tafel =
|
||||
{
|
||||
Munition = "SMK-BE-RED-PHOSPH-M1-M64Base"
|
||||
Version = "SMK BE RED PHOSPH M1 M64 Base Table-E"
|
||||
Muni_Parameter = { Kaliber = 155.0 Masse = 46.30 V0 = 912.0 }
|
||||
Std_Parameter = { DELTA_V0 = 0.0
|
||||
LUFTTEMP = 15.0
|
||||
LUFTDRUCK = 1013.25
|
||||
LAENGSWIND= 0.0
|
||||
QUERWIND = 0.0
|
||||
PULVERTEMP= 21.1 }
|
||||
Entfernung_Range= { Min = 4200.0 Max = 11800.0 Delta = 200.0 Scheitel = 11850.0 }
|
||||
Ballistik = "Parabel"
|
||||
###########################################################################
|
||||
|
||||
Standard_Tafel =
|
||||
{
|
||||
Spaltengruppe =
|
||||
{ Belegung = { AUFSATZ = (2) [-]
|
||||
VORHALT = (3) [-]
|
||||
FLUGZEIT = (4)
|
||||
DELTA_RGE = (5) [-]
|
||||
DELTA_ELEV = (6)
|
||||
FORK = (7) [-]
|
||||
DRIFT = (8) [-]
|
||||
}
|
||||
Zeilenlaenge = 8
|
||||
Datenblock =
|
||||
{
|
||||
#
|
||||
# RGE ELEV TOF DELTA DELTA FORK BEARING-CORR. RANGE-CORR.
|
||||
# ENTF AUFSATZ VORHALT FLUGZEIT RGE ELEV DRIFT CW DEC INC
|
||||
# [m] [mil] [mil] [sec] [mil] [m] [mil] [mil] [mil] [m] [m]
|
||||
#
|
||||
100 2.5 0 0.2 2.4 41 1 0.1 0 0.1 -0.1
|
||||
200 4.9 0 0.4 2.5 41 1 0.3 0.01 0.2 -0.2
|
||||
300 7.5 0 0.7 2.6 40 1 0.4 0.01 0.3 -0.3
|
||||
400 10 0 0.9 2.6 40 1 0.5 0.02 0.4 -0.5
|
||||
500 12.6 0 1.1 2.6 39 1 0.7 0.02 0.5 -0.6
|
||||
600 15.2 0 1.4 2.6 39 1 0.8 0.03 0.6 -0.7
|
||||
700 17.8 0 1.6 2.7 38 1 1 0.03 0.7 -0.8
|
||||
800 20.5 0 1.8 2.7 38 1 1.1 0.04 0.9 -0.9
|
||||
900 23.1 0 2.1 2.7 37 1 1.2 0.05 0.9 -1
|
||||
1000 25.9 0 2.3 2.8 37 1 1.4 0.05 1 -1.1
|
||||
1100 28.6 0 2.6 2.8 37 1 1.5 0.06 1.1 -1.2
|
||||
1200 31.4 0 2.8 2.8 36 1 1.6 0.06 1.2 -1.3
|
||||
1300 34.2 0 3.1 2.8 36 1 1.8 0.07 1.3 -1.4
|
||||
1400 37.1 0 3.3 2.9 35 1 1.9 0.07 1.4 -1.5
|
||||
1500 40 0 3.6 2.9 35 1 2.1 0.08 1.5 -1.6
|
||||
1600 42.9 0 3.8 3 34 1 2.2 0.08 1.6 -1.7
|
||||
1700 45.9 0 4.1 3 34 1 2.4 0.09 1.7 -1.8
|
||||
1800 48.9 0 4.3 3 34 1 2.5 0.09 1.8 -1.9
|
||||
1900 51.9 0 4.6 3 33 1 2.6 0.1 1.8 -2
|
||||
2000 55 0 4.8 3.1 33 2 2.8 0.1 2 -2.1
|
||||
2100 58.1 0 5.1 3.1 32 2 2.9 0.11 2.1 -2.2
|
||||
2200 61.2 0 5.4 3.2 32 2 3.1 0.12 2.1 -2.3
|
||||
2300 64.4 0 5.7 3.2 32 2 3.2 0.12 2.2 -2.4
|
||||
2400 67.6 0 5.9 3.3 31 2 3.4 0.13 2.3 -2.4
|
||||
2500 70.9 0 6.2 3.3 31 2 3.5 0.13 2.4 -2.5
|
||||
2600 74.2 0 6.5 3.3 31 2 3.7 0.14 2.5 -2.6
|
||||
2700 77.6 0 6.8 3.4 30 2 3.8 0.14 2.6 -2.7
|
||||
2800 81 0 7 3.4 30 2 4 0.15 2.7 -2.8
|
||||
2900 84.4 0 7.3 3.5 29 2 4.1 0.16 2.7 -2.9
|
||||
3000 87.9 0 7.6 3.5 29 2 4.3 0.16 2.8 -3
|
||||
3100 91.4 0 7.9 3.5 29 2 4.4 0.17 2.9 -3.1
|
||||
3200 95 0 8.2 3.6 28 2 4.6 0.17 3 -3.2
|
||||
3300 98.6 0 8.5 3.7 28 2 4.7 0.18 3 -3.3
|
||||
3400 102.3 0 8.8 3.7 28 2 4.9 0.19 3.1 -3.3
|
||||
3500 106 0 9.1 3.8 27 3 5.1 0.19 3.2 -3.4
|
||||
3600 109.8 0 9.4 3.8 27 3 5.2 0.2 3.3 -3.5
|
||||
3700 113.6 0 9.7 3.8 27 3 5.4 0.2 3.3 -3.5
|
||||
3800 117.4 0 10 3.9 26 3 5.5 0.21 3.4 -3.6
|
||||
3900 121.3 0 10.3 4 26 3 5.7 0.21 3.5 -3.7
|
||||
4000 125.3 0 10.6 3.9 26 3 5.9 0.22 3.5 -3.8
|
||||
4100 129.2 0 10.9 4 26 3 6 0.22 3.6 -3.8
|
||||
4200 207.1 0 11.3 2.4 25 3 6.2 0.23 3.6 -3.9
|
||||
4400 211.9 0 11.9 2.8 25 3 6.5 0.24 3.7 -4.0
|
||||
4600 217.4 0 12.5 2.9 24 3 6.8 0.25 3.8 -4.1
|
||||
4800 223.2 0 13.2 3.1 24 4 7.2 0.26 3.9 -4.2
|
||||
5000 229.3 0 13.8 3.2 23 4 7.5 0.27 4.0 -4.3
|
||||
5200 235.8 0 14.5 3.5 23 4 7.8 0.28 4.1 -4.4
|
||||
5400 242.7 0 15.2 3.7 23 4 8.1 0.29 4.2 -4.5
|
||||
5600 250.0 0 15.8 3.8 22 4 8.4 0.30 4.3 -4.6
|
||||
5800 257.5 0 16.5 3.9 22 5 8.8 0.30 4.4 -4.7
|
||||
6000 265.3 0 17.2 4.1 21 5 9.1 0.31 4.5 -4.8
|
||||
6200 273.5 0 17.9 4.3 21 5 9.4 0.32 4.6 -4.9
|
||||
6400 282.0 0 18.6 4.3 21 5 9.7 0.33 4.6 -5.0
|
||||
6600 290.6 0 19.3 4.5 20 6 10.0 0.34 4.7 -5.0
|
||||
6800 299.6 0 20.1 4.6 20 6 10.3 0.34 4.8 -5.1
|
||||
7000 308.8 0 20.8 4.8 19 6 10.5 0.35 4.8 -5.2
|
||||
7200 318.4 0 21.5 4.9 19 7 10.8 0.36 4.9 -5.3
|
||||
7400 328.2 0 22.3 5.0 19 7 11.1 0.37 5.0 -5.3
|
||||
7600 338.3 0 23.0 5.2 18 7 11.4 0.37 5.1 -5.4
|
||||
7800 348.7 0 23.8 5.4 18 7 11.6 0.38 5.1 -5.5
|
||||
8000 359.5 0 24.6 5.6 18 8 11.9 0.39 5.2 -5.6
|
||||
8200 370.6 0 25.4 5.8 17 8 12.2 0.40 5.3 -5.7
|
||||
8400 382.1 0 26.2 5.8 17 9 12.4 0.40 5.4 -5.7
|
||||
8600 393.8 0 27.1 6.1 16 9 12.7 0.41 5.4 -5.8
|
||||
8800 406.0 0 27.9 6.3 16 9 12.9 0.42 5.5 -5.9
|
||||
9000 418.6 0 28.8 6.6 16 10 13.2 0.43 5.6 -6.0
|
||||
9200 431.8 0 29.7 6.8 15 11 13.4 0.43 5.7 -6.0
|
||||
9400 445.5 0 30.6 6.9 15 11 13.7 0.44 5.7 -6.1
|
||||
9600 459.3 0 31.5 7.5 14 12 13.9 0.45 5.8 -6.2
|
||||
9800 474.3 0 32.5 7.8 13 13 14.1 0.46 5.9 -6.3
|
||||
10000 490.0 0 33.5 7.9 13 13 14.4 0.47 6.0 -6.3
|
||||
10200 505.8 0 34.5 8.7 13 14 14.6 0.48 6.1 -6.5
|
||||
10400 523.3 0 35.6 9.2 12 15 14.9 0.48 6.2 -6.6
|
||||
10600 541.7 0 36.8 9.5 12 16 15.2 0.49 6.3 -6.6
|
||||
10800 560.8 0 37.9 10.8 11 17 15.4 0.50 6.3 -6.7
|
||||
11000 582.4 0 39.2 11.9 10 19 15.8 0.51 6.4 -6.8
|
||||
11200 606.1 0 40.5 13.5 9 21 16.1 0.53 6.5 -6.9
|
||||
11400 633.1 0 42.0 15.6 8 24 16.6 0.54 6.6 -7.0
|
||||
11600 664.3 0 43.6 19.7 8 27 17.1 0.55 6.7 -7.1
|
||||
11800 703.7 0 45.4 48.2 6 34 17.8 0.57 6.8 -7.2
|
||||
11850 800.0 0 50.0 51.4 5 35 20.0 0.65 7.0 -7.4
|
||||
11800 902.8 0 60.5 19.9 6 35 33.9 0.76 7.0 -7.4
|
||||
11600 942.6 0 61.9 15.4 8 28 37.4 0.79 6.9 -7.3
|
||||
11400 973.4 0 63.0 13.0 9 24 40.9 0.82 6.8 -7.2
|
||||
11200 999.4 0 64.0 11.4 10 22 44.3 0.84 6.7 -7.1
|
||||
11000 1022.1 0 64.8 10.3 11 20 47.7 0.87 6.6 -7.0
|
||||
10800 1042.7 0 65.6 9.5 11 18 51.2 0.89 6.5 -6.9
|
||||
10600 1061.6 0 66.3 8.9 12 17 54.8 0.92 0.9 -6.8
|
||||
10400 1079.3 0 66.9 8.2 13 16 58.4 0.95 1.0 -6.7
|
||||
10200 1095.8 0 67.5 7.8 14 15 62.1 0.97 1.0 -6.6
|
||||
10000 1111.4 0 68.1 7.5 14 14 65.9 1.00 1.0 -6.5
|
||||
9800 1126.3 0 68.6 7.2 15 13 69.8 1.03 1.0 -6.3
|
||||
9600 1140.6 0 69.1 6.8 15 13 73.7 1.06 1.1 -6.2
|
||||
9400 1154.2 0 69.5 6.6 16 12 77.8 1.09 1.1 -6.1
|
||||
9200 1167.4 0 70.0 6.3 17 12 81.9 1.12 1.1 -6.0
|
||||
9000 1180.0 0 70.4 6.1 17 11 86.0 1.15 1.2 -5.9
|
||||
8800 1192.3 0 70.8 5.9 18 11 90.2 1.18 1.2 -5.7
|
||||
8600 1204.2 0 71.1 5.7 18 10 94.5 1.22 1.2 -5.6
|
||||
8400 1215.6 0 71.5 5.6 19 10 98.6 1.26 1.3 -5.5
|
||||
8200 1226.8 0 71.8 5.5 19 10 102.7 1.30 1.3 -5.3
|
||||
8000 1237.7 0 72.1 5.3 20 9 106.7 1.34 1.3 -5.2
|
||||
7800 1248.2 0 72.5 5.2 20 9 110.5 1.39 4.8 -5.1
|
||||
7600 1258.6 0 72.7 5.0 21 9 113.9 1.43 4.7 -5.0
|
||||
7400 1268.5 0 73.0 4.9 21 8 117.0 1.49 4.5 -4.9
|
||||
7200 1278.3 0 73.3 4.8 22 8 120.5 1.54 4.5 -4.7
|
||||
7000 1288.0 0 73.6 4.8 22 8 124.1 1.60 4.3 -4.6
|
||||
6800 1297.6 0 73.8 4.8 21 8 127.2 1.66 4.2 -4.5
|
||||
6600 1307.2 0 74.0 4.9 21 8 130.1 1.72 4.1 -4.3
|
||||
6400 1317.0 0 74.2 4.8 21 8 132.6 1.78 4.0 -4.2
|
||||
6200 1326.6 0 74.4 4.8 22 8 134.7 1.85 3.8 -4.1
|
||||
6000 1336.2 0 74.6 -668.1 22 7 136.8 1.92 3.7 -4.0
|
||||
}
|
||||
} Ende Spaltengruppe
|
||||
} Ende Standard_Tafel
|
||||
|
||||
} Ende Schuss_Tafel
|
||||
|
||||
+208
@@ -0,0 +1,208 @@
|
||||
###########################################################################
|
||||
# #
|
||||
# Projekt TES : File "SMK-BE-RED-RED-PHOSPH-M1-M64Incr3-TableE.sus" #
|
||||
# #
|
||||
# Bei der Auspraegung des Ballistik-Moduls vereinbarte Bezeichnungen #
|
||||
# Tafel_Namen : ENTFERNUNG, AUFSATZ, FLUGZEIT, -- obligatorisch #
|
||||
# VORHALT -- projektspezifisch #
|
||||
# Param_Namen : DELTA_V0, LUFTTEMP, LUFTDRUCK, #
|
||||
# LAENGSWIND, QUERWIND, #
|
||||
# PULVERTEMP -- Korrektur-Parameter #
|
||||
# #
|
||||
###########################################################################
|
||||
|
||||
# Aenderung/Stand: 09.07.14-07:52
|
||||
|
||||
Schuss_Tafel =
|
||||
{
|
||||
Munition = "SMK-BE-RED-PHOSPH-M1-M64Incr3"
|
||||
Version = "SMK BE RED PHOSPH M1 M64 Incr3 Table-E"
|
||||
Muni_Parameter = { Kaliber = 155.0 Masse = 46.30 V0 = 912.0 }
|
||||
Std_Parameter = { DELTA_V0 = 0.0
|
||||
LUFTTEMP = 15.0
|
||||
LUFTDRUCK = 1013.25
|
||||
LAENGSWIND= 0.0
|
||||
QUERWIND = 0.0
|
||||
PULVERTEMP= 21.1 }
|
||||
Entfernung_Range= { Min = 5600.0 Max = 17400.0 Delta = 200.0 Scheitel = 17450.0 }
|
||||
Ballistik = "Parabel"
|
||||
###########################################################################
|
||||
|
||||
Standard_Tafel =
|
||||
{
|
||||
Spaltengruppe =
|
||||
{ Belegung = { AUFSATZ = (2) [-]
|
||||
VORHALT = (3) [-]
|
||||
FLUGZEIT = (4)
|
||||
DELTA_RGE = (5) [-]
|
||||
DELTA_ELEV = (6)
|
||||
FORK = (7) [-]
|
||||
DRIFT = (8) [-]
|
||||
}
|
||||
Zeilenlaenge = 8
|
||||
Datenblock =
|
||||
{
|
||||
#
|
||||
# RGE ELEV TOF DELTA DELTA FORK BEARING-CORR. RANGE-CORR.
|
||||
# ENTF AUFSATZ VORHALT FLUGZEIT RGE ELEV DRIFT CW DEC INC
|
||||
# [m] [mil] [mil] [sec] [mil] [m] [mil] [mil] [mil] [m] [m]
|
||||
#
|
||||
100 1.3 0 0.2 1.4 76 1 0.1 0.00 0.1 -0.2
|
||||
200 2.7 0 0.3 1.4 75 1 0.2 0.01 0.2 -0.5
|
||||
300 4.0 0 0.5 1.4 74 1 0.3 0.01 0.4 -0.8
|
||||
400 5.4 0 0.7 1.3 74 1 0.4 0.01 0.5 -1.0
|
||||
500 6.7 0 0.8 1.4 73 1 0.5 0.01 0.6 -1.2
|
||||
600 8.1 0 1.0 1.4 72 1 0.6 0.02 0.7 -1.5
|
||||
700 9.5 0 1.2 1.4 72 1 0.7 0.02 0.9 -1.8
|
||||
800 10.9 0 1.3 1.4 71 1 0.8 0.02 1.0 -2.0
|
||||
900 12.4 0 1.5 1.5 70 1 0.9 0.03 1.1 -2.2
|
||||
1000 13.8 0 1.7 1.5 70 1 1.0 0.03 1.2 -2.5
|
||||
1100 15.3 0 1.9 1.5 69 1 1.1 0.03 1.4 -2.7
|
||||
1200 16.7 0 2.0 1.5 68 1 1.2 0.03 1.4 -2.9
|
||||
1300 18.2 0 2.2 1.5 68 1 1.3 0.04 1.6 -3.2
|
||||
1400 19.7 0 2.4 1.5 67 1 1.4 0.04 1.7 -3.4
|
||||
1500 21.2 0 2.6 1.5 67 1 1.6 0.04 1.8 -3.6
|
||||
1600 22.7 0 2.8 1.5 66 1 1.7 0.05 1.9 -3.9
|
||||
1700 24.3 0 3.0 1.5 65 1 1.8 0.05 2.0 -4.1
|
||||
1800 25.8 0 3.1 1.6 65 1 1.9 0.05 2.1 -4.3
|
||||
1900 27.4 0 3.3 1.6 64 1 2.0 0.06 2.3 -4.6
|
||||
2000 28.9 0 3.5 1.6 64 1 2.1 0.06 2.4 -4.8
|
||||
2100 30.5 0 3.7 1.6 63 1 2.2 0.06 2.5 -5.0
|
||||
2200 32.1 0 3.9 1.6 62 1 2.3 0.07 2.6 -5.2
|
||||
2300 33.8 0 4.1 1.7 62 1 2.4 0.07 2.7 -5.4
|
||||
2400 35.4 0 4.3 1.6 61 1 2.5 0.07 2.8 -5.6
|
||||
2500 37.1 0 4.5 1.6 61 1 2.6 0.08 3.0 -5.9
|
||||
2600 38.7 0 4.7 1.7 60 1 2.7 0.08 3.1 -6.1
|
||||
2700 40.4 0 4.9 1.7 59 1 2.8 0.08 3.2 -6.3
|
||||
2800 42.1 0 5.1 1.8 59 1 2.9 0.09 3.3 -6.5
|
||||
2900 43.9 0 5.3 1.8 58 1 3.0 0.09 3.4 -6.7
|
||||
3000 45.6 0 5.5 1.7 58 1 3.2 0.09 3.5 -6.9
|
||||
3100 47.3 0 5.7 1.8 57 1 3.3 0.10 3.6 -7.2
|
||||
3200 49.1 0 5.9 1.8 57 2 3.4 0.10 3.7 -7.4
|
||||
3300 50.9 0 6.1 1.8 56 2 3.5 0.10 3.8 -7.6
|
||||
3400 52.7 0 6.3 1.8 55 2 3.6 0.11 3.9 -7.8
|
||||
3500 54.6 0 6.5 1.9 55 2 3.7 0.11 4.0 -7.9
|
||||
3600 56.4 0 6.7 1.9 54 2 3.8 0.11 4.0 -8.2
|
||||
3700 58.3 0 6.9 1.8 54 2 3.9 0.12 4.2 -8.4
|
||||
3800 60.1 0 7.1 1.9 53 2 4.0 0.12 4.2 -8.6
|
||||
3900 62.1 0 7.3 2.0 53 2 4.1 0.12 4.4 -8.8
|
||||
4000 64.0 0 7.5 1.9 52 2 4.2 0.13 4.4 -8.9
|
||||
4100 65.9 0 7.8 2.0 52 2 4.4 0.13 4.6 -9.1
|
||||
4200 67.9 0 8.0 2.0 51 2 4.5 0.13 4.6 -9.3
|
||||
4300 69.9 0 8.2 2.0 51 2 4.6 0.14 4.7 -9.5
|
||||
4400 71.9 0 8.4 2.0 50 2 4.7 0.14 4.8 -9.6
|
||||
4500 73.9 0 8.6 2.0 50 2 4.8 0.15 4.9 -9.9
|
||||
4600 75.9 0 8.9 2.0 49 2 4.9 0.15 5.0 -10.0
|
||||
4700 78.0 0 9.1 2.1 49 2 5.0 0.15 5.1 -10.3
|
||||
4800 80.1 0 9.3 2.1 48 2 5.1 0.16 5.2 -10.4
|
||||
4900 82.2 0 9.6 2.2 48 2 5.2 0.16 5.3 -10.6
|
||||
5000 84.4 0 9.8 2.2 47 2 5.4 0.16 5.4 -10.7
|
||||
5100 86.5 0 10.0 2.1 47 2 5.5 0.17 5.5 -11.0
|
||||
5200 88.7 0 10.3 2.2 46 2 5.6 0.17 5.6 -11.1
|
||||
5300 90.9 0 10.5 2.2 46 2 5.7 0.18 5.6 -11.3
|
||||
5400 93.1 0 10.7 2.3 45 2 5.8 0.18 5.7 -11.4
|
||||
5600 152.7 0 11.2 2.3 44 2 6.0 0.19 5.9 -11.7
|
||||
5800 155.5 0 11.7 2.3 43 3 6.3 0.20 6.1 -12.0
|
||||
6000 158.6 0 12.2 2.4 42 3 6.5 0.20 6.2 -12.3
|
||||
6200 161.9 0 12.7 2.5 41 3 6.7 0.21 6.4 -12.7
|
||||
6400 165.3 0 13.3 2.5 40 3 6.9 0.22 6.5 -13.0
|
||||
6600 169.0 0 13.8 2.6 40 3 7.2 0.23 6.7 -13.3
|
||||
6800 172.8 0 14.3 2.6 39 3 7.4 0.24 6.9 -13.7
|
||||
7000 176.8 0 14.9 2.7 38 3 7.6 0.25 7.0 -14.0
|
||||
7200 181.0 0 15.4 2.8 37 3 7.9 0.26 7.2 -14.2
|
||||
7400 185.5 0 16.0 2.8 36 4 8.1 0.26 7.3 -14.5
|
||||
7600 190.0 0 16.6 2.8 35 4 8.3 0.27 7.5 -14.8
|
||||
7800 194.9 0 17.1 3.0 34 4 8.5 0.28 7.6 -15.1
|
||||
8000 199.9 0 17.7 3.0 34 4 8.8 0.29 7.7 -15.3
|
||||
8200 205.1 0 18.3 3.1 33 4 9.0 0.30 7.9 -15.7
|
||||
8400 210.5 0 19.0 3.2 32 4 9.2 0.31 8.0 -16.0
|
||||
8600 216.1 0 19.6 3.3 31 5 9.5 0.32 8.2 -16.2
|
||||
8800 221.8 0 20.2 3.3 31 5 9.7 0.33 8.3 -16.4
|
||||
9000 227.8 0 20.8 3.4 30 5 9.9 0.34 8.4 -16.7
|
||||
9200 234.0 0 21.5 3.5 29 5 10.1 0.35 8.5 -17.0
|
||||
9400 240.3 0 22.1 3.5 29 5 10.4 0.36 8.6 -17.2
|
||||
9600 246.8 0 22.8 3.6 28 6 10.6 0.36 8.8 -17.4
|
||||
9800 253.4 0 23.4 3.7 28 6 10.8 0.37 8.9 -17.6
|
||||
10000 260.4 0 24.1 3.8 27 6 11.0 0.38 9.0 -17.8
|
||||
10200 267.4 0 24.8 3.8 27 6 11.3 0.39 9.1 -18.0
|
||||
10400 274.6 0 25.5 3.9 26 7 11.5 0.40 9.2 -18.2
|
||||
10600 282.0 0 26.2 4.0 26 7 11.7 0.41 9.3 -18.4
|
||||
10800 289.6 0 26.9 4.1 25 7 11.9 0.41 9.4 -18.7
|
||||
11000 297.3 0 27.6 4.1 25 7 12.1 0.42 9.5 -18.8
|
||||
11200 305.3 0 28.3 4.3 24 8 12.3 0.43 9.6 -19.0
|
||||
11400 313.5 0 29.0 4.4 24 8 12.5 0.44 9.7 -19.3
|
||||
11600 321.9 0 29.7 4.4 23 8 12.7 0.45 9.8 -19.4
|
||||
11800 330.4 0 30.5 4.5 23 9 12.8 0.45 9.9 -19.7
|
||||
12000 339.1 0 31.2 4.5 23 9 13.0 0.46 10.0 -19.7
|
||||
12200 347.9 0 32.0 4.7 22 9 13.2 0.47 10.0 -19.9
|
||||
12400 357.1 0 32.7 4.8 21 10 13.3 0.48 10.2 -20.1
|
||||
12600 366.5 0 33.5 4.9 21 10 13.5 0.48 10.2 -20.3
|
||||
12800 376.1 0 34.3 4.9 21 10 13.7 0.49 10.3 -20.5
|
||||
13000 385.8 0 35.1 5.1 20 11 13.8 0.50 10.4 -20.7
|
||||
13200 395.9 0 35.9 5.2 20 11 14.0 0.51 10.5 -20.8
|
||||
13400 406.2 0 36.7 5.3 19 12 14.1 0.51 10.6 -21.0
|
||||
13600 416.6 0 37.6 5.4 19 12 14.2 0.52 10.7 -21.1
|
||||
13800 427.3 0 38.4 5.5 19 12 14.4 0.53 10.7 -21.3
|
||||
14000 438.4 0 39.3 5.7 18 13 14.5 0.54 10.8 -21.5
|
||||
14200 449.6 0 40.2 5.8 18 14 14.6 0.54 10.9 -21.7
|
||||
14400 461.4 0 41.1 6.1 17 14 14.7 0.55 11.0 -21.8
|
||||
14600 473.7 0 42.0 6.2 17 15 14.9 0.56 11.1 -22.0
|
||||
14800 485.9 0 42.9 6.2 17 15 15.0 0.56 11.2 -22.1
|
||||
15000 498.6 0 43.9 6.5 16 16 15.1 0.57 11.3 -22.3
|
||||
15200 512.1 0 44.9 6.8 15 17 15.2 0.58 11.3 -22.4
|
||||
15400 525.8 0 45.9 6.8 15 17 15.4 0.59 11.4 -22.7
|
||||
15600 539.8 0 46.9 7.2 15 18 15.5 0.59 11.5 -22.8
|
||||
15800 554.6 0 48.0 7.4 14 19 15.7 0.60 11.6 -23.0
|
||||
16000 570.2 0 49.1 7.8 13 20 15.9 0.61 11.6 -23.1
|
||||
16200 586.7 0 50.2 8.2 13 22 16.0 0.62 11.8 -23.4
|
||||
16400 604.4 0 51.4 8.7 12 24 16.3 0.62 12.0 -23.8
|
||||
16600 623.6 0 52.7 9.4 11 26 16.6 0.63 12.1 -24.0
|
||||
16800 644.6 0 54.1 10.2 10 28 16.9 0.64 12.3 -24.3
|
||||
17000 668.4 0 55.6 11.3 9 32 17.3 0.65 12.4 -24.6
|
||||
17200 696.2 0 57.3 13.0 8 37 17.9 0.67 12.6 -25.0
|
||||
17400 732.4 0 59.2 15.8 7 45 18.7 0.68 12.8 -25.4
|
||||
17450 850.0 0 65.0 15.9 6 47 25.0 0.75 13.5 -26.7
|
||||
17400 894.6 0 74.2 15.1 7 45 34.5 0.84 13.4 -26.6
|
||||
17200 929.1 0 75.7 12.0 9 36 38.2 0.87 13.3 -26.5
|
||||
17000 955.4 0 77.0 10.3 10 31 41.7 0.89 13.2 -26.3
|
||||
16800 977.3 0 78.1 9.1 11 27 45.0 0.91 13.1 -26.1
|
||||
16600 996.5 0 79.1 8.3 13 25 48.4 0.93 13.0 -25.9
|
||||
16400 1013.7 0 79.9 7.6 14 23 51.7 0.95 12.8 -25.7
|
||||
16200 1029.4 0 80.7 7.1 15 21 55.1 0.97 12.7 -25.4
|
||||
16000 1044.1 0 81.5 6.7 15 20 58.5 0.99 12.6 -25.1
|
||||
15800 1057.7 0 82.1 6.3 16 18 62.0 1.01 12.5 -24.9
|
||||
15600 1070.6 0 82.8 5.9 17 17 65.4 1.03 12.4 -24.7
|
||||
15400 1082.7 0 83.4 5.8 18 17 68.9 1.05 12.2 -24.4
|
||||
15200 1094.3 0 83.9 5.5 19 16 72.5 1.07 12.1 -24.2
|
||||
15000 1105.5 0 84.5 5.3 19 15 76.1 1.09 12.0 -23.9
|
||||
14800 1116.2 0 85.0 5.1 20 14 79.7 1.11 11.8 -23.6
|
||||
14600 1126.4 0 85.5 4.8 21 14 83.4 1.13 11.6 -23.4
|
||||
14400 1136.3 0 85.9 4.7 22 13 87.1 1.15 11.5 -23.1
|
||||
14200 1145.8 0 86.3 4.6 22 13 90.9 1.17 11.4 -22.8
|
||||
14000 1155.1 0 86.8 4.5 23 12 94.6 1.20 11.3 -22.5
|
||||
13800 1164.1 0 87.2 4.3 24 12 98.5 1.22 11.1 -22.3
|
||||
13600 1172.8 0 87.5 4.2 24 12 102.3 1.24 11.0 -22.0
|
||||
13400 1181.4 0 87.9 4.2 25 11 106.2 1.27 10.8 -21.7
|
||||
13200 1189.8 0 88.3 4.0 25 11 110.1 1.29 10.7 -21.3
|
||||
13000 1197.9 0 88.6 4.0 26 11 113.9 1.32 10.5 -21.0
|
||||
12800 1265.9 0 88.9 3.8 26 10 117.7 1.35 10.3 -20.7
|
||||
12600 1213.7 0 89.3 3.8 27 10 121.5 1.37 10.2 -20.4
|
||||
12400 1221.3 0 89.6 3.7 28 10 125.2 1.40 10.0 -20.1
|
||||
12200 1228.8 0 89.9 3.7 28 10 128.9 1.43 9.8 -19.7
|
||||
12000 1236.1 0 90.2 3.5 29 9 132.4 1.46 9.7 -19.5
|
||||
11800 1243.2 0 90.5 3.5 29 9 135.7 1.49 9.5 -19.1
|
||||
11600 1250.2 0 90.7 3.4 30 9 138.7 1.53 9.3 -18.8
|
||||
11400 1257.0 0 91.0 3.4 30 9 141.7 1.56 9.2 -18.4
|
||||
11200 1263.8 0 91.2 3.3 31 9 145.0 1.60 9.0 -18.1
|
||||
11000 1270.5 0 91.5 3.3 31 8 148.5 1.64 8.9 -17.8
|
||||
10800 1277.0 0 91.7 3.3 31 8 151.9 1.68 8.7 -17.5
|
||||
10600 1283.6 0 92.0 3.3 31 8 155.2 1.72 8.6 -17.3
|
||||
10400 1290.2 0 92.2 3.3 31 8 158.3 1.76 8.5 -17.0
|
||||
10200 1296.8 0 92.4 3.3 31 8 161.0 1.80 8.4 -16.7
|
||||
10000 1303.4 0 92.6 3.2 31 8 163.5 1.84 8.2 -16.4
|
||||
}
|
||||
} Ende Spaltengruppe
|
||||
} Ende Standard_Tafel
|
||||
|
||||
} Ende Schuss_Tafel
|
||||
|
||||
+259
@@ -0,0 +1,259 @@
|
||||
###########################################################################
|
||||
# #
|
||||
# Projekt TES : File "SMK-BE-RED-RED-PHOSPH-M1-M64Incr4-TableE.sus" #
|
||||
# #
|
||||
# Bei der Auspraegung des Ballistik-Moduls vereinbarte Bezeichnungen #
|
||||
# Tafel_Namen : ENTFERNUNG, AUFSATZ, FLUGZEIT, -- obligatorisch #
|
||||
# VORHALT -- projektspezifisch #
|
||||
# Param_Namen : DELTA_V0, LUFTTEMP, LUFTDRUCK, #
|
||||
# LAENGSWIND, QUERWIND, #
|
||||
# PULVERTEMP -- Korrektur-Parameter #
|
||||
# #
|
||||
###########################################################################
|
||||
|
||||
# Aenderung/Stand: 09.07.14-07:52
|
||||
|
||||
Schuss_Tafel =
|
||||
{
|
||||
Munition = "SMK-BE-RED-PHOSPH-M1-M64Incr4"
|
||||
Version = "SMK BE RED PHOSPH M1 M64 Incr4 Table-E"
|
||||
Muni_Parameter = { Kaliber = 155.0 Masse = 46.30 V0 = 912.0 }
|
||||
Std_Parameter = { DELTA_V0 = 0.0
|
||||
LUFTTEMP = 15.0
|
||||
LUFTDRUCK = 1013.25
|
||||
LAENGSWIND= 0.0
|
||||
QUERWIND = 0.0
|
||||
PULVERTEMP= 21.1 }
|
||||
Entfernung_Range= { Min = 7800.0 Max = 23800.0 Delta = 200.0 Scheitel = 23850.0 }
|
||||
Ballistik = "Parabel"
|
||||
###########################################################################
|
||||
|
||||
Standard_Tafel =
|
||||
{
|
||||
Spaltengruppe =
|
||||
{ Belegung = { AUFSATZ = (2) [-]
|
||||
VORHALT = (3) [-]
|
||||
FLUGZEIT = (4)
|
||||
DELTA_RGE = (5) [-]
|
||||
DELTA_ELEV = (6)
|
||||
FORK = (7) [-]
|
||||
DRIFT = (8) [-]
|
||||
}
|
||||
Zeilenlaenge = 8
|
||||
Datenblock =
|
||||
{
|
||||
#
|
||||
# RGE ELEV TOF DELTA DELTA FORK BEARING-CORR. RANGE-CORR.
|
||||
# ENTF AUFSATZ VORHALT FLUGZEIT RGE ELEV DRIFT CW DEC INC
|
||||
# [m] [mil] [mil] [sec] [mil] [m] [mil] [mil] [mil] [m] [m]
|
||||
#
|
||||
100 0.8 0 0.1 0.9 119 1 0.1 0.00 0.1 -0.3
|
||||
200 1.7 0 0.3 0.9 118 1 0.1 0.00 0.3 -0.4
|
||||
300 2.5 0 0.4 0.9 117 1 0.2 0.01 0.5 -0.7
|
||||
400 3.4 0 0.5 0.9 116 1 0.2 0.01 0.7 -1.0
|
||||
500 4.3 0 0.7 0.8 115 1 0.3 0.01 0.8 -1.3
|
||||
600 5.1 0 0.8 0.8 114 1 0.3 0.01 1.0 -1.4
|
||||
700 6.0 0 0.9 0.9 114 1 0.4 0.01 1.2 -1.7
|
||||
800 6.9 0 1.1 0.9 113 1 0.5 0.02 1.3 -2.0
|
||||
900 7.8 0 1.2 0.9 112 1 0.5 0.02 1.5 -2.2
|
||||
1000 8.7 0 1.3 0.9 111 1 0.6 0.02 1.6 -2.5
|
||||
1100 9.6 0 1.5 0.9 110 1 0.6 0.02 1.8 -2.8
|
||||
1200 10.5 0 1.6 0.9 109 1 0.7 0.02 1.9 -3.0
|
||||
1300 11.5 0 1.8 0.9 108 1 0.8 0.03 2.1 -3.1
|
||||
1400 12.4 0 1.9 0.9 108 1 0.8 0.03 2.3 -3.4
|
||||
1500 13.3 0 2.0 1.0 107 1 0.9 0.03 2.4 -3.6
|
||||
1600 14.3 0 2.2 0.9 106 1 0.9 0.03 2.5 -3.8
|
||||
1700 15.2 0 2.3 1.0 105 1 1.0 0.03 2.6 -4.0
|
||||
1800 16.2 0 2.5 1.0 104 1 1.1 0.04 2.7 -4.1
|
||||
1900 17.2 0 2.6 0.9 103 1 1.1 0.04 2.9 -4.4
|
||||
2000 18.1 0 2.8 0.9 102 1 1.2 0.04 3.0 -4.6
|
||||
2100 19.1 0 2.9 1.0 102 1 1.2 0.04 3.2 -4.8
|
||||
2200 20.1 0 3.1 1.0 101 1 1.3 0.05 3.3 -4.9
|
||||
2300 21.1 0 3.2 1.0 100 1 1.4 0.05 3.4 -5.1
|
||||
2400 22.1 0 3.4 1.0 99 1 1.4 0.05 3.5 -5.3
|
||||
2500 23.1 0 3.5 1.1 98 1 1.5 0.05 3.7 -5.6
|
||||
2600 24.2 0 3.7 1.1 98 1 1.6 0.05 3.8 -5.8
|
||||
2700 25.2 0 3.8 1.0 97 1 1.6 0.06 4.0 -5.9
|
||||
2800 26.2 0 4.0 1.0 96 1 1.7 0.06 4.1 -6.1
|
||||
2900 27.3 0 4.1 1.1 95 1 1.8 0.06 4.2 -6.3
|
||||
3000 28.4 0 4.3 1.1 94 1 1.8 0.06 4.4 -6.6
|
||||
3100 29.4 0 4.4 1.1 94 1 1.9 0.07 4.5 -6.7
|
||||
3200 30.5 0 4.6 1.1 93 1 1.9 0.07 4.6 -6.9
|
||||
3300 31.6 0 4.8 1.1 92 1 2.0 0.07 4.7 -7.1
|
||||
3400 32.7 0 4.9 1.1 91 1 2.1 0.07 4.9 -7.3
|
||||
3500 33.8 0 5.1 1.1 91 1 2.1 0.07 5.0 -7.5
|
||||
3600 34.9 0 5.2 1.1 90 1 2.2 0.08 5.2 -7.6
|
||||
3700 36.0 0 5.4 1.1 89 1 2.3 0.08 5.3 -7.8
|
||||
3800 37.2 0 5.6 1.1 88 1 2.3 0.08 5.4 -8.1
|
||||
3900 38.3 0 5.7 1.1 87 1 2.4 0.08 5.6 -8.3
|
||||
4000 39.5 0 5.9 1.1 87 1 2.5 0.09 5.7 -8.5
|
||||
4100 40.6 0 6.1 1.1 86 1 2.6 0.09 5.8 -8.6
|
||||
4200 41.8 0 6.2 1.2 85 1 2.6 0.09 6.0 -8.8
|
||||
4300 43.0 0 6.4 1.2 85 1 2.7 0.09 6.1 -9.0
|
||||
4400 44.2 0 6.6 1.2 84 2 2.8 0.10 6.1 -9.2
|
||||
4500 45.4 0 6.7 1.2 83 2 2.8 0.10 6.3 -9.4
|
||||
4600 46.6 0 6.9 1.2 82 2 2.9 0.10 6.4 -9.5
|
||||
4700 47.8 0 7.1 1.3 82 2 3.0 0.10 6.6 -9.7
|
||||
4800 49.1 0 7.3 1.3 81 2 3.0 0.11 6.6 -9.9
|
||||
4900 50.3 0 7.4 1.3 80 2 3.1 0.11 6.7 -10.1
|
||||
5000 51.6 0 7.6 1.3 80 2 3.2 0.11 6.8 -10.3
|
||||
5100 52.9 0 7.8 1.3 79 2 3.3 0.11 6.9 -10.4
|
||||
5200 54.1 0 8.0 1.3 78 2 3.3 0.12 7.1 -10.6
|
||||
5300 55.4 0 8.1 1.3 77 2 3.4 0.12 7.2 -10.8
|
||||
5400 56.7 0 8.3 1.3 77 2 3.5 0.12 7.3 -10.9
|
||||
5500 58.1 0 8.5 1.4 76 2 3.5 0.12 7.4 -11.1
|
||||
5600 59.4 0 8.7 1.3 75 2 3.6 0.13 7.5 -11.2
|
||||
5700 60.7 0 8.9 1.3 75 2 3.7 0.13 7.7 -11.4
|
||||
5800 62.1 0 9.1 1.4 74 2 3.8 0.13 7.8 -11.6
|
||||
5900 63.4 0 9.2 1.4 73 2 3.8 0.14 7.8 -11.7
|
||||
6000 64.8 0 9.4 1.4 73 2 3.9 0.14 8.0 -11.9
|
||||
6100 66.2 0 9.6 1.4 72 2 4.0 0.14 8.1 -12.1
|
||||
6200 67.6 0 9.8 1.4 71 2 4.1 0.14 8.2 -12.2
|
||||
6300 69.0 0 10.0 1.5 71 2 4.1 0.15 8.3 -12.4
|
||||
6400 70.5 0 10.2 1.5 70 2 4.2 0.15 8.5 -12.6
|
||||
6500 71.9 0 10.4 1.5 70 2 4.3 0.15 8.5 -12.7
|
||||
6600 73.4 0 10.6 1.5 69 2 4.4 0.15 8.6 -12.9
|
||||
6700 74.8 0 10.8 1.5 68 2 4.4 0.16 8.8 -13.0
|
||||
6800 76.3 0 11.0 1.5 68 2 4.5 0.16 8.9 -13.1
|
||||
6900 77.8 0 11.2 1.5 67 2 4.6 0.16 8.9 -13.3
|
||||
7000 79.3 0 11.4 1.5 66 2 4.7 0.17 9.1 -13.4
|
||||
7100 80.8 0 11.6 1.5 66 2 4.7 0.17 9.2 -13.6
|
||||
7200 82.4 0 11.8 1.5 65 2 4.8 0.17 9.2 -13.8
|
||||
7300 83.9 0 12.0 1.5 65 2 4.9 0.17 9.4 -13.9
|
||||
7400 85.5 0 12.2 1.6 64 2 5.0 0.18 9.5 -14.0
|
||||
7500 87.1 0 12.4 1.6 63 2 5.1 0.18 9.5 -14.2
|
||||
7600 88.7 0 12.6 1.6 63 2 5.1 0.18 9.7 -14.4
|
||||
7700 90.3 0 12.8 1.6 62 2 5.2 0.19 9.7 -14.5
|
||||
7800 131.20 0 13.1 1.2 62 2 5.3 0.19 9.9 -14.7
|
||||
8000 133.50 0 13.5 1.3 60 3 5.4 0.20 10.0 -14.9
|
||||
8200 136.00 0 13.9 1.3 59 3 5.6 0.20 10.3 -15.2
|
||||
8400 138.60 0 14.4 1.3 58 3 5.8 0.21 10.5 -15.5
|
||||
8600 141.20 0 14.8 1.4 57 3 5.9 0.21 10.6 -15.7
|
||||
8800 144.00 0 15.3 1.4 56 3 6.1 0.22 10.8 -16.0
|
||||
9000 146.80 0 15.7 1.5 55 3 6.3 0.23 10.9 -16.3
|
||||
9200 149.80 0 16.2 1.6 54 3 6.4 0.23 11.1 -16.6
|
||||
9400 152.90 0 16.7 1.6 53 3 6.6 0.24 11.3 -16.8
|
||||
9600 156.10 0 17.1 1.6 52 3 6.8 0.25 11.5 -17.1
|
||||
9800 159.30 0 17.6 1.7 51 3 7.0 0.25 11.7 -17.4
|
||||
10000 162.70 0 18.1 1.8 50 3 7.1 0.26 11.8 -17.5
|
||||
10200 166.20 0 18.6 1.8 49 4 7.3 0.27 12.0 -17.8
|
||||
10400 169.80 0 19.1 1.9 48 4 7.5 0.27 12.2 -18.1
|
||||
10600 173.50 0 19.6 1.9 47 4 7.7 0.28 12.3 -18.4
|
||||
10800 177.30 0 20.2 2.0 46 4 7.9 0.29 12.5 -18.5
|
||||
11000 181.20 0 20.7 2.0 45 4 8.0 0.29 12.7 -18.8
|
||||
11200 185.20 0 21.2 2.1 44 4 8.2 0.30 12.8 -19.1
|
||||
11400 189.30 0 21.8 2.2 43 4 8.4 0.31 13.0 -19.3
|
||||
11600 193.60 0 22.3 2.2 43 4 8.6 0.31 13.1 -19.5
|
||||
11800 197.90 0 22.9 2.3 42 5 8.8 0.32 13.3 -19.7
|
||||
12000 202.40 0 23.5 2.3 41 5 9.0 0.33 13.4 -19.9
|
||||
12200 207.00 0 24.0 2.4 40 5 9.2 0.34 13.6 -20.2
|
||||
12400 211.70 0 24.6 2.4 39 5 9.4 0.34 13.7 -20.3
|
||||
12600 216.50 0 25.2 2.5 39 5 9.6 0.35 13.9 -20.6
|
||||
12800 221.40 0 25.8 2.5 38 5 9.8 0.36 14.1 -20.9
|
||||
13000 226.40 0 26.4 2.6 37 6 10.0 0.37 14.2 -21.1
|
||||
13200 231.60 0 27.0 2.7 36 6 10.2 0.37 14.4 -21.3
|
||||
13400 236.90 0 27.7 2.7 36 6 10.4 0.38 14.5 -21.5
|
||||
13600 242.30 0 28.3 2.8 35 6 10.6 0.39 14.7 -21.7
|
||||
13800 247.90 0 28.9 2.8 34 6 10.8 0.40 14.8 -21.9
|
||||
14000 253.40 0 29.6 2.9 34 7 11.1 0.40 15.0 -22.1
|
||||
14200 259.20 0 30.2 3.0 33 7 11.3 0.41 15.1 -22.4
|
||||
14400 265.10 0 30.9 3.0 32 7 11.5 0.42 15.3 -22.7
|
||||
14600 271.10 0 31.5 3.2 32 7 11.7 0.43 15.4 -22.9
|
||||
14800 277.40 0 32.2 3.1 31 8 11.9 0.43 15.6 -23.0
|
||||
15000 283.60 0 32.9 3.3 31 8 12.2 0.44 15.7 -23.3
|
||||
15200 290.10 0 33.6 3.2 30 8 12.4 0.45 15.8 -23.6
|
||||
15400 296.50 0 34.2 3.4 30 8 12.6 0.45 16.0 -23.8
|
||||
15600 303.20 0 34.9 3.4 29 9 12.9 0.46 16.1 -23.9
|
||||
15800 309.90 0 35.6 3.5 29 9 13.1 0.47 16.2 -24.1
|
||||
16000 316.90 0 36.3 3.5 28 9 13.3 0.47 16.4 -24.4
|
||||
16200 323.90 0 37.1 3.6 28 9 13.6 0.48 16.5 -24.6
|
||||
16400 331.10 0 37.8 3.7 27 10 13.8 0.49 16.7 -24.7
|
||||
16600 338.40 0 38.5 3.7 27 10 14.0 0.50 16.8 -25.0
|
||||
16800 345.80 0 39.2 3.8 27 10 14.3 0.50 17.0 -25.2
|
||||
17000 353.40 0 40.0 3.9 26 11 14.5 0.51 17.2 -25.5
|
||||
17200 361.20 0 40.7 3.9 26 11 14.8 0.51 17.3 -25.6
|
||||
17400 369.00 0 41.5 4.0 25 11 15.0 0.52 17.5 -25.8
|
||||
17600 377.10 0 42.3 4.1 25 12 15.3 0.53 17.6 -26.1
|
||||
17800 385.20 0 43.0 4.2 24 12 15.5 0.53 17.7 -26.3
|
||||
18000 393.60 0 43.8 4.1 24 12 15.8 0.54 17.9 -26.5
|
||||
18200 401.90 0 44.6 4.4 24 13 16.1 0.55 18.0 -26.7
|
||||
18400 410.60 0 45.4 4.4 23 13 16.3 0.55 18.1 -27.0
|
||||
18600 419.40 0 46.2 4.5 23 14 16.6 0.56 18.3 -27.3
|
||||
18800 428.40 0 47.1 4.5 22 14 16.9 0.57 18.4 -27.4
|
||||
19000 437.50 0 47.9 4.8 22 14 17.2 0.57 18.6 -27.6
|
||||
19200 447.00 0 48.7 4.8 21 15 17.4 0.58 18.7 -27.9
|
||||
19400 456.50 0 49.6 4.9 21 15 17.7 0.59 18.9 -28.2
|
||||
19600 466.20 0 50.5 5.0 21 16 18.0 0.59 19.1 -28.3
|
||||
19800 476.20 0 51.4 5.1 20 16 18.3 0.60 19.2 -28.6
|
||||
20000 486.40 0 52.3 5.3 20 17 18.7 0.60 19.5 -28.8
|
||||
20200 496.90 0 53.2 5.4 19 18 19.0 0.61 19.6 -29.1
|
||||
20400 507.60 0 54.1 5.5 19 18 19.3 0.62 19.8 -29.2
|
||||
20600 518.50 0 55.1 5.7 19 19 19.7 0.62 19.9 -29.6
|
||||
20800 529.90 0 56.1 5.8 18 19 20.0 0.63 20.1 -29.9
|
||||
21000 541.50 0 57.1 5.9 18 20 20.4 0.64 20.2 -30.1
|
||||
21200 553.40 0 58.1 6.3 17 21 20.8 0.64 20.4 -30.3
|
||||
21400 566.00 0 59.2 6.4 16 22 21.3 0.65 20.6 -30.6
|
||||
21600 578.80 0 60.3 6.7 16 23 21.7 0.66 20.7 -30.9
|
||||
21800 592.30 0 61.4 7.1 15 24 22.2 0.67 20.9 -31.1
|
||||
22000 606.40 0 62.6 7.3 15 25 22.7 0.67 21.0 -31.3
|
||||
22200 621.00 0 63.8 7.9 14 27 23.3 0.68 21.2 -31.6
|
||||
22400 636.70 0 65.1 8.4 13 29 23.9 0.69 21.4 -31.9
|
||||
22600 653.50 0 66.5 9.0 13 31 24.6 0.70 21.6 -32.0
|
||||
22800 671.50 0 68.0 9.9 12 34 25.4 0.71 21.7 -32.3
|
||||
23000 691.20 0 69.6 11.1 11 37 26.3 0.72 22.0 -32.6
|
||||
23200 713.40 0 71.3 13.2 10 42 27.4 0.73 22.1 -32.8
|
||||
23400 739.70 0 73.3 16.7 8 49 28.7 0.75 22.3 -33.2
|
||||
23600 773.00 0 75.7 27.9 7 61 30.4 0.76 22.6 -33.7
|
||||
23800 828.80 0 78.7 28.0 5 89 33.0 0.78 23.0 -34.5
|
||||
23850 850.00 0 85.0 28.5 4 90 40.0 0.82 24.0 -36.0
|
||||
23800 878.20 0 89.1 23.9 6 77 47.3 0.86 24.9 -37.2
|
||||
23600 925.90 0 91.2 13.3 9 50 51.8 0.88 25.4 -37.9
|
||||
23400 952.50 0 92.7 10.4 11 40 54.2 0.90 25.4 -38.2
|
||||
23200 973.20 0 94.0 8.8 12 34 56.9 0.92 25.5 -38.2
|
||||
23000 990.70 0 95.0 7.7 14 30 59.7 0.93 25.4 -38.3
|
||||
22800 1006.10 0 96.0 6.9 15 27 62.2 0.95 25.4 -38.3
|
||||
22600 1019.90 0 96.8 6.4 16 25 64.6 0.96 25.5 -38.2
|
||||
22400 1032.60 0 97.6 5.8 18 23 67.0 0.97 25.4 -38.3
|
||||
22200 1044.30 0 98.3 5.5 19 22 69.4 0.99 25.3 -38.1
|
||||
22000 1055.20 0 98.9 5.2 20 20 71.6 1.00 25.2 -38.1
|
||||
21800 1065.60 0 99.6 5.0 21 20 73.9 1.01 25.2 -37.9
|
||||
21600 1075.60 0 100.1 4.8 22 19 76.2 1.03 25.0 -37.8
|
||||
21400 1085.10 0 100.7 4.5 23 18 78.4 1.04 24.9 -37.5
|
||||
21200 1094.10 0 101.2 4.4 24 17 80.7 1.05 24.7 -37.3
|
||||
21000 1102.90 0 101.7 4.2 25 16 82.9 1.07 24.6 -37.2
|
||||
20800 1111.20 0 102.2 4.0 26 16 85.0 1.08 24.4 -36.9
|
||||
20600 1119.30 0 102.7 3.9 26 15 87.1 1.09 24.2 -36.7
|
||||
20400 1127.10 0 103.1 3.8 27 15 89.3 1.11 24.1 -36.4
|
||||
20200 1134.70 0 103.5 3.7 28 14 91.5 1.12 23.8 -36.2
|
||||
20000 1142.00 0 103.9 3.6 29 14 93.7 1.14 23.7 -35.8
|
||||
19800 1149.20 0 104.3 3.4 30 13 95.8 1.15 23.5 -35.4
|
||||
19600 1156.10 0 104.7 3.4 30 13 97.8 1.17 23.4 -35.2
|
||||
19400 1162.80 0 105.1 3.3 31 13 99.9 1.18 23.2 -34.9
|
||||
19200 1169.30 0 105.4 3.2 32 12 101.8 1.20 22.9 -34.6
|
||||
19000 1175.70 0 105.7 3.2 33 12 103.7 1.21 22.7 -34.3
|
||||
18800 1182.10 0 106.1 3.0 34 12 105.5 1.23 22.4 -33.9
|
||||
18600 1188.00 0 106.4 2.9 34 11 107.3 1.25 22.3 -33.7
|
||||
18400 1193.90 0 106.7 2.9 35 11 109.0 1.26 22.0 -33.3
|
||||
18200 1199.70 0 107.0 2.8 36 11 110.7 1.28 21.8 -32.9
|
||||
18000 1205.40 0 107.2 2.8 37 11 112.2 1.30 21.5 -32.6
|
||||
17800 1211.00 0 107.5 2.8 37 10 113.7 1.32 21.4 -32.2
|
||||
17600 1216.50 0 107.8 2.6 38 10 115.0 1.34 21.0 -31.9
|
||||
17400 1221.80 0 108.0 2.6 39 10 116.3 1.35 20.8 -31.6
|
||||
17200 1227.10 0 108.3 2.5 39 10 117.6 1.37 20.6 -31.3
|
||||
17000 1232.20 0 108.5 2.6 40 10 119.1 1.39 20.3 -31.0
|
||||
16800 1237.40 0 108.7 2.5 40 9 120.5 1.42 20.1 -30.7
|
||||
16600 1242.40 0 109.0 2.5 40 9 122.0 1.44 20.0 -30.5
|
||||
16400 1247.50 0 109.2 2.6 40 9 123.2 1.46 19.8 -30.4
|
||||
16200 1252.70 0 109.4 2.6 40 9 124.4 1.48 19.7 -30.1
|
||||
16000 1257.90 0 109.6 2.6 40 9 125.5 1.50 19.6 -29.9
|
||||
15800 1263.00 0 109.8 2.6 40 9 126.4 1.52 19.4 -29.7
|
||||
15600 1268.10 0 110.0 2.5 40 9 127.3 1.54 19.2 -29.5
|
||||
15400 1273.10 0 110.2 2.5 40 9 128.1 1.57 19.0 -29.2
|
||||
15200 1278.10 0 110.4 2.5 40 9 128.9 1.59 18.8 -28.9
|
||||
15000 1283.20 0 110.6 2.5 40 9 129.7 1.61 18.6 -28.6
|
||||
}
|
||||
} Ende Spaltengruppe
|
||||
} Ende Standard_Tafel
|
||||
|
||||
} Ende Schuss_Tafel
|
||||
|
||||
+308
@@ -0,0 +1,308 @@
|
||||
###########################################################################
|
||||
# #
|
||||
# Projekt TES : File "SMK-BE-RED-RED-PHOSPH-M1-M64Incr5-TableE.sus" #
|
||||
# #
|
||||
# Bei der Auspraegung des Ballistik-Moduls vereinbarte Bezeichnungen #
|
||||
# Tafel_Namen : ENTFERNUNG, AUFSATZ, FLUGZEIT, -- obligatorisch #
|
||||
# VORHALT -- projektspezifisch #
|
||||
# Param_Namen : DELTA_V0, LUFTTEMP, LUFTDRUCK, #
|
||||
# LAENGSWIND, QUERWIND, #
|
||||
# PULVERTEMP -- Korrektur-Parameter #
|
||||
# #
|
||||
###########################################################################
|
||||
|
||||
# Aenderung/Stand: 09.07.14-07:52
|
||||
|
||||
Schuss_Tafel =
|
||||
{
|
||||
Munition = "SMK-BE-RED-PHOSPH-M1-M64Incr5"
|
||||
Version = "SMK BE RED PHOSPH M1 M64 Incr5 Table-E"
|
||||
Muni_Parameter = { Kaliber = 155.0 Masse = 46.30 V0 = 912.0 }
|
||||
Std_Parameter = { DELTA_V0 = 0.0
|
||||
LUFTTEMP = 15.0
|
||||
LUFTDRUCK = 1013.25
|
||||
LAENGSWIND= 0.0
|
||||
QUERWIND = 0.0
|
||||
PULVERTEMP= 21.1 }
|
||||
Entfernung_Range= { Min = 10400.0 Max = 31400.0 Delta = 200.0 Scheitel = 31450.0 }
|
||||
Ballistik = "Parabel"
|
||||
###########################################################################
|
||||
|
||||
Standard_Tafel =
|
||||
{
|
||||
Spaltengruppe =
|
||||
{ Belegung = { AUFSATZ = (2) [-]
|
||||
VORHALT = (3) [-]
|
||||
FLUGZEIT = (4)
|
||||
DELTA_RGE = (5) [-]
|
||||
DELTA_ELEV = (6)
|
||||
FORK = (7) [-]
|
||||
DRIFT = (8) [-]
|
||||
}
|
||||
Zeilenlaenge = 8
|
||||
Datenblock =
|
||||
{
|
||||
#
|
||||
# RGE ELEV TOF DELTA DELTA FORK BEARING-CORR. RANGE-CORR.
|
||||
# ENTF AUFSATZ VORHALT FLUGZEIT RGE ELEV DRIFT CW DEC INC
|
||||
# [m] [mil] [mil] [sec] [mil] [m] [mil] [mil] [mil] [m] [m]
|
||||
#
|
||||
100 0.6 0 0.1 0.6 167 1 0.0 0.00 0.2 -0.1
|
||||
200 1.2 0 0.2 0.6 166 1 0.1 0.00 0.3 -0.3
|
||||
300 1.8 0 0.3 0.6 165 1 0.1 0.00 0.6 -0.4
|
||||
400 2.4 0 0.4 0.6 165 1 0.1 0.00 0.7 -0.7
|
||||
500 3.0 0 0.6 0.6 164 1 0.1 0.00 0.9 -0.8
|
||||
600 3.6 0 0.7 0.7 163 1 0.1 0.00 1.0 -1.0
|
||||
700 4.3 0 0.8 0.7 162 1 0.2 0.00 1.2 -1.1
|
||||
800 4.9 0 0.9 0.6 161 1 0.2 0.00 1.4 -1.3
|
||||
900 5.5 0 1.0 0.6 160 1 0.2 0.00 1.6 -1.4
|
||||
1000 6.1 0 1.1 0.7 160 1 0.2 0.00 1.8 -1.6
|
||||
1100 6.8 0 1.2 0.7 159 1 0.3 0.00 1.9 -1.7
|
||||
1200 7.4 0 1.4 0.6 158 1 0.3 0.01 2.1 -1.9
|
||||
1300 8.0 0 1.5 0.6 157 1 0.3 0.01 2.2 -2.0
|
||||
1400 8.7 0 1.6 0.7 156 1 0.3 0.01 2.4 -2.2
|
||||
1500 9.3 0 1.7 0.7 156 1 0.4 0.01 2.6 -2.3
|
||||
1600 10.0 0 1.8 0.7 155 1 0.4 0.01 2.8 -2.5
|
||||
1700 10.6 0 1.9 0.7 154 1 0.4 0.01 3.0 -2.6
|
||||
1800 11.3 0 2.1 0.6 153 1 0.5 0.01 3.1 -2.8
|
||||
1900 11.9 0 2.2 0.7 153 1 0.5 0.01 3.3 -2.9
|
||||
2000 12.6 0 2.3 0.7 152 1 0.5 0.01 3.5 -3.1
|
||||
2100 13.2 0 2.4 0.6 151 1 0.5 0.02 3.6 -3.2
|
||||
2200 13.9 0 2.5 0.7 150 1 0.6 0.02 3.8 -3.4
|
||||
2300 14.6 0 2.6 0.7 149 1 0.6 0.02 3.9 -3.5
|
||||
2400 15.2 0 2.8 0.6 149 1 0.6 0.02 4.1 -3.7
|
||||
2500 15.9 0 2.9 0.7 148 1 0.6 0.02 4.3 -3.8
|
||||
2600 16.6 0 3.0 0.7 147 1 0.7 0.02 4.4 -4.0
|
||||
2700 17.3 0 3.1 0.7 146 1 0.7 0.02 4.6 -4.1
|
||||
2800 18.0 0 3.3 0.7 146 1 0.7 0.02 4.7 -4.2
|
||||
2900 18.7 0 3.4 0.7 145 1 0.7 0.03 4.9 -4.4
|
||||
3000 19.4 0 3.5 0.7 144 1 0.8 0.03 5.1 -4.5
|
||||
3100 20.1 0 3.6 0.7 143 1 0.8 0.03 5.2 -4.7
|
||||
3200 20.8 0 3.7 0.7 143 1 0.8 0.03 5.4 -4.8
|
||||
3300 21.5 0 3.9 0.7 142 1 0.9 0.03 5.5 -4.9
|
||||
3400 22.2 0 4.0 0.7 141 1 0.9 0.03 5.7 -5.1
|
||||
3500 22.9 0 4.1 0.7 140 1 0.9 0.03 5.9 -5.2
|
||||
3600 23.6 0 4.2 0.7 140 1 0.9 0.03 6.0 -5.4
|
||||
3700 24.3 0 4.4 0.7 139 1 1.0 0.03 6.2 -5.5
|
||||
3800 25.0 0 4.5 0.8 138 1 1.0 0.04 6.3 -5.7
|
||||
3900 25.8 0 4.6 0.8 138 1 1.0 0.04 6.4 -5.8
|
||||
4000 26.5 0 4.8 0.7 137 1 1.1 0.04 6.6 -6.0
|
||||
4100 27.2 0 4.9 0.8 136 1 1.1 0.04 6.7 -6.0
|
||||
4200 28.0 0 5.0 0.8 135 1 1.1 0.04 6.9 -6.2
|
||||
4300 28.7 0 5.1 0.8 135 1 1.1 0.04 7.1 -6.3
|
||||
4400 29.5 0 5.3 0.8 134 1 1.2 0.04 7.2 -6.5
|
||||
4500 30.2 0 5.4 0.8 133 1 1.2 0.04 7.3 -6.6
|
||||
4600 31.0 0 5.5 0.8 133 1 1.2 0.05 7.5 -6.7
|
||||
4700 31.7 0 5.7 0.8 132 1 1.3 0.05 7.6 -6.9
|
||||
4800 32.5 0 5.8 0.8 131 1 1.3 0.05 7.8 -7.0
|
||||
4900 33.3 0 5.9 0.8 131 1 1.3 0.05 7.9 -7.2
|
||||
5000 34.0 0 6.1 0.8 130 1 1.3 0.05 8.1 -7.2
|
||||
5100 34.8 0 6.2 0.8 129 1 1.4 0.05 8.2 -7.4
|
||||
5200 35.6 0 6.3 0.8 128 1 1.4 0.05 8.4 -7.5
|
||||
5300 36.4 0 6.5 0.8 128 1 1.4 0.05 8.5 -7.7
|
||||
5400 37.2 0 6.6 0.8 127 1 1.5 0.06 8.7 -7.8
|
||||
5500 38.0 0 6.7 0.8 126 1 1.5 0.06 8.8 -7.9
|
||||
5600 38.7 0 6.9 0.8 126 1 1.5 0.06 8.9 -8.1
|
||||
5700 39.5 0 7.0 0.9 125 1 1.6 0.06 9.1 -8.1
|
||||
5800 40.4 0 7.1 0.9 124 2 1.6 0.06 9.2 -8.3
|
||||
5900 41.2 0 7.3 0.8 124 2 1.6 0.06 9.4 -8.4
|
||||
6000 42.0 0 7.4 0.8 123 2 1.6 0.06 9.5 -8.6
|
||||
6100 42.8 0 7.6 0.8 122 2 1.7 0.06 9.6 -8.6
|
||||
6200 43.6 0 7.7 0.8 122 2 1.7 0.07 9.8 -8.8
|
||||
6300 44.4 0 7.8 0.9 121 2 1.7 0.07 9.9 -8.9
|
||||
6400 45.3 0 8.0 0.8 120 2 1.8 0.07 10.0 -9.0
|
||||
6500 46.1 0 8.1 0.9 120 2 1.8 0.07 10.2 -9.2
|
||||
6600 47.0 0 8.3 0.9 119 2 1.8 0.07 10.4 -9.3
|
||||
6700 47.8 0 8.4 0.9 118 2 1.9 0.07 10.4 -9.4
|
||||
6800 48.7 0 8.5 0.9 118 2 1.9 0.07 10.6 -9.5
|
||||
6900 49.5 0 8.7 0.9 117 2 1.9 0.08 10.8 -9.6
|
||||
7000 50.4 0 8.8 0.9 117 2 2.0 0.08 10.8 -9.8
|
||||
7100 51.2 0 9.0 0.8 116 2 2.0 0.08 11.0 -9.9
|
||||
7200 52.1 0 9.1 0.9 115 2 2.0 0.08 11.1 -10.0
|
||||
7300 53.0 0 9.3 0.9 115 2 2.1 0.08 11.2 -10.1
|
||||
7400 53.8 0 9.4 0.9 114 2 2.1 0.08 11.4 -10.2
|
||||
7500 54.7 0 9.6 0.9 113 2 2.1 0.08 11.5 -10.4
|
||||
7600 55.6 0 9.7 0.9 113 2 2.2 0.08 11.6 -10.4
|
||||
7700 56.5 0 9.9 0.9 112 2 2.2 0.09 11.8 -10.6
|
||||
7800 57.4 0 10.0 0.9 112 2 2.2 0.09 11.9 -10.7
|
||||
7900 58.3 0 10.2 0.9 111 2 2.3 0.09 12.0 -10.8
|
||||
8000 59.2 0 10.3 0.9 110 2 2.3 0.09 12.1 -11.0
|
||||
8100 60.1 0 10.5 0.9 110 2 2.3 0.09 12.3 -11.0
|
||||
8200 60.1 0 10.6 1.0 109 2 2.4 0.09 12.4 -11.2
|
||||
8300 60.2 0 10.8 0.9 109 2 2.4 0.09 12.5 -11.3
|
||||
8400 60.3 0 10.9 0.9 108 2 2.4 0.10 12.7 -11.4
|
||||
8500 60.4 0 11.1 1.0 107 2 2.5 0.10 12.8 -11.5
|
||||
8600 60.5 0 11.2 0.9 107 2 2.5 0.10 12.9 -11.6
|
||||
8700 60.6 0 11.4 0.9 106 2 2.5 0.10 13.0 -11.7
|
||||
8800 60.7 0 11.5 1.0 106 2 2.6 0.10 13.2 -11.9
|
||||
8900 60.8 0 11.7 1.0 105 2 2.6 0.10 13.2 -11.9
|
||||
9000 60.9 0 11.8 1.0 104 2 2.6 0.10 13.4 -12.1
|
||||
9100 61.0 0 12.0 1.0 104 2 2.7 0.11 13.6 -12.2
|
||||
9200 61.1 0 12.2 1.0 103 2 2.7 0.11 13.6 -12.3
|
||||
9300 61.2 0 12.3 1.0 103 2 2.7 0.11 13.8 -12.4
|
||||
9400 61.3 0 12.5 1.0 102 2 2.8 0.11 13.9 -12.5
|
||||
9500 61.4 0 12.6 1.0 102 2 2.8 0.11 14.1 -12.6
|
||||
9600 61.5 0 12.8 1.0 101 2 2.8 0.11 14.1 -12.7
|
||||
9700 61.6 0 13.0 1.0 100 2 2.9 0.11 14.3 -12.8
|
||||
9800 61.7 0 13.1 1.0 100 2 2.9 0.12 14.4 -13.0
|
||||
9900 61.8 0 13.3 1.0 99 2 2.9 0.12 14.5 -13.0
|
||||
10000 61.9 0 13.5 1.0 99 2 3.0 0.12 14.6 -13.1
|
||||
10100 61.0 0 13.6 1.0 98 2 3.0 0.12 14.8 -13.3
|
||||
10200 61.1 0 13.8 1.0 97 2 3.1 0.12 14.9 -13.3
|
||||
10300 61.2 0 14.0 1.0 97 2 3.1 0.12 15.0 -13.5
|
||||
10400 62.40 0 15.3 1.6 78 2 3.8 0.19 13.5 -13.3
|
||||
10600 65.60 0 15.7 1.6 76 3 3.9 0.20 13.7 -13.4
|
||||
10800 68.80 0 16.1 1.6 75 3 4.0 0.20 13.9 -13.6
|
||||
11000 72.00 0 16.5 1.6 74 3 4.1 0.21 14.1 -13.8
|
||||
11200 75.20 0 16.9 1.7 73 3 4.2 0.21 14.3 -14.0
|
||||
11400 78.50 0 17.3 1.7 71 3 4.3 0.22 14.4 -14.2
|
||||
11600 81.80 0 17.7 1.7 70 3 4.4 0.22 14.6 -14.4
|
||||
11800 85.20 0 18.1 1.7 69 3 4.5 0.23 14.8 -14.5
|
||||
12000 88.50 0 18.5 1.8 68 3 4.6 0.23 14.9 -14.8
|
||||
12200 92.00 0 19.0 1.8 67 3 4.8 0.24 15.1 -14.9
|
||||
12400 95.50 0 19.4 1.8 65 3 4.9 0.24 15.2 -15.1
|
||||
12600 99.00 0 19.9 1.8 64 3 5.0 0.25 15.5 -15.2
|
||||
12800 102.50 0 20.3 1.8 63 3 5.1 0.25 15.6 -15.4
|
||||
13000 106.00 0 20.8 1.9 62 3 5.2 0.26 15.8 -15.6
|
||||
13200 109.70 0 21.2 1.8 61 4 5.3 0.26 15.9 -15.7
|
||||
13400 113.40 0 21.7 1.9 60 4 5.5 0.27 16.1 -15.9
|
||||
13600 117.10 0 22.2 1.9 59 4 5.6 0.27 16.3 -16.0
|
||||
13800 120.90 0 22.6 2.0 58 4 5.7 0.28 16.4 -16.3
|
||||
14000 124.80 0 23.1 1.9 57 4 5.9 0.28 16.6 -16.4
|
||||
14200 128.60 0 23.6 2.0 56 4 6.0 0.29 16.7 -16.6
|
||||
14400 132.60 0 24.1 2.0 55 4 6.1 0.30 16.9 -16.7
|
||||
14600 136.60 0 24.6 2.0 54 4 6.3 0.30 17.0 -16.8
|
||||
14800 140.60 0 25.1 2.1 53 4 6.4 0.31 17.3 -17.0
|
||||
15000 144.70 0 25.6 2.1 52 5 6.5 0.31 17.4 -17.1
|
||||
15200 148.90 0 26.1 2.2 52 5 6.7 0.32 17.6 -17.3
|
||||
15400 153.20 0 26.7 2.1 51 5 6.8 0.32 17.7 -17.4
|
||||
15600 157.40 0 27.2 2.2 50 5 7.0 0.33 17.9 -17.7
|
||||
15800 161.80 0 27.7 2.2 49 5 7.1 0.34 18.0 -17.8
|
||||
16000 166.20 0 28.3 2.3 48 5 7.3 0.34 18.2 -18.0
|
||||
16200 170.70 0 28.8 2.3 47 5 7.4 0.35 18.4 -18.1
|
||||
16400 175.30 0 29.4 2.3 47 5 7.6 0.35 18.6 -18.3
|
||||
16600 179.80 0 30.0 2.4 46 6 7.7 0.36 18.7 -18.4
|
||||
16800 184.60 0 30.5 2.4 45 6 7.9 0.37 18.9 -18.6
|
||||
17000 189.30 0 31.1 2.4 44 6 8.1 0.37 19.0 -18.8
|
||||
17200 194.10 0 31.7 2.4 44 6 8.2 0.38 19.2 -18.9
|
||||
17400 198.90 0 32.3 2.6 43 6 8.4 0.38 19.3 -19.1
|
||||
17600 204.00 0 32.9 2.5 42 6 8.6 0.39 19.5 -19.2
|
||||
17800 209.00 0 33.5 2.6 42 7 8.8 0.40 19.7 -19.4
|
||||
18000 214.10 0 34.1 2.6 41 7 8.9 0.40 19.8 -19.5
|
||||
18200 219.30 0 34.7 2.6 40 7 9.1 0.41 20.0 -19.7
|
||||
18400 224.50 0 35.3 2.7 40 7 9.3 0.41 20.1 -19.9
|
||||
18600 229.90 0 35.9 2.7 39 7 9.5 0.42 20.4 -20.1
|
||||
18800 235.30 0 36.6 2.8 39 8 9.7 0.43 20.5 -20.3
|
||||
19000 240.80 0 37.2 2.8 38 8 9.9 0.43 20.7 -20.4
|
||||
19200 246.30 0 37.9 2.8 37 8 10.1 0.44 20.9 -20.6
|
||||
19400 251.90 0 38.5 2.9 37 8 10.3 0.44 21.0 -20.8
|
||||
19600 257.60 0 39.2 2.9 36 8 10.5 0.45 21.3 -20.9
|
||||
19800 263.40 0 39.8 2.9 36 9 10.7 0.46 21.4 -21.1
|
||||
20000 269.30 0 40.5 3.0 35 9 10.9 0.46 21.6 -21.3
|
||||
20200 275.20 0 41.1 3.0 35 9 11.1 0.47 21.8 -21.5
|
||||
20400 281.20 0 41.8 3.0 34 9 11.4 0.47 21.9 -21.7
|
||||
20600 287.30 0 42.5 3.1 34 10 11.6 0.48 22.2 -21.8
|
||||
20800 293.50 0 43.2 3.1 34 10 11.8 0.49 22.3 -22.1
|
||||
21000 299.70 0 43.9 3.2 33 10 12.1 0.49 22.6 -22.2
|
||||
21200 306.00 0 44.6 3.1 33 10 12.3 0.50 22.8 -22.4
|
||||
21400 312.30 0 45.3 3.3 32 10 12.5 0.50 23.0 -22.7
|
||||
21600 318.90 0 46.0 3.2 32 11 12.8 0.51 23.2 -22.9
|
||||
21800 325.40 0 46.7 3.3 32 11 13.0 0.51 23.4 -23.1
|
||||
22000 332.00 0 47.4 3.4 31 11 13.3 0.52 23.5 -23.3
|
||||
22200 338.70 0 48.1 3.4 31 11 13.5 0.52 23.8 -23.5
|
||||
22400 345.50 0 48.8 3.4 30 12 13.8 0.53 23.9 -23.6
|
||||
22600 352.30 0 49.6 3.4 30 12 14.0 0.53 24.1 -23.8
|
||||
22800 359.20 0 50.3 3.5 30 12 14.3 0.54 24.4 -24.0
|
||||
23000 366.30 0 51.1 3.6 29 13 14.6 0.55 24.6 -24.2
|
||||
23200 373.50 0 51.8 3.6 29 13 14.9 0.55 24.8 -24.5
|
||||
23400 380.70 0 52.6 3.7 28 13 15.1 0.56 25.0 -24.8
|
||||
23600 388.00 0 53.4 3.6 28 14 15.4 0.56 25.3 -25.0
|
||||
23800 395.30 0 54.1 3.8 28 14 15.7 0.57 25.6 -25.2
|
||||
24000 402.80 0 54.9 3.8 27 14 16.0 0.57 25.8 -25.4
|
||||
24200 410.40 0 55.7 3.8 27 14 16.3 0.58 26.0 -25.6
|
||||
24400 418.10 0 56.5 3.9 27 15 16.6 0.58 26.2 -25.9
|
||||
24600 425.80 0 57.4 4.0 26 15 16.9 0.59 26.5 -26.1
|
||||
24800 433.80 0 58.2 4.0 26 16 17.3 0.59 26.8 -26.4
|
||||
25000 441.80 0 59.1 4.1 26 16 17.6 0.60 27.1 -26.7
|
||||
25200 450.00 0 59.9 4.1 25 16 17.9 0.61 27.3 -27.0
|
||||
25400 458.20 0 60.8 4.2 25 17 18.3 0.61 27.7 -27.4
|
||||
25600 466.60 0 61.7 4.2 24 17 18.6 0.62 28.0 -27.6
|
||||
25800 475.10 0 62.6 4.3 24 18 19.0 0.62 28.3 -27.9
|
||||
26000 483.70 0 63.5 4.4 24 18 19.4 0.63 28.6 -28.2
|
||||
26200 492.50 0 64.4 4.5 23 19 19.7 0.63 29.0 -28.6
|
||||
26400 501.40 0 65.3 4.6 23 19 20.1 0.64 29.3 -28.9
|
||||
26600 510.60 0 66.3 4.6 22 20 20.5 0.65 29.6 -29.2
|
||||
26800 519.80 0 67.3 4.8 22 20 21.0 0.65 30.0 -29.5
|
||||
27000 529.30 0 68.3 4.9 22 21 21.4 0.66 30.5 -30.0
|
||||
27200 539.00 0 69.3 4.9 21 21 21.8 0.66 30.8 -30.4
|
||||
27400 548.80 0 70.3 5.0 21 22 22.3 0.67 31.4 -30.9
|
||||
27600 558.80 0 71.4 5.1 20 22 22.8 0.68 32.0 -31.5
|
||||
27800 569.10 0 72.5 5.2 20 23 23.3 0.68 32.7 -32.1
|
||||
28000 579.50 0 73.5 5.3 20 23 23.8 0.69 33.4 -32.8
|
||||
28200 590.00 0 74.6 5.3 20 24 24.3 0.69 34.1 -33.5
|
||||
28400 600.60 0 75.7 5.3 19 25 24.9 0.70 34.6 -34.1
|
||||
28600 611.30 0 76.8 5.5 19 25 25.4 0.70 35.2 -34.6
|
||||
28800 622.30 0 77.9 5.7 18 26 26.0 0.71 35.8 -35.1
|
||||
29000 633.70 0 79.1 5.8 18 27 26.7 0.71 36.3 -35.6
|
||||
29200 645.30 0 80.2 6.0 17 28 27.3 0.72 36.9 -36.2
|
||||
29400 657.30 0 81.4 6.2 17 30 28.0 0.72 37.4 -36.8
|
||||
29600 669.80 0 82.7 6.5 16 31 28.8 0.73 38.0 -37.3
|
||||
29800 682.70 0 84.0 6.7 15 33 29.6 0.74 38.7 -37.9
|
||||
30000 696.20 0 85.3 7.1 14 35 30.5 0.74 39.4 -38.6
|
||||
30200 710.40 0 86.7 7.5 14 37 31.5 0.75 40.1 -39.4
|
||||
30400 725.50 0 88.2 8.1 13 41 32.6 0.75 41.0 -40.1
|
||||
30600 741.70 0 89.9 8.7 12 45 33.8 0.76 41.8 -40.9
|
||||
30800 759.10 0 91.7 9.7 10 51 35.2 0.77 42.7 -41.7
|
||||
31000 778.40 0 93.8 11.5 9 62 37.0 0.77 43.7 -42.6
|
||||
31200 801.40 0 96.3 5.4 7 81 39.4 0.78 44.4 -43.5
|
||||
31400 812.10 0 99.9 6.0 3 171 43.3 0.80 44.9 -44.1
|
||||
31450 900.00 0 105.0 7.5 2 72 50.0 0.82 45.0 -44.5
|
||||
31400 1009.20 0 110.8 7.0 8 71 61.1 0.83 45.3 -44.7
|
||||
31200 1023.10 0 112.6 6.9 11 48 65.4 0.84 45.5 -44.9
|
||||
31000 1036.90 0 113.9 6.1 14 39 69.0 0.84 45.6 -45.0
|
||||
30800 1049.10 0 115.0 5.3 16 33 72.2 0.85 45.6 -45.2
|
||||
30600 1059.70 0 116.0 4.9 19 29 75.1 0.86 45.8 -45.2
|
||||
30400 1069.40 0 116.8 4.5 21 26 77.8 0.87 46.0 -45.1
|
||||
30200 1078.30 0 117.5 4.1 23 24 80.6 0.87 46.2 -45.0
|
||||
30000 1086.50 0 118.2 3.6 25 22 82.5 0.88 46.1 -45.0
|
||||
29800 1093.70 0 118.8 3.5 27 20 83.1 0.89 46.1 -45.0
|
||||
29600 1100.80 0 119.3 3.4 29 19 83.3 0.90 46.0 -44.9
|
||||
29400 1107.60 0 119.8 3.3 30 18 83.5 0.90 45.9 -44.8
|
||||
29200 1114.10 0 120.2 3.2 31 17 83.9 0.91 45.8 -44.8
|
||||
29000 1120.40 0 120.7 3.0 32 17 84.7 0.92 45.6 -44.7
|
||||
28800 1126.50 0 121.1 3.0 33 16 85.6 0.93 45.5 -44.6
|
||||
28600 1132.40 0 121.5 2.8 34 16 86.1 0.94 45.3 -44.4
|
||||
28400 1138.10 0 121.9 2.7 36 15 86.5 0.94 45.2 -44.2
|
||||
28200 1143.50 0 122.3 2.7 37 15 86.9 0.95 44.6 -44.0
|
||||
28000 1148.90 0 122.7 2.5 38 14 87.5 0.96 44.1 -43.9
|
||||
27800 1154.00 0 123.0 2.5 39 14 88.1 0.97 43.7 -43.8
|
||||
27600 1159.10 0 123.4 2.5 40 13 88.8 0.98 43.3 -43.3
|
||||
27400 1164.00 0 123.7 2.3 41 13 89.3 0.99 42.9 -42.7
|
||||
27200 1168.70 0 124.0 2.4 42 13 89.8 1.00 42.5 -42.0
|
||||
27000 1173.50 0 124.3 2.3 43 12 90.2 1.00 42.2 -41.6
|
||||
26800 1178.00 0 124.6 2.3 44 12 90.6 1.01 41.9 -41.3
|
||||
26600 1182.50 0 124.9 2.3 45 12 90.9 1.02 41.6 -41.0
|
||||
26400 1187.00 0 125.2 2.2 45 12 91.1 1.03 41.3 -40.9
|
||||
26200 1191.40 0 125.5 2.1 46 12 91.5 1.04 41.2 -40.7
|
||||
26000 1195.70 0 125.8 2.2 46 12 91.7 1.05 40.9 -40.7
|
||||
25800 1200.10 0 126.0 2.1 46 11 92.0 1.06 40.7 -40.7
|
||||
25600 1204.40 0 126.3 2.2 46 11 92.3 1.07 40.5 -40.6
|
||||
25400 1208.70 0 126.5 2.1 47 11 92.5 1.08 40.4 -40.6
|
||||
25200 1213.00 0 126.8 2.1 47 11 92.7 1.09 40.1 -40.6
|
||||
25000 1217.30 0 127.0 2.2 47 11 92.8 1.10 40.0 -40.5
|
||||
24800 1221.60 0 127.2 2.0 47 11 92.8 1.11 39.8 -40.4
|
||||
24600 1225.70 0 127.5 2.1 48 11 92.6 1.12 39.7 -39.9
|
||||
24400 1229.90 0 127.7 2.1 48 11 92.5 1.13 39.5 -39.1
|
||||
24200 1234.10 0 127.9 2.0 49 11 92.5 1.14 39.3 -38.7
|
||||
24000 1238.10 0 128.1 2.1 49 11 92.5 1.15 39.1 -38.4
|
||||
23800 1242.20 0 128.3 2.0 50 11 92.5 1.16 38.8 -38.2
|
||||
23600 1246.30 0 128.5 2.0 50 10 92.5 1.17 38.5 -38.0
|
||||
23400 1250.20 0 128.7 2.0 50 10 92.6 1.18 37.8 -37.7
|
||||
23200 1254.20 0 128.9 2.0 51 10 92.7 1.19 36.9 -37.4
|
||||
23000 1258.10 0 129.1 2.0 51 10 92.7 1.20 36.1 -37.2
|
||||
}
|
||||
} Ende Spaltengruppe
|
||||
} Ende Standard_Tafel
|
||||
|
||||
} Ende Schuss_Tafel
|
||||
|
||||
+373
@@ -0,0 +1,373 @@
|
||||
###########################################################################
|
||||
# #
|
||||
# Projekt TES : File "SMK-BE-RED-RED-PHOSPH-M1-M64Incr5BaseBleed #
|
||||
# -TableE.sus" #
|
||||
# #
|
||||
# Bei der Auspraegung des Ballistik-Moduls vereinbarte Bezeichnungen #
|
||||
# Tafel_Namen : ENTFERNUNG, AUFSATZ, FLUGZEIT, -- obligatorisch #
|
||||
# VORHALT -- projektspezifisch #
|
||||
# Param_Namen : DELTA_V0, LUFTTEMP, LUFTDRUCK, #
|
||||
# LAENGSWIND, QUERWIND, #
|
||||
# PULVERTEMP -- Korrektur-Parameter #
|
||||
# #
|
||||
###########################################################################
|
||||
|
||||
# Aenderung/Stand: 09.07.14-07:52
|
||||
|
||||
Schuss_Tafel =
|
||||
{
|
||||
Munition = "-"
|
||||
Version = "-"
|
||||
Muni_Parameter = { Kaliber = 155.0 Masse = 46.30 V0 = 912.0 }
|
||||
Std_Parameter = { DELTA_V0 = 0.0
|
||||
LUFTTEMP = 15.0
|
||||
LUFTDRUCK = 1013.25
|
||||
LAENGSWIND= 0.0
|
||||
QUERWIND = 0.0
|
||||
PULVERTEMP= 21.1 }
|
||||
Entfernung_Range= { Min = 11200.0 Max = 40200.0 Delta = 200.0 Scheitel = 40250.0 }
|
||||
Ballistik = "Parabel"
|
||||
###########################################################################
|
||||
|
||||
Standard_Tafel =
|
||||
{
|
||||
Spaltengruppe =
|
||||
{ Belegung = { AUFSATZ = (2) [-]
|
||||
VORHALT = (3) [-]
|
||||
FLUGZEIT = (4)
|
||||
DELTA_RGE = (5) [-]
|
||||
DELTA_ELEV = (6)
|
||||
FORK = (7) [-]
|
||||
DRIFT = (8) [-]
|
||||
}
|
||||
Zeilenlaenge = 8
|
||||
Datenblock =
|
||||
{
|
||||
#
|
||||
# RGE ELEV TOF DELTA DELTA FORK BEARING-CORR. RANGE-CORR.
|
||||
# ENTF AUFSATZ VORHALT FLUGZEIT RGE ELEV DRIFT CW DEC INC
|
||||
# [m] [mil] [mil] [sec] [mil] [m] [mil] [mil] [mil] [m] [m]
|
||||
#
|
||||
100 0.6 0 0.1 0.6 167 1 0.0 0.00 0.2 -0.1
|
||||
200 1.2 0 0.2 0.6 166 1 0.1 0.00 0.3 -0.3
|
||||
300 1.8 0 0.3 0.6 165 1 0.1 0.00 0.6 -0.4
|
||||
400 2.4 0 0.4 0.6 165 1 0.1 0.00 0.7 -0.7
|
||||
500 3.0 0 0.6 0.6 164 1 0.1 0.00 0.9 -0.8
|
||||
600 3.6 0 0.7 0.7 163 1 0.1 0.00 1.0 -1.0
|
||||
700 4.3 0 0.8 0.7 162 1 0.2 0.00 1.2 -1.1
|
||||
800 4.9 0 0.9 0.6 161 1 0.2 0.00 1.4 -1.3
|
||||
900 5.5 0 1.0 0.6 160 1 0.2 0.00 1.6 -1.4
|
||||
1000 6.1 0 1.1 0.7 160 1 0.2 0.00 1.8 -1.6
|
||||
1100 6.8 0 1.2 0.7 159 1 0.3 0.00 1.9 -1.7
|
||||
1200 7.4 0 1.4 0.6 158 1 0.3 0.01 2.1 -1.9
|
||||
1300 8.0 0 1.5 0.6 157 1 0.3 0.01 2.2 -2.0
|
||||
1400 8.7 0 1.6 0.7 156 1 0.3 0.01 2.4 -2.2
|
||||
1500 9.3 0 1.7 0.7 156 1 0.4 0.01 2.6 -2.3
|
||||
1600 10.0 0 1.8 0.7 155 1 0.4 0.01 2.8 -2.5
|
||||
1700 10.6 0 1.9 0.7 154 1 0.4 0.01 3.0 -2.6
|
||||
1800 11.3 0 2.1 0.6 153 1 0.5 0.01 3.1 -2.8
|
||||
1900 11.9 0 2.2 0.7 153 1 0.5 0.01 3.3 -2.9
|
||||
2000 12.6 0 2.3 0.7 152 1 0.5 0.01 3.5 -3.1
|
||||
2100 13.2 0 2.4 0.6 151 1 0.5 0.02 3.6 -3.2
|
||||
2200 13.9 0 2.5 0.7 150 1 0.6 0.02 3.8 -3.4
|
||||
2300 14.6 0 2.6 0.7 149 1 0.6 0.02 3.9 -3.5
|
||||
2400 15.2 0 2.8 0.6 149 1 0.6 0.02 4.1 -3.7
|
||||
2500 15.9 0 2.9 0.7 148 1 0.6 0.02 4.3 -3.8
|
||||
2600 16.6 0 3.0 0.7 147 1 0.7 0.02 4.4 -4.0
|
||||
2700 17.3 0 3.1 0.7 146 1 0.7 0.02 4.6 -4.1
|
||||
2800 18.0 0 3.3 0.7 146 1 0.7 0.02 4.7 -4.2
|
||||
2900 18.7 0 3.4 0.7 145 1 0.7 0.03 4.9 -4.4
|
||||
3000 19.4 0 3.5 0.7 144 1 0.8 0.03 5.1 -4.5
|
||||
3100 20.1 0 3.6 0.7 143 1 0.8 0.03 5.2 -4.7
|
||||
3200 20.8 0 3.7 0.7 143 1 0.8 0.03 5.4 -4.8
|
||||
3300 21.5 0 3.9 0.7 142 1 0.9 0.03 5.5 -4.9
|
||||
3400 22.2 0 4.0 0.7 141 1 0.9 0.03 5.7 -5.1
|
||||
3500 22.9 0 4.1 0.7 140 1 0.9 0.03 5.9 -5.2
|
||||
3600 23.6 0 4.2 0.7 140 1 0.9 0.03 6.0 -5.4
|
||||
3700 24.3 0 4.4 0.7 139 1 1.0 0.03 6.2 -5.5
|
||||
3800 25.0 0 4.5 0.8 138 1 1.0 0.04 6.3 -5.7
|
||||
3900 25.8 0 4.6 0.8 138 1 1.0 0.04 6.4 -5.8
|
||||
4000 26.5 0 4.8 0.7 137 1 1.1 0.04 6.6 -6.0
|
||||
4100 27.2 0 4.9 0.8 136 1 1.1 0.04 6.7 -6.0
|
||||
4200 28.0 0 5.0 0.8 135 1 1.1 0.04 6.9 -6.2
|
||||
4300 28.7 0 5.1 0.8 135 1 1.1 0.04 7.1 -6.3
|
||||
4400 29.5 0 5.3 0.8 134 1 1.2 0.04 7.2 -6.5
|
||||
4500 30.2 0 5.4 0.8 133 1 1.2 0.04 7.3 -6.6
|
||||
4600 31.0 0 5.5 0.8 133 1 1.2 0.05 7.5 -6.7
|
||||
4700 31.7 0 5.7 0.8 132 1 1.3 0.05 7.6 -6.9
|
||||
4800 32.5 0 5.8 0.8 131 1 1.3 0.05 7.8 -7.0
|
||||
4900 33.3 0 5.9 0.8 131 1 1.3 0.05 7.9 -7.2
|
||||
5000 34.0 0 6.1 0.8 130 1 1.3 0.05 8.1 -7.2
|
||||
5100 34.8 0 6.2 0.8 129 1 1.4 0.05 8.2 -7.4
|
||||
5200 35.6 0 6.3 0.8 128 1 1.4 0.05 8.4 -7.5
|
||||
5300 36.4 0 6.5 0.8 128 1 1.4 0.05 8.5 -7.7
|
||||
5400 37.2 0 6.6 0.8 127 1 1.5 0.06 8.7 -7.8
|
||||
5500 38.0 0 6.7 0.8 126 1 1.5 0.06 8.8 -7.9
|
||||
5600 38.7 0 6.9 0.8 126 1 1.5 0.06 8.9 -8.1
|
||||
5700 39.5 0 7.0 0.9 125 1 1.6 0.06 9.1 -8.1
|
||||
5800 40.4 0 7.1 0.9 124 2 1.6 0.06 9.2 -8.3
|
||||
5900 41.2 0 7.3 0.8 124 2 1.6 0.06 9.4 -8.4
|
||||
6000 42.0 0 7.4 0.8 123 2 1.6 0.06 9.5 -8.6
|
||||
6100 42.8 0 7.6 0.8 122 2 1.7 0.06 9.6 -8.6
|
||||
6200 43.6 0 7.7 0.8 122 2 1.7 0.07 9.8 -8.8
|
||||
6300 44.4 0 7.8 0.9 121 2 1.7 0.07 9.9 -8.9
|
||||
6400 45.3 0 8.0 0.8 120 2 1.8 0.07 10.0 -9.0
|
||||
6500 46.1 0 8.1 0.9 120 2 1.8 0.07 10.2 -9.2
|
||||
6600 47.0 0 8.3 0.9 119 2 1.8 0.07 10.4 -9.3
|
||||
6700 47.8 0 8.4 0.9 118 2 1.9 0.07 10.4 -9.4
|
||||
6800 48.7 0 8.5 0.9 118 2 1.9 0.07 10.6 -9.5
|
||||
6900 49.5 0 8.7 0.9 117 2 1.9 0.08 10.8 -9.6
|
||||
7000 50.4 0 8.8 0.9 117 2 2.0 0.08 10.8 -9.8
|
||||
7100 51.2 0 9.0 0.8 116 2 2.0 0.08 11.0 -9.9
|
||||
7200 52.1 0 9.1 0.9 115 2 2.0 0.08 11.1 -10.0
|
||||
7300 53.0 0 9.3 0.9 115 2 2.1 0.08 11.2 -10.1
|
||||
7400 53.8 0 9.4 0.9 114 2 2.1 0.08 11.4 -10.2
|
||||
7500 54.7 0 9.6 0.9 113 2 2.1 0.08 11.5 -10.4
|
||||
7600 55.6 0 9.7 0.9 113 2 2.2 0.08 11.6 -10.4
|
||||
7700 56.5 0 9.9 0.9 112 2 2.2 0.09 11.8 -10.6
|
||||
7800 57.4 0 10.0 0.9 112 2 2.2 0.09 11.9 -10.7
|
||||
7900 58.3 0 10.2 0.9 111 2 2.3 0.09 12.0 -10.8
|
||||
8000 59.2 0 10.3 0.9 110 2 2.3 0.09 12.1 -11.0
|
||||
8100 60.1 0 10.5 0.9 110 2 2.3 0.09 12.3 -11.0
|
||||
8200 61.1 0 10.6 1.0 109 2 2.4 0.09 12.4 -11.2
|
||||
8300 61.2 0 10.8 0.9 109 2 2.4 0.09 12.5 -11.3
|
||||
8400 61.5 0 10.9 0.9 108 2 2.4 0.10 12.7 -11.4
|
||||
8500 61.6 0 11.1 1.0 107 2 2.5 0.10 12.8 -11.5
|
||||
8600 61.7 0 11.2 0.9 107 2 2.5 0.10 12.9 -11.6
|
||||
8700 61.8 0 11.4 0.9 106 2 2.5 0.10 13.0 -11.7
|
||||
8800 61.9 0 11.5 1.0 106 2 2.6 0.10 13.2 -11.9
|
||||
8900 62.0 0 11.7 1.0 105 2 2.6 0.10 13.2 -11.9
|
||||
9000 62.1 0 11.8 1.0 104 2 2.6 0.10 13.4 -12.1
|
||||
9100 62.2 0 12.0 1.0 104 2 2.7 0.11 13.6 -12.2
|
||||
9200 62.3 0 12.2 1.0 103 2 2.7 0.11 13.6 -12.3
|
||||
9300 62.4 0 12.3 1.0 103 2 2.7 0.11 13.8 -12.4
|
||||
9400 62.5 0 12.5 1.0 102 2 2.8 0.11 13.9 -12.5
|
||||
9500 62.6 0 12.6 1.0 102 2 2.8 0.11 14.1 -12.6
|
||||
9600 62.7 0 12.8 1.0 101 2 2.8 0.11 14.1 -12.7
|
||||
9700 62.8 0 13.0 1.0 100 2 2.9 0.11 14.3 -12.8
|
||||
9800 62.9 0 13.1 1.0 100 2 2.9 0.12 14.4 -13.0
|
||||
9900 63.0 0 13.3 1.0 99 2 2.9 0.12 14.5 -13.0
|
||||
10000 63.1 0 13.5 1.0 99 2 3.0 0.12 14.6 -13.1
|
||||
10100 63.2 0 13.6 1.0 98 2 3.0 0.12 14.8 -13.3
|
||||
10200 63.3 0 13.8 1.0 97 2 3.1 0.12 14.9 -13.3
|
||||
10300 63.4 0 14.0 1.0 97 2 3.1 0.12 15.0 -13.5
|
||||
10400 63.5 0 14.1 1.0 96 2 3.1 0.13 15.1 -13.6
|
||||
10500 63.6 0 14.3 1.0 96 2 3.2 0.13 15.3 -13.7
|
||||
10600 63.7 0 14.5 1.1 95 2 3.2 0.13 15.3 -13.8
|
||||
10700 63.8 0 14.6 1.1 95 2 3.2 0.13 15.5 -13.9
|
||||
10800 63.9 0 14.8 1.0 94 2 3.3 0.13 15.6 -14.0
|
||||
10900 64.0 0 15.0 1.1 94 2 3.3 0.13 15.7 -14.2
|
||||
11000 64.1 0 15.1 1.1 93 2 3.3 0.13 15.8 -14.2
|
||||
11100 64.2 0 15.3 1.1 92 2 3.4 0.14 16.0 -14.4
|
||||
11200 64.30 0 15.5 1.1 92 2 3.4 0.14 16.1 -14.5
|
||||
11400 67.00 0 15.8 1.1 91 2 3.5 0.14 16.3 -14.7
|
||||
11600 69.60 0 16.2 1.1 90 2 3.6 0.14 16.5 -14.9
|
||||
11800 72.30 0 16.5 1.2 89 2 3.7 0.15 16.8 -15.1
|
||||
12000 75.00 0 16.9 1.2 88 2 3.7 0.15 17.0 -15.3
|
||||
12200 77.80 0 17.3 1.1 86 2 3.8 0.15 17.3 -15.5
|
||||
12400 80.60 0 17.6 1.2 85 2 3.9 0.16 17.4 -15.7
|
||||
12600 83.30 0 18.0 1.2 84 2 4.0 0.16 17.7 -16.0
|
||||
12800 86.10 0 18.4 1.3 83 2 4.0 0.16 17.9 -16.2
|
||||
13000 89.00 0 18.8 1.2 82 2 4.1 0.17 18.1 -16.4
|
||||
13200 91.70 0 19.1 1.3 81 2 4.2 0.17 18.4 -16.6
|
||||
13400 94.60 0 19.5 1.3 80 2 4.3 0.18 18.6 -16.8
|
||||
13600 97.50 0 19.9 1.3 79 2 4.4 0.18 18.8 -17.0
|
||||
13800 100.40 0 20.3 1.3 78 2 4.5 0.18 19.0 -17.2
|
||||
14000 103.30 0 20.7 1.3 77 3 4.5 0.19 19.3 -17.4
|
||||
14200 106.30 0 21.1 1.3 77 3 4.6 0.19 19.5 -17.6
|
||||
14400 109.20 0 21.5 1.3 76 3 4.7 0.19 19.7 -17.8
|
||||
14600 112.20 0 21.9 1.3 75 3 4.8 0.20 19.9 -18.0
|
||||
14800 115.20 0 22.3 1.4 74 3 4.9 0.20 20.2 -18.2
|
||||
15000 118.30 0 22.7 1.4 73 3 5.0 0.20 20.3 -18.3
|
||||
15200 121.40 0 23.2 1.4 72 3 5.1 0.21 20.6 -18.6
|
||||
15400 124.50 0 23.6 1.4 71 3 5.1 0.21 20.7 -18.8
|
||||
15600 127.60 0 24.0 1.4 70 3 5.2 0.22 21.0 -19.0
|
||||
15800 130.70 0 24.4 1.5 69 3 5.3 0.22 21.1 -19.2
|
||||
16000 133.90 0 24.9 1.4 69 3 5.4 0.22 21.4 -19.4
|
||||
16200 137.20 0 25.3 1.5 68 3 5.5 0.23 21.6 -19.6
|
||||
16400 140.40 0 25.7 1.5 67 3 5.6 0.23 21.8 -19.8
|
||||
16600 143.70 0 26.2 1.5 66 3 5.7 0.24 22.1 -20.1
|
||||
16800 147.00 0 26.6 1.6 65 3 5.8 0.24 22.3 -20.3
|
||||
17000 150.30 0 27.1 1.5 65 3 5.9 0.24 22.6 -20.5
|
||||
17200 153.70 0 27.6 1.6 64 3 6.0 0.25 22.9 -20.7
|
||||
17400 157.00 0 28.0 1.5 63 3 6.1 0.25 23.1 -20.9
|
||||
17600 160.60 0 28.5 1.7 63 4 6.2 0.25 23.4 -21.2
|
||||
17800 164.00 0 28.9 1.6 62 4 6.3 0.26 23.6 -21.4
|
||||
18000 167.50 0 29.4 1.7 61 4 6.3 0.26 23.8 -21.6
|
||||
18200 171.00 0 29.9 1.7 60 4 6.4 0.27 23.9 -21.8
|
||||
18400 174.60 0 30.4 1.7 60 4 6.5 0.27 24.2 -21.9
|
||||
18600 178.20 0 30.9 1.8 59 4 6.6 0.27 24.3 -22.1
|
||||
18800 181.80 0 31.4 1.7 58 4 6.7 0.28 24.6 -22.2
|
||||
19000 185.50 0 31.8 1.8 58 4 6.8 0.28 24.7 -22.4
|
||||
19200 189.20 0 32.3 1.8 57 4 6.9 0.29 25.0 -22.7
|
||||
19400 192.90 0 32.8 1.8 57 4 7.0 0.29 25.2 -22.9
|
||||
19600 196.70 0 33.3 1.8 56 4 7.1 0.29 25.5 -23.1
|
||||
19800 200.50 0 33.8 1.8 56 4 7.2 0.30 25.7 -23.3
|
||||
20000 204.40 0 34.4 1.9 55 5 7.3 0.30 25.9 -23.5
|
||||
20200 208.20 0 34.9 1.8 54 5 7.4 0.31 26.2 -23.7
|
||||
20400 212.10 0 35.4 1.9 54 5 7.5 0.31 26.4 -23.9
|
||||
20600 216.10 0 35.9 1.9 53 5 7.6 0.31 26.7 -24.3
|
||||
20800 220.00 0 36.4 1.9 53 5 7.7 0.32 27.0 -24.7
|
||||
21000 224.10 0 37.0 2.0 52 5 7.8 0.32 27.2 -25.0
|
||||
21200 228.20 0 37.5 1.9 52 5 7.9 0.33 27.5 -25.3
|
||||
21400 232.20 0 38.0 2.0 51 5 8.0 0.33 27.6 -25.1
|
||||
21600 236.30 0 38.6 1.9 51 5 8.1 0.33 27.8 -25.5
|
||||
21800 240.40 0 39.1 2.1 50 6 8.2 0.34 28.0 -25.6
|
||||
22000 244.70 0 39.7 2.0 50 6 8.4 0.34 28.4 -25.7
|
||||
22200 248.80 0 40.2 2.1 49 6 8.5 0.35 28.8 -26.1
|
||||
22400 253.10 0 40.8 2.1 49 6 8.6 0.35 29.2 -26.5
|
||||
22600 257.40 0 41.3 2.1 48 6 8.7 0.35 29.6 -26.8
|
||||
22800 261.80 0 41.9 2.1 48 6 8.8 0.36 29.7 -27.1
|
||||
23000 266.10 0 42.4 2.1 48 6 8.9 0.36 29.8 -27.1
|
||||
23200 270.50 0 43.0 2.2 47 7 9.0 0.36 29.9 -27.2
|
||||
23400 275.00 0 43.6 2.1 47 7 9.1 0.37 30.2 -27.4
|
||||
23600 279.40 0 44.2 2.2 47 7 9.2 0.37 30.6 -27.7
|
||||
23800 283.90 0 44.7 2.2 46 7 9.3 0.37 31.1 -28.1
|
||||
24000 288.50 0 45.3 2.2 46 7 9.4 0.38 31.5 -28.5
|
||||
24200 293.00 0 45.9 2.2 45 7 9.5 0.38 31.6 -28.7
|
||||
24400 297.60 0 46.5 2.3 45 7 9.7 0.39 31.6 -28.7
|
||||
24600 302.20 0 47.1 2.3 45 8 9.8 0.39 31.6 -28.8
|
||||
24800 306.90 0 47.6 2.3 44 8 9.9 0.39 32.0 -28.9
|
||||
25000 311.60 0 48.2 2.3 44 8 10.0 0.40 32.4 -29.3
|
||||
25200 316.40 0 48.8 2.3 44 8 10.1 0.40 32.8 -29.8
|
||||
25400 321.10 0 49.4 2.4 43 8 10.2 0.40 33.3 -30.3
|
||||
25600 325.90 0 50.0 2.3 43 8 10.3 0.41 33.7 -30.6
|
||||
25800 330.70 0 50.6 2.4 43 9 10.5 0.41 34.0 -30.9
|
||||
26000 335.60 0 51.3 2.4 42 9 10.6 0.41 34.3 -31.2
|
||||
26200 340.40 0 51.9 2.4 42 9 10.7 0.42 34.4 -31.3
|
||||
26400 345.40 0 52.5 2.4 42 9 10.8 0.42 34.4 -31.4
|
||||
26600 350.30 0 53.1 2.4 41 9 10.9 0.42 34.6 -31.5
|
||||
26800 355.30 0 53.7 2.5 41 10 11.1 0.43 35.1 -31.9
|
||||
27000 360.40 0 54.3 2.5 41 10 11.2 0.43 35.6 -32.4
|
||||
27200 365.40 0 55.0 2.4 41 10 11.3 0.43 36.2 -32.9
|
||||
27400 370.50 0 55.6 2.5 40 10 11.5 0.44 36.6 -33.2
|
||||
27600 375.70 0 56.2 2.6 40 10 11.6 0.44 36.9 -33.5
|
||||
27800 380.80 0 56.9 2.5 40 11 11.7 0.44 37.3 -33.9
|
||||
28000 386.00 0 57.5 2.6 40 11 11.8 0.44 37.7 -34.2
|
||||
28200 391.20 0 58.1 2.6 39 11 12.0 0.45 38.1 -34.7
|
||||
28400 396.40 0 58.8 2.6 39 11 12.1 0.45 38.5 -35.0
|
||||
28600 401.70 0 59.4 2.6 39 11 12.3 0.45 38.9 -35.3
|
||||
28800 407.00 0 60.1 2.6 39 12 12.4 0.46 39.4 -35.6
|
||||
29000 412.40 0 60.7 2.6 38 12 12.5 0.46 39.8 -35.9
|
||||
29200 417.70 0 61.4 2.7 38 12 12.7 0.46 40.1 -36.3
|
||||
29400 423.10 0 62.0 2.7 38 13 12.8 0.46 40.3 -36.7
|
||||
29600 428.60 0 62.7 2.7 38 13 13.0 0.47 40.6 -37.1
|
||||
29800 434.00 0 63.4 2.8 37 13 13.1 0.47 41.0 -37.4
|
||||
30000 439.60 0 64.0 2.7 37 13 13.3 0.47 41.5 -37.9
|
||||
30200 445.19 0 64.7 2.8 37 14 13.4 0.48 42.0 -38.3
|
||||
30400 450.70 0 65.4 2.8 37 14 13.6 0.48 42.5 -38.8
|
||||
30600 456.40 0 66.1 2.8 36 14 13.8 0.48 43.0 -39.4
|
||||
30800 462.00 0 66.8 2.8 36 14 13.9 0.48 43.8 -40.0
|
||||
31000 467.70 0 67.4 2.8 36 15 14.1 0.49 44.6 -40.6
|
||||
31200 473.40 0 68.1 2.8 36 15 14.3 0.49 45.4 -41.2
|
||||
31400 479.10 0 68.8 2.9 36 15 14.4 0.49 45.9 -41.6
|
||||
31600 484.90 0 69.5 2.9 35 15 14.6 0.49 46.3 -42.0
|
||||
31800 490.70 0 70.2 2.9 35 16 14.8 0.49 46.5 -42.2
|
||||
32000 496.60 0 70.9 2.9 35 16 15.0 0.50 46.6 -42.3
|
||||
32200 502.50 0 71.6 2.9 34 17 15.2 0.50 46.7 -42.6
|
||||
32400 508.50 0 72.3 3.0 34 17 15.3 0.50 47.2 -43.0
|
||||
32600 514.50 0 73.0 3.0 34 17 15.5 0.50 47.9 -43.7
|
||||
32800 520.60 0 73.8 3.0 34 17 15.7 0.51 48.7 -44.4
|
||||
33000 526.70 0 74.5 3.0 33 18 15.9 0.51 49.5 -45.0
|
||||
33200 532.80 0 75.2 3.1 33 18 16.2 0.51 50.3 -45.7
|
||||
33400 539.00 0 75.9 3.1 33 19 16.4 0.51 51.0 -46.3
|
||||
33600 545.20 0 76.7 3.1 33 19 16.6 0.51 51.6 -46.8
|
||||
33800 551.60 0 77.4 3.2 32 19 16.8 0.52 52.2 -47.3
|
||||
34000 557.90 0 78.2 3.2 32 20 17.0 0.52 52.8 -47.9
|
||||
34200 564.30 0 78.9 3.2 32 20 17.3 0.52 53.4 -48.4
|
||||
34400 570.70 0 79.7 3.3 31 21 17.5 0.52 54.0 -48.9
|
||||
34600 577.20 0 80.4 3.3 31 21 17.8 0.52 54.7 -49.5
|
||||
34800 583.80 0 81.2 3.4 31 22 18.0 0.52 55.5 -50.2
|
||||
35000 590.50 0 82.0 3.3 30 22 18.3 0.53 56.3 -51.1
|
||||
35200 597.20 0 82.8 3.4 30 23 18.6 0.53 56.8 -51.7
|
||||
35400 604.10 0 83.6 3.5 30 23 18.8 0.53 57.2 -52.0
|
||||
35600 611.00 0 84.4 3.5 29 24 19.1 0.53 57.8 -52.3
|
||||
35800 618.00 0 85.2 3.5 29 24 19.4 0.53 58.5 -53.0
|
||||
36000 625.10 0 86.0 3.6 28 25 19.7 0.53 59.3 -53.7
|
||||
36200 632.30 0 86.8 3.6 28 26 20.1 0.53 60.1 -54.4
|
||||
36400 639.60 0 87.7 3.8 27 26 20.4 0.54 60.9 -55.1
|
||||
36600 647.10 0 88.5 3.8 27 27 20.7 0.54 61.6 -55.8
|
||||
36800 654.70 0 89.4 3.9 26 28 21.1 0.54 62.4 -56.6
|
||||
37000 662.40 0 90.3 3.9 26 29 21.5 0.54 63.3 -57.6
|
||||
37200 670.30 0 91.2 4.0 25 30 21.9 0.54 64.6 -58.6
|
||||
37400 678.30 0 92.1 4.1 25 31 22.3 0.54 66.0 -59.6
|
||||
37600 686.50 0 93.0 4.2 24 32 22.7 0.54 67.0 -60.7
|
||||
37800 695.00 0 94.0 4.3 24 33 23.2 0.54 68.0 -61.7
|
||||
38000 703.60 0 94.9 4.5 23 34 23.7 0.55 69.1 -62.5
|
||||
38200 712.50 0 95.9 4.6 22 36 24.2 0.55 70.3 -63.4
|
||||
38400 721.80 0 96.9 4.7 22 37 24.7 0.55 71.5 -64.6
|
||||
38600 731.20 0 98.0 4.8 21 38 25.3 0.55 72.9 -65.7
|
||||
38800 740.60 0 99.0 4.9 21 39 25.9 0.55 74.1 -66.8
|
||||
39000 750.50 0 100.1 5.2 20 42 26.5 0.55 75.2 -67.5
|
||||
39200 760.70 0 101.2 5.4 19 44 27.2 0.55 75.6 -68.0
|
||||
39400 771.40 0 102.4 5.8 18 48 27.9 0.55 76.7 -69.6
|
||||
39600 782.69 0 103.7 6.3 16 52 28.7 0.55 78.6 -71.1
|
||||
39800 794.70 0 105.1 7.0 15 58 29.6 0.55 80.1 -72.3
|
||||
40000 807.80 0 106.6 8.0 13 68 30.7 0.55 81.6 -73.5
|
||||
40200 821.70 0 108.4 10.1 10 86 32.1 0.55 82.9 -74.6
|
||||
40250 900.00 0 115.0 9.5 10 82 38.0 0.56 83.5 -75.5
|
||||
40200 977.70 0 120.3 9.1 11 79 44.0 0.57 84.9 -76.4
|
||||
40000 989.80 0 121.7 7.1 15 61 45.9 0.57 85.4 -76.9
|
||||
39800 1000.80 0 122.8 5.9 17 51 47.5 0.58 85.7 -77.2
|
||||
39600 1010.80 0 123.8 5.3 20 45 48.9 0.58 85.8 -77.3
|
||||
39400 1020.00 0 124.6 4.8 22 41 50.2 0.58 85.8 -77.4
|
||||
39200 1028.60 0 125.3 4.4 23 38 51.4 0.59 85.5 -77.2
|
||||
39000 1036.60 0 126.0 4.1 25 35 52.4 0.59 85.2 -77.0
|
||||
38800 1044.20 0 126.7 3.9 26 33 53.4 0.59 84.8 -76.7
|
||||
38600 1051.40 0 127.3 3.6 28 31 54.2 0.60 84.3 -76.2
|
||||
38400 1058.30 0 127.8 3.5 29 29 55.1 0.60 83.7 -75.6
|
||||
38200 1065.00 0 128.4 3.4 30 28 56.0 0.60 83.1 -75.0
|
||||
38000 1071.30 0 128.9 3.2 32 27 56.8 0.61 82.5 -74.6
|
||||
37800 1077.50 0 129.3 3.1 33 26 57.7 0.61 82.0 -74.1
|
||||
37600 1083.40 0 129.8 3.0 34 24 58.5 0.61 81.5 -73.7
|
||||
37400 1089.10 0 130.2 2.8 35 23 59.3 0.62 80.9 -73.3
|
||||
37200 1094.70 0 130.6 2.8 36 23 60.1 0.62 80.1 -72.9
|
||||
37000 1099.90 0 131.0 2.7 37 22 60.9 0.62 79.3 -72.5
|
||||
36800 1105.20 0 131.4 2.7 39 21 61.7 0.63 79.0 -72.0
|
||||
36600 1110.30 0 131.8 2.5 40 20 62.5 0.63 78.8 -71.5
|
||||
36400 1115.20 0 132.2 2.5 41 20 63.2 0.63 78.5 -71.0
|
||||
36200 1120.10 0 132.5 2.5 42 19 63.9 0.64 78.0 -70.5
|
||||
36000 1124.90 0 132.8 2.3 42 19 64.6 0.64 77.3 -70.1
|
||||
35800 1129.50 0 133.2 2.4 43 18 65.2 0.64 76.7 -69.6
|
||||
35600 1134.00 0 133.5 2.3 44 18 65.8 0.65 75.9 -69.2
|
||||
35400 1138.40 0 133.8 2.2 45 17 66.4 0.65 75.1 -68.7
|
||||
35200 1142.80 0 134.0 2.2 46 17 66.9 0.65 74.4 -68.2
|
||||
35000 1147.10 0 134.3 2.1 47 16 67.4 0.66 73.9 -67.8
|
||||
34800 1151.20 0 134.6 2.1 48 16 68.0 0.66 73.5 -67.2
|
||||
34600 1155.30 0 134.9 2.0 49 15 68.6 0.67 73.2 -66.9
|
||||
34400 1159.30 0 135.1 2.0 50 15 69.4 0.67 72.9 -66.5
|
||||
34200 1163.30 0 135.4 2.0 52 14 70.2 0.67 72.6 -66.1
|
||||
34000 1167.00 0 135.6 1.9 53 14 70.9 0.68 72.2 -65.8
|
||||
33800 1170.80 0 135.8 1.9 54 14 71.5 0.68 71.7 -65.5
|
||||
33600 1174.50 0 136.1 1.8 55 13 71.5 0.69 71.3 -65.2
|
||||
33400 1178.10 0 136.3 1.8 56 13 71.2 0.69 70.8 -64.8
|
||||
33200 1181.60 0 136.5 1.8 57 13 70.8 0.70 70.3 -64.5
|
||||
33000 1185.10 0 136.7 1.8 58 12 70.4 0.70 69.9 -64.1
|
||||
32800 1188.50 0 136.9 1.7 59 12 70.1 0.71 69.3 -63.7
|
||||
32600 1191.90 0 137.1 1.7 59 12 70.0 0.71 68.8 -63.3
|
||||
32400 1195.30 0 137.3 1.7 60 12 70.0 0.72 68.3 -62.9
|
||||
32200 1198.60 0 137.5 1.7 60 11 69.9 0.72 67.8 -62.5
|
||||
32000 1201.90 0 137.7 1.7 60 11 70.0 0.73 67.4 -62.4
|
||||
31800 1205.20 0 137.9 1.7 61 11 70.1 0.73 67.2 -62.2
|
||||
31600 1208.60 0 138.1 1.7 61 11 70.2 0.74 67.0 -62.2
|
||||
31400 1211.90 0 138.2 1.6 61 11 70.3 0.74 66.9 -62.1
|
||||
31200 1215.20 0 138.4 1.7 61 11 70.4 0.75 66.7 -62.0
|
||||
31000 1218.50 0 138.6 1.6 61 11 70.4 0.75 66.6 -61.7
|
||||
30800 1221.60 0 138.8 1.7 61 10 70.3 0.76 66.2 -61.4
|
||||
30600 1224.90 0 138.9 1.7 62 10 70.2 0.76 65.9 -61.1
|
||||
30400 1228.20 0 139.1 1.6 62 10 70.1 0.77 65.6 -60.8
|
||||
30200 1231.40 0 139.3 1.7 62 10 70.1 0.77 65.2 -60.5
|
||||
30000 1234.70 0 139.4 1.6 63 10 70.1 0.78 64.9 -60.1
|
||||
29800 1237.80 0 139.6 1.6 63 10 70.1 0.78 64.6 -59.8
|
||||
29600 1240.90 0 139.8 1.6 64 10 70.2 0.79 64.2 -59.4
|
||||
29400 1244.10 0 139.9 1.6 64 9 70.2 0.79 63.8 -59.1
|
||||
29200 1247.30 0 140.1 1.5 64 9 70.3 0.80 63.4 -58.7
|
||||
29000 1250.40 0 140.2 1.5 65 9 70.3 0.80 62.9 -58.4
|
||||
28800 1253.50 0 140.4 1.6 65 9 70.3 0.81 62.5 -58.1
|
||||
28600 1256.50 0 140.5 1.5 66 9 70.3 0.81 62.0 -57.7
|
||||
}
|
||||
} Ende Spaltengruppe
|
||||
} Ende Standard_Tafel
|
||||
|
||||
} Ende Schuss_Tafel
|
||||
|
||||
+2
@@ -0,0 +1,2 @@
|
||||
// Fire_Report: TimerTick=58908 AmmuniationType=4 Azimut=79,7 Elevation=67,1 Temperatur=25 RoundsAmm1=0 RoundsAmm2=7
|
||||
E3 01 1C E6 04 9F 02 00 00 1D 03 00 00 19 00 00 00 07
|
||||
Executable
+436
@@ -0,0 +1,436 @@
|
||||
###########################################################################
|
||||
# #
|
||||
# Projekt TES : File "VLAP-M64Incr5-TableE.sus" zur Munition "M64" #
|
||||
# #
|
||||
# Bei der Auspraegung des Ballistik-Moduls vereinbarte Bezeichnungen #
|
||||
# Tafel_Namen : ENTFERNUNG, AUFSATZ, FLUGZEIT, -- obligatorisch #
|
||||
# VORHALT -- projektspezifisch #
|
||||
# Param_Namen : DELTA_V0, LUFTTEMP, LUFTDRUCK, #
|
||||
# LAENGSWIND, QUERWIND, #
|
||||
# PULVERTEMP -- Korrektur-Parameter #
|
||||
# #
|
||||
###########################################################################
|
||||
|
||||
# Aenderung/Stand: 09.07.14-07:52
|
||||
|
||||
Schuss_Tafel =
|
||||
{
|
||||
Munition = "VLAP-M64"
|
||||
Version = "VLAP M64 Incr5 Table-E"
|
||||
Muni_Parameter = { Kaliber = 155.0 Masse = 46.30 V0 = 912.0 }
|
||||
Std_Parameter = { DELTA_V0 = 0.0
|
||||
LUFTTEMP = 15.0
|
||||
LUFTDRUCK = 1013.25
|
||||
LAENGSWIND= 0.0
|
||||
QUERWIND = 0.0
|
||||
PULVERTEMP= 21.1 }
|
||||
Entfernung_Range= { Min = 100.0 Max = 54100.0 Delta = 100.0 Scheitel = 54184.0 }
|
||||
Ballistik = "Parabel"
|
||||
###########################################################################
|
||||
|
||||
Standard_Tafel =
|
||||
{
|
||||
Spaltengruppe =
|
||||
{ Belegung = { AUFSATZ = (2) [-]
|
||||
VORHALT = (3) [-]
|
||||
FLUGZEIT = (4)
|
||||
DELTA_RGE = (5) [-]
|
||||
DELTA_ELEV = (6)
|
||||
FORK = (7) [-]
|
||||
DRIFT = (8) [-]
|
||||
}
|
||||
Zeilenlaenge = 8
|
||||
Datenblock =
|
||||
{
|
||||
#
|
||||
# RGE ELEV TOF DELTA DELTA FORK BEARING-CORR. RANGE-CORR.
|
||||
# ENTF AUFSATZ VORHALT FLUGZEIT RGE ELEV DRIFT CW DEC INC
|
||||
# [m] [mil] [mil] [sec] [mil] [m] [mil] [mil] [mil] [m] [m]
|
||||
#
|
||||
25000 234.4 0 39.7 1.8 57 10 9.2 0.34 2.9 -2.8
|
||||
25100 236.2 0 40.0 1.8 56 11 9.2 0.35 2.9 -2.8
|
||||
25200 238.0 0 40.2 1.8 56 11 9.3 0.35 2.9 -2.8
|
||||
25300 239.8 0 40.5 1.8 55 11 9.3 0.35 2.9 -2.7
|
||||
25400 241.7 0 40.8 1.8 54 11 9.4 0.35 2.9 -2.7
|
||||
25500 243.5 0 41.1 1.8 54 11 9.4 0.36 2.8 -2.7
|
||||
25600 245.4 0 41.4 1.9 53 11 9.4 0.36 2.8 -2.7
|
||||
25700 247.3 0 41.7 1.9 53 11 9.5 0.36 2.8 -2.7
|
||||
25800 249.2 0 42.0 1.9 53 11 9.5 0.37 2.7 -2.7
|
||||
25900 251.1 0 42.3 1.9 52 11 9.6 0.37 2.7 -2.7
|
||||
26000 253.0 0 42.6 1.9 52 11 9.6 0.37 2.7 -2.7
|
||||
26100 255.0 0 42.9 1.9 52 11 9.7 0.38 2.7 -2.7
|
||||
26200 256.9 0 43.2 1.9 52 11 9.7 0.38 2.7 -2.7
|
||||
26300 258.9 0 43.5 1.9 51 11 9.8 0.38 2.7 -2.6
|
||||
26400 260.8 0 43.8 1.9 51 11 9.8 0.38 2.7 -2.6
|
||||
26500 262.7 0 44.1 1.9 51 11 9.9 0.38 2.6 -2.6
|
||||
26600 264.7 0 44.4 2.0 50 11 9.9 0.38 2.6 -2.6
|
||||
26700 266.7 0 44.7 2.0 50 12 10.0 0.39 2.6 -2.6
|
||||
26800 268.6 0 45.0 2.0 50 12 10.0 0.39 2.6 -2.6
|
||||
26900 270.6 0 45.3 2.0 49 12 10.1 0.39 2.6 -2.5
|
||||
27000 272.6 0 45.6 2.0 49 12 10.1 0.40 2.6 -2.5
|
||||
27100 274.7 0 45.9 2.1 49 12 10.2 0.40 2.6 -2.5
|
||||
27200 276.8 0 46.2 2.1 48 12 10.2 0.40 2.5 -2.5
|
||||
27300 278.9 0 46.5 2.1 48 12 10.3 0.41 2.5 -2.5
|
||||
27400 281.0 0 46.8 2.1 48 13 10.3 0.41 2.5 -2.5
|
||||
27500 283.1 0 47.2 2.1 47 13 10.4 0.41 2.5 -2.5
|
||||
27600 285.3 0 47.5 2.1 47 13 10.4 0.42 2.5 -2.4
|
||||
27700 287.5 0 47.8 2.1 47 13 10.5 0.42 2.5 -2.4
|
||||
27700 287.5 0 47.8 2.1 47 13 10.5 0.42 2.5 -2.4
|
||||
27800 289.7 0 48.1 2.1 47 13 10.5 0.42 2.5 -2.4
|
||||
27900 291.8 0 48.4 2.1 47 13 10.6 0.42 2.5 -2.4
|
||||
28000 294.0 0 48.8 2.1 46 13 10.6 0.42 2.5 -2.4
|
||||
28100 296.2 0 49.1 2.1 46 13 10.7 0.43 2.4 -2.4
|
||||
28200 298.3 0 49.4 2.1 46 13 10.7 0.43 2.4 -2.4
|
||||
28300 300.5 0 49.7 2.1 46 13 10.7 0.43 2.4 -2.4
|
||||
28400 302.6 0 50.0 2.1 46 13 10.8 0.43 2.4 -2.4
|
||||
28500 304.7 0 50.3 2.2 46 13 10.8 0.43 2.4 -2.4
|
||||
28600 306.9 0 50.6 2.2 45 13 10.9 0.44 2.4 -2.4
|
||||
28700 309.0 0 51.0 2.2 45 13 10.9 0.44 2.4 -2.3
|
||||
28800 311.2 0 51.3 2.3 45 14 11.0 0.44 2.4 -2.3
|
||||
28900 313.5 0 51.6 2.3 45 14 11.0 0.44 2.4 -2.3
|
||||
29000 315.8 0 51.9 2.3 45 14 11.1 0.45 2.4 -2.3
|
||||
29100 318.2 0 52.3 2.3 44 14 11.1 0.45 2.4 -2.3
|
||||
29200 320.5 0 52.6 2.3 44 14 11.2 0.45 2.4 -2.3
|
||||
29300 322.8 0 52.9 2.3 44 14 11.2 0.45 2.4 -2.3
|
||||
29400 325.0 0 53.3 2.3 44 14 11.3 0.46 2.3 -2.3
|
||||
29500 327.3 0 53.6 2.3 44 14 11.3 0.46 2.3 -2.3
|
||||
29600 329.5 0 53.9 2.3 44 14 11.4 0.46 2.3 -2.3
|
||||
29700 331.8 0 54.2 2.3 44 14 11.4 0.46 2.3 -2.3
|
||||
29800 334.1 0 54.6 2.3 44 14 11.5 0.46 2.3 -2.2
|
||||
29900 336.4 0 54.9 2.3 44 14 11.5 0.47 2.3 -2.2
|
||||
30000 338.7 0 55.2 2.3 44 14 11.6 0.47 2.3 -2.2
|
||||
30100 341.0 0 55.5 2.3 43 14 11.6 0.47 2.3 -2.2
|
||||
30200 343.3 0 55.9 2.3 43 14 11.7 0.47 2.3 -2.2
|
||||
30300 345.6 0 56.2 2.3 43 14 11.7 0.48 2.3 -2.2
|
||||
30400 347.9 0 56.5 2.3 43 15 11.8 0.48 2.3 -2.2
|
||||
30500 350.2 0 56.8 2.3 43 15 11.8 0.48 2.3 -2.2
|
||||
30500 350.2 0 56.8 2.3 43 15 11.8 0.48 2.3 -2.2
|
||||
30600 352.5 0 57.2 2.3 43 15 11.9 0.48 2.3 -2.2
|
||||
30700 354.9 0 57.5 2.3 43 15 11.9 0.48 2.3 -2.2
|
||||
30800 357.2 0 57.8 2.3 43 15 12.0 0.49 2.3 -2.2
|
||||
30900 359.5 0 58.1 2.3 43 15 12.0 0.49 2.3 -2.2
|
||||
31000 361.9 0 58.5 2.3 43 15 12.1 0.49 2.3 -2.2
|
||||
31100 364.2 0 58.8 2.3 43 15 12.1 0.49 2.3 -2.2
|
||||
31200 366.5 0 59.1 2.3 43 15 12.2 0.50 2.3 -2.2
|
||||
31300 368.9 0 59.5 2.3 43 15 12.2 0.50 2.2 -2.2
|
||||
31400 371.2 0 59.8 2.3 43 15 12.3 0.50 2.2 -2.2
|
||||
31500 373.6 0 60.1 2.3 43 15 12.3 0.50 2.2 -2.2
|
||||
31600 375.9 0 60.4 2.3 43 15 12.4 0.51 2.2 -2.2
|
||||
31700 378.3 0 60.8 2.3 43 15 12.4 0.51 2.2 -2.2
|
||||
31800 380.6 0 61.1 2.3 43 15 12.5 0.51 2.2 -2.2
|
||||
31900 383.0 0 61.4 2.3 43 15 12.5 0.51 2.2 -2.2
|
||||
32000 385.3 0 61.7 2.3 43 15 12.6 0.52 2.2 -2.2
|
||||
32100 387.6 0 62.1 2.4 43 15 12.6 0.52 2.2 -2.2
|
||||
32200 390.0 0 62.4 2.4 43 15 12.7 0.52 2.2 -2.2
|
||||
32300 392.3 0 62.7 2.4 43 16 12.7 0.52 2.2 -2.2
|
||||
32400 394.7 0 63.1 2.4 43 16 12.8 0.52 2.2 -2.2
|
||||
32500 397.0 0 63.4 2.4 43 16 12.8 0.53 2.2 -2.2
|
||||
32600 399.4 0 63.7 2.4 43 16 12.9 0.53 2.2 -2.2
|
||||
32700 401.7 0 64.0 2.4 43 16 12.9 0.53 2.2 -2.2
|
||||
32800 404.1 0 64.4 2.4 43 16 13.0 0.53 2.2 -2.2
|
||||
32900 406.5 0 64.7 2.4 43 16 13.0 0.53 2.2 -2.2
|
||||
33000 408.8 0 65.0 2.4 43 16 13.1 0.53 2.2 -2.2
|
||||
33100 411.2 0 65.3 2.4 43 16 13.1 0.53 2.2 -2.2
|
||||
33200 413.5 0 65.7 2.4 43 16 13.2 0.53 2.2 -2.2
|
||||
33200 413.5 0 65.7 2.4 43 16 13.2 0.53 2.2 -2.2
|
||||
33300 415.9 0 66.0 2.3 43 16 13.2 0.54 2.2 -2.2
|
||||
33400 418.2 0 66.3 2.3 43 16 13.3 0.54 2.2 -2.2
|
||||
33500 420.5 0 66.6 2.3 43 16 13.3 0.54 2.2 -2.2
|
||||
33600 422.9 0 67.0 2.3 43 16 13.4 0.54 2.2 -2.2
|
||||
33700 425.2 0 67.3 2.3 43 16 13.4 0.55 2.2 -2.2
|
||||
33800 427.5 0 67.6 2.3 43 16 13.5 0.55 2.2 -2.2
|
||||
33900 429.9 0 67.9 2.3 43 16 13.6 0.55 2.2 -2.2
|
||||
34000 432.2 0 68.3 2.3 43 16 13.6 0.55 2.2 -2.2
|
||||
34100 434.6 0 68.6 2.3 43 16 13.7 0.55 2.2 -2.2
|
||||
34200 436.9 0 68.9 2.3 43 16 13.7 0.55 2.2 -2.2
|
||||
34300 439.2 0 69.2 2.3 43 16 13.8 0.55 2.2 -2.2
|
||||
34400 441.6 0 69.5 2.3 43 16 13.8 0.55 2.2 -2.2
|
||||
34500 443.9 0 69.9 2.3 43 16 13.9 0.55 2.3 -2.2
|
||||
34600 446.2 0 70.2 2.3 43 16 13.9 0.56 2.3 -2.2
|
||||
34700 448.5 0 70.5 2.3 43 16 14.0 0.56 2.3 -2.2
|
||||
34800 450.8 0 70.8 2.3 43 16 14.0 0.56 2.3 -2.2
|
||||
34900 453.1 0 71.2 2.3 43 16 14.1 0.56 2.3 -2.2
|
||||
35000 455.5 0 71.5 2.3 43 17 14.1 0.56 2.3 -2.2
|
||||
35100 457.8 0 71.8 2.3 43 17 14.2 0.56 2.3 -2.2
|
||||
35200 460.1 0 72.1 2.3 43 17 14.3 0.56 2.3 -2.2
|
||||
35300 462.4 0 72.4 2.3 43 17 14.3 0.56 2.3 -2.2
|
||||
35400 464.7 0 72.8 2.3 44 17 14.4 0.56 2.3 -2.2
|
||||
35500 467.0 0 73.1 2.3 44 17 14.4 0.57 2.3 -2.2
|
||||
35600 469.3 0 73.4 2.3 44 17 14.5 0.57 2.3 -2.2
|
||||
35700 471.6 0 73.7 2.3 44 17 14.5 0.57 2.3 -2.2
|
||||
35800 473.9 0 74.0 2.3 44 17 14.6 0.57 2.3 -2.2
|
||||
35900 476.1 0 74.3 2.3 44 17 14.7 0.58 2.3 -2.2
|
||||
36000 478.4 0 74.7 2.3 44 17 14.7 0.58 2.3 -2.2
|
||||
36100 480.7 0 75.0 2.3 44 17 14.8 0.58 2.3 -2.2
|
||||
36200 483.0 0 75.3 2.3 44 17 14.8 0.58 2.4 -2.2
|
||||
36300 485.3 0 75.6 2.3 44 17 14.9 0.58 2.4 -2.3
|
||||
36400 487.5 0 75.9 2.3 44 17 14.9 0.58 2.4 -2.3
|
||||
36500 489.8 0 76.2 2.3 44 17 15.0 0.58 2.4 -2.3
|
||||
36600 492.1 0 76.5 2.3 44 17 15.1 0.58 2.4 -2.3
|
||||
36700 494.3 0 76.9 2.3 44 17 15.1 0.58 2.4 -2.3
|
||||
36800 496.6 0 77.2 2.3 44 17 15.2 0.58 2.4 -2.3
|
||||
36900 498.8 0 77.5 2.3 44 17 15.2 0.58 2.4 -2.3
|
||||
37000 501.1 0 77.8 2.3 45 17 15.3 0.58 2.4 -2.3
|
||||
37100 503.3 0 78.1 2.3 45 17 15.4 0.58 2.4 -2.3
|
||||
37200 505.6 0 78.4 2.3 45 17 15.4 0.59 2.4 -2.3
|
||||
37300 507.8 0 78.7 2.3 45 17 15.5 0.59 2.4 -2.3
|
||||
37400 510.0 0 79.0 2.3 45 17 15.5 0.59 2.4 -2.3
|
||||
37500 512.3 0 79.4 2.2 45 17 15.6 0.59 2.4 -2.3
|
||||
37600 514.5 0 79.7 2.2 45 17 15.7 0.59 2.4 -2.3
|
||||
37700 516.7 0 80.0 2.2 45 17 15.7 0.59 2.5 -2.4
|
||||
37800 518.9 0 80.3 2.2 45 17 15.8 0.59 2.5 -2.4
|
||||
37900 521.1 0 80.6 2.2 45 17 15.8 0.59 2.5 -2.4
|
||||
38000 523.3 0 80.9 2.2 46 17 15.9 0.59 2.5 -2.4
|
||||
38100 525.5 0 81.2 2.2 46 17 16.0 0.60 2.5 -2.4
|
||||
38200 527.7 0 81.5 2.2 46 17 16.0 0.60 2.5 -2.4
|
||||
38300 529.9 0 81.8 2.2 46 17 16.1 0.60 2.5 -2.4
|
||||
38400 532.2 0 82.1 2.2 46 17 16.1 0.60 2.5 -2.4
|
||||
38500 534.4 0 82.4 2.2 46 17 16.2 0.60 2.5 -2.4
|
||||
38600 536.6 0 82.7 2.2 46 17 16.3 0.60 2.5 -2.4
|
||||
38700 538.7 0 83.0 2.1 46 17 16.3 0.60 2.5 -2.4
|
||||
38800 540.9 0 83.3 2.1 46 17 16.4 0.60 2.5 -2.5
|
||||
38900 542.9 0 83.6 2.1 46 17 16.5 0.60 2.5 -2.5
|
||||
39000 545.0 0 83.9 2.1 46 17 16.5 0.60 2.6 -2.5
|
||||
39100 547.0 0 84.2 2.1 46 17 16.6 0.60 2.6 -2.5
|
||||
39200 549.1 0 84.5 2.1 46 17 16.6 0.60 2.6 -2.5
|
||||
39300 551.2 0 84.8 2.1 46 18 16.7 0.60 2.6 -2.5
|
||||
39400 553.3 0 85.1 2.1 46 18 16.8 0.60 2.6 -2.5
|
||||
39500 555.5 0 85.4 2.1 46 18 16.8 0.60 2.6 -2.5
|
||||
39600 557.6 0 85.7 2.1 46 18 16.9 0.60 2.6 -2.5
|
||||
39700 559.8 0 86.0 2.1 46 18 17.0 0.60 2.6 -2.5
|
||||
39800 562.1 0 86.3 2.1 46 18 17.0 0.60 2.6 -2.5
|
||||
39900 564.4 0 86.6 2.1 46 18 17.1 0.60 2.6 -2.5
|
||||
40000 566.7 0 86.9 2.1 46 18 17.2 0.61 2.6 -2.6
|
||||
40100 568.9 0 87.2 2.1 46 18 17.3 0.61 2.6 -2.6
|
||||
40200 571.1 0 87.5 2.1 46 18 17.3 0.61 2.6 -2.6
|
||||
40300 573.3 0 87.8 2.1 47 18 17.4 0.61 2.6 -2.6
|
||||
40400 575.4 0 88.1 2.1 47 18 17.5 0.61 2.7 -2.6
|
||||
40500 577.5 0 88.4 2.1 47 18 17.5 0.61 2.7 -2.6
|
||||
40600 579.7 0 88.7 2.1 47 18 17.6 0.61 2.7 -2.6
|
||||
40700 581.8 0 89.0 2.1 47 18 17.7 0.61 2.7 -2.6
|
||||
40800 583.9 0 89.3 2.1 47 18 17.8 0.61 2.7 -2.6
|
||||
40900 586.0 0 89.6 2.1 47 18 17.8 0.61 2.7 -2.6
|
||||
41000 588.1 0 89.9 2.1 47 18 17.9 0.61 2.7 -2.6
|
||||
41100 590.2 0 90.2 2.1 47 18 18.0 0.61 2.7 -2.6
|
||||
41200 592.4 0 90.5 2.1 48 18 18.0 0.61 2.7 -2.6
|
||||
41300 594.5 0 90.8 2.1 48 18 18.1 0.61 2.8 -2.7
|
||||
41400 596.6 0 91.1 2.1 48 18 18.2 0.61 2.8 -2.7
|
||||
41500 598.7 0 91.4 2.1 48 18 18.3 0.61 2.8 -2.7
|
||||
41600 600.7 0 91.6 2.1 48 18 18.3 0.61 2.8 -2.7
|
||||
41700 602.7 0 91.9 2.1 48 18 18.4 0.61 2.8 -2.7
|
||||
41800 604.6 0 92.2 2.1 48 18 18.5 0.61 2.8 -2.7
|
||||
41900 606.6 0 92.5 2.1 48 18 18.6 0.61 2.8 -2.7
|
||||
42000 608.6 0 92.8 2.1 48 18 18.6 0.61 2.8 -2.7
|
||||
42100 610.6 0 93.0 2.1 48 18 18.7 0.61 2.8 -2.7
|
||||
42200 612.8 0 93.3 2.1 48 18 18.8 0.61 2.8 -2.7
|
||||
42300 615.1 0 93.6 2.1 48 18 18.9 0.61 2.8 -2.7
|
||||
42400 617.3 0 93.9 2.1 48 18 19.0 0.61 2.8 -2.7
|
||||
42500 619.5 0 94.2 2.1 48 18 19.0 0.61 2.8 -2.7
|
||||
42600 621.7 0 94.5 2.1 48 18 19.1 0.61 2.8 -2.7
|
||||
42700 623.8 0 94.8 2.1 48 18 19.2 0.61 2.9 -2.8
|
||||
42800 625.9 0 95.1 2.1 48 18 19.3 0.61 2.9 -2.8
|
||||
42900 627.9 0 95.4 2.0 48 18 19.4 0.61 2.9 -2.8
|
||||
43000 629.9 0 95.7 2.0 48 18 19.4 0.61 2.9 -2.8
|
||||
43100 631.9 0 96.0 2.0 49 18 19.5 0.61 2.9 -2.8
|
||||
43200 633.8 0 96.2 2.0 49 18 19.6 0.61 2.9 -2.8
|
||||
43300 635.7 0 96.5 2.0 49 18 19.7 0.61 3.0 -2.8
|
||||
43400 637.7 0 96.8 2.0 49 18 19.8 0.61 3.0 -2.9
|
||||
43500 639.7 0 97.0 2.0 49 18 19.8 0.61 3.0 -2.9
|
||||
43600 641.8 0 97.3 2.0 49 18 19.9 0.61 3.0 -2.9
|
||||
43700 644.1 0 97.6 2.0 49 18 20.0 0.61 3.0 -2.9
|
||||
43800 646.3 0 97.9 2.0 49 18 20.1 0.61 3.0 -2.9
|
||||
43900 648.5 0 98.2 2.0 49 18 20.2 0.61 3.0 -2.9
|
||||
44000 650.6 0 98.5 2.0 49 18 20.3 0.61 3.0 -2.9
|
||||
44100 652.5 0 98.8 2.0 49 18 20.4 0.61 3.0 -2.9
|
||||
44200 654.4 0 99.1 2.0 49 18 20.5 0.61 3.1 -2.9
|
||||
44300 656.3 0 99.3 2.0 49 18 20.6 0.61 3.1 -3.0
|
||||
44400 658.2 0 99.6 2.0 50 18 20.6 0.61 3.1 -3.0
|
||||
44500 660.1 0 99.9 2.0 50 18 20.7 0.61 3.1 -3.0
|
||||
44600 662.2 0 100.2 2.0 50 18 20.8 0.61 3.1 -3.0
|
||||
44700 664.4 0 100.4 2.0 50 18 20.9 0.61 3.2 -3.0
|
||||
44800 666.5 0 100.7 2.0 50 18 21.0 0.61 3.2 -3.0
|
||||
44900 668.7 0 101.0 2.0 50 18 21.1 0.61 3.2 -3.0
|
||||
45000 670.8 0 101.3 2.0 50 18 21.2 0.61 3.2 -3.1
|
||||
45100 672.8 0 101.6 2.0 50 18 21.3 0.61 3.2 -3.1
|
||||
45200 674.8 0 101.8 2.0 50 18 21.4 0.61 3.2 -3.1
|
||||
45300 676.8 0 102.1 2.0 50 18 21.5 0.61 3.3 -3.1
|
||||
45400 678.7 0 102.4 2.0 50 18 21.6 0.61 3.3 -3.1
|
||||
45500 680.6 0 102.6 2.0 50 18 21.7 0.61 3.3 -3.2
|
||||
45600 682.4 0 102.9 2.0 50 19 21.8 0.61 3.3 -3.2
|
||||
45700 684.2 0 103.1 2.0 50 19 21.9 0.61 3.3 -3.2
|
||||
45800 686.0 0 103.4 2.0 50 19 22.0 0.61 3.3 -3.2
|
||||
45900 687.9 0 103.7 2.0 50 19 22.0 0.61 3.3 -3.2
|
||||
46000 689.8 0 103.9 2.0 51 19 22.1 0.61 3.3 -3.2
|
||||
46100 691.8 0 104.2 2.0 51 19 22.2 0.61 3.3 -3.2
|
||||
46200 693.9 0 104.5 2.0 51 19 22.3 0.61 3.4 -3.2
|
||||
46300 696.1 0 104.8 2.0 51 19 22.5 0.61 3.4 -3.2
|
||||
46400 698.2 0 105.0 2.0 50 19 22.6 0.61 3.4 -3.2
|
||||
46500 700.4 0 105.3 2.0 50 19 22.7 0.61 3.4 -3.2
|
||||
46600 702.4 0 105.6 2.0 50 19 22.8 0.61 3.4 -3.2
|
||||
46700 704.3 0 105.9 2.0 50 19 22.9 0.61 3.5 -3.2
|
||||
46800 706.3 0 106.1 2.0 50 19 23.0 0.60 3.5 -3.2
|
||||
46900 708.3 0 106.4 2.0 50 19 23.1 0.60 3.5 -3.2
|
||||
47000 710.2 0 106.7 2.0 50 19 23.2 0.60 3.5 -3.2
|
||||
47100 712.2 0 106.9 2.0 50 19 23.3 0.60 3.5 -3.2
|
||||
47200 714.2 0 107.2 2.0 50 19 23.4 0.60 3.5 -3.2
|
||||
47300 716.2 0 107.5 2.0 49 19 23.5 0.60 3.5 -3.3
|
||||
47400 718.2 0 107.8 2.0 49 19 23.6 0.60 3.5 -3.3
|
||||
47500 720.3 0 108.0 2.0 49 19 23.8 0.60 3.5 -3.3
|
||||
47600 722.3 0 108.3 2.0 49 19 23.9 0.60 3.5 -3.3
|
||||
47700 724.3 0 108.6 2.0 49 19 24.0 0.60 3.5 -3.3
|
||||
47800 726.3 0 108.8 2.0 49 20 24.1 0.60 3.5 -3.3
|
||||
47900 728.3 0 109.1 2.0 49 20 24.2 0.60 3.5 -3.3
|
||||
48000 730.4 0 109.4 2.0 49 20 24.3 0.60 3.5 -3.3
|
||||
48100 732.4 0 109.7 2.0 49 20 24.5 0.60 3.5 -3.3
|
||||
48200 734.5 0 109.9 2.0 49 20 24.6 0.60 3.5 -3.4
|
||||
48300 736.5 0 110.2 2.0 49 20 24.7 0.60 3.5 -3.4
|
||||
48400 738.6 0 110.5 2.0 48 20 24.8 0.60 3.5 -3.4
|
||||
48500 740.6 0 110.8 2.1 48 20 24.9 0.60 3.5 -3.4
|
||||
48600 742.7 0 111.0 2.1 48 20 25.1 0.60 3.5 -3.4
|
||||
48700 744.8 0 111.3 2.1 48 21 25.2 0.60 3.5 -3.4
|
||||
48800 746.9 0 111.6 2.1 48 21 25.3 0.60 3.5 -3.4
|
||||
48900 749.0 0 111.9 2.1 47 21 25.5 0.60 3.5 -3.4
|
||||
49000 751.1 0 112.2 2.1 47 21 25.6 0.60 3.5 -3.4
|
||||
49100 753.2 0 112.4 2.1 47 21 25.7 0.60 3.5 -3.5
|
||||
49200 755.3 0 112.7 2.1 47 21 25.9 0.59 3.5 -3.5
|
||||
49300 757.5 0 113.0 2.1 47 21 26.0 0.59 3.5 -3.5
|
||||
49400 759.6 0 113.3 2.1 47 21 26.2 0.59 3.5 -3.5
|
||||
49500 761.8 0 113.6 2.1 47 21 26.3 0.59 3.5 -3.5
|
||||
49600 764.0 0 113.9 2.1 47 22 26.4 0.59 3.5 -3.5
|
||||
49700 766.2 0 114.2 2.1 46 22 26.6 0.59 3.5 -3.5
|
||||
49800 768.4 0 114.4 2.1 46 22 26.7 0.59 3.5 -3.5
|
||||
49900 770.5 0 114.7 2.1 46 22 26.9 0.59 3.5 -3.5
|
||||
50000 772.5 0 115.0 2.1 45 22 27.0 0.59 3.5 -3.5
|
||||
50100 774.5 0 115.3 2.1 45 23 27.2 0.59 3.5 -3.5
|
||||
50200 776.6 0 115.6 2.2 44 23 27.3 0.59 3.5 -3.5
|
||||
50300 778.7 0 115.8 2.3 44 23 27.5 0.59 3.5 -3.5
|
||||
50400 780.9 0 116.1 2.4 43 23 27.6 0.59 3.5 -3.5
|
||||
50500 783.5 0 116.5 2.4 42 23 27.8 0.59 3.5 -3.4
|
||||
50600 786.2 0 116.8 2.5 42 24 28.0 0.59 3.6 -3.4
|
||||
50700 788.9 0 117.1 2.5 41 24 28.2 0.59 3.6 -3.4
|
||||
50800 791.4 0 117.5 2.5 41 24 28.3 0.59 3.6 -3.4
|
||||
50900 793.9 0 117.8 2.5 40 25 28.5 0.59 3.6 -3.3
|
||||
51000 796.3 0 118.1 2.5 40 25 28.7 0.58 3.6 -3.3
|
||||
51100 798.8 0 118.4 2.5 39 25 28.9 0.58 3.6 -3.3
|
||||
51200 801.3 0 118.7 2.5 39 26 29.1 0.58 3.6 -3.3
|
||||
51300 803.8 0 119.1 2.5 39 26 29.3 0.58 3.6 -3.3
|
||||
51400 806.3 0 119.4 2.6 38 27 29.5 0.58 3.5 -3.3
|
||||
51500 808.9 0 119.7 2.6 38 27 29.7 0.58 3.5 -3.4
|
||||
51600 811.5 0 120.1 2.7 37 27 29.9 0.58 3.5 -3.3
|
||||
51700 814.2 0 120.4 2.7 37 28 30.1 0.58 3.5 -3.3
|
||||
51800 816.9 0 120.7 2.8 36 28 30.3 0.58 3.5 -3.3
|
||||
51900 819.7 0 121.1 2.8 36 28 30.5 0.58 3.5 -3.3
|
||||
52000 822.5 0 121.5 2.9 35 29 30.8 0.58 3.5 -3.3
|
||||
52100 825.4 0 121.8 2.9 35 30 31.0 0.58 3.5 -3.3
|
||||
52200 828.3 0 122.2 3.0 34 30 31.3 0.58 3.4 -3.3
|
||||
52300 831.2 0 122.6 3.0 34 30 31.5 0.58 3.4 -3.3
|
||||
52400 834.3 0 122.9 3.1 33 31 31.8 0.58 3.4 -3.2
|
||||
52500 837.4 0 123.3 3.1 32 31 32.1 0.58 3.4 -3.2
|
||||
52600 840.6 0 123.7 3.2 32 33 32.4 0.58 3.4 -3.2
|
||||
52700 843.9 0 124.1 3.2 32 35 32.7 0.58 3.4 -3.2
|
||||
52800 847.3 0 124.6 3.3 31 36 33.0 0.58 3.4 -3.2
|
||||
52900 850.6 0 125.0 3.4 31 37 33.3 0.58 3.3 -3.2
|
||||
53000 853.5 0 125.4 3.6 30 38 33.6 0.58 3.3 -3.1
|
||||
53100 856.5 0 125.7 3.8 29 39 33.9 0.58 3.3 -3.1
|
||||
53200 859.8 0 126.2 4.0 28 43 34.3 0.58 3.3 -3.1
|
||||
53300 864.6 0 126.7 4.3 27 45 34.8 0.58 3.3 -3.0
|
||||
53400 870.3 0 127.4 4.5 25 47 35.3 0.57 3.3 -3.0
|
||||
53500 875.0 0 127.9 4.8 23 47 35.8 0.57 3.2 -2.9
|
||||
53600 879.6 0 128.5 5.0 21 48 36.3 0.57 3.2 -2.9
|
||||
53700 883.5 0 129.0 6.0 19 53 36.8 0.57 3.2 -2.9
|
||||
53800 887.7 0 129.5 8.0 17 58 37.4 0.57 3.1 -2.9
|
||||
53900 895.1 0 130.4 11.6 14 64 38.1 0.57 3.0 -2.8
|
||||
54000 903.1 0 131.3 16.4 14 71 39.6 0.57 2.9 -2.8
|
||||
54100 908.9 0 132.0 22.8 13 72 41.7 0.58 2.9 -2.8
|
||||
54184 948.6 0 135.3 29.4 12 73 44.0 0.58 2.5 -2.3
|
||||
54100 967.8 0 138.5 13.6 13 72 46.3 0.58 2.3 -2.0
|
||||
54000 975.8 0 139.3 7.3 14 71 48.6 0.59 2.3 -1.9
|
||||
53900 982.4 0 140.0 6.1 16 60 50.3 0.59 2.2 -1.8
|
||||
53800 988.0 0 140.5 4.9 20 53 51.2 0.59 2.1 -1.8
|
||||
53700 992.2 0 140.9 4.2 23 46 52.1 0.59 2.0 -1.7
|
||||
53600 995.8 0 141.3 3.9 25 41 52.8 0.60 1.9 -1.7
|
||||
53500 999.3 0 141.6 3.7 26 38 53.5 0.60 1.9 -1.6
|
||||
53400 1003.1 0 142.0 3.6 27 36 54.2 0.60 1.8 -1.6
|
||||
53300 1007.0 0 142.3 3.5 28 35 54.9 0.60 1.8 -1.5
|
||||
53200 1010.8 0 142.7 3.4 28 34 55.6 0.60 1.7 -1.5
|
||||
53100 1014.2 0 143.0 3.3 29 33 56.3 0.60 1.7 -1.4
|
||||
53000 1017.5 0 143.3 3.2 31 32 56.9 0.61 1.7 -1.3
|
||||
52900 1020.7 0 143.6 3.1 32 30 57.6 0.61 1.6 -1.3
|
||||
52800 1023.8 0 143.9 3.0 33 30 58.2 0.61 1.6 -1.2
|
||||
52700 1026.7 0 144.2 2.9 34 29 58.8 0.61 1.5 -1.2
|
||||
52600 1029.6 0 144.5 2.8 36 28 59.3 0.61 1.5 -1.2
|
||||
52500 1032.3 0 144.7 2.7 36 27 59.9 0.61 1.4 -1.1
|
||||
52400 1035.0 0 145.0 2.7 37 26 60.4 0.62 1.4 -1.1
|
||||
52300 1037.5 0 145.2 2.6 38 25 61.0 0.62 1.3 -1.0
|
||||
52200 1040.0 0 145.4 2.6 39 25 61.5 0.62 1.3 -1.0
|
||||
52100 1042.5 0 145.6 2.5 40 24 62.0 0.62 1.3 -1.0
|
||||
52000 1044.9 0 145.8 2.5 41 23 62.5 0.62 1.3 -1.0
|
||||
51900 1047.2 0 146.0 2.4 42 23 63.1 0.63 1.2 -1.0
|
||||
51800 1049.6 0 146.2 2.4 43 22 63.6 0.63 1.2 -0.9
|
||||
51700 1052.2 0 146.5 2.3 44 22 64.2 0.63 1.2 -0.9
|
||||
51600 1054.8 0 146.7 2.3 45 21 64.8 0.63 1.2 -0.8
|
||||
51500 1057.3 0 147.0 2.2 46 21 65.3 0.63 1.1 -0.7
|
||||
51400 1059.7 0 147.2 2.2 47 20 65.8 0.63 1.1 -0.7
|
||||
51300 1061.6 0 147.3 2.1 48 20 66.3 0.63 1.1 -0.6
|
||||
51200 1063.5 0 147.5 2.1 49 19 66.7 0.63 1.0 -0.6
|
||||
51100 1065.3 0 147.6 2.0 50 19 67.2 0.64 1.0 -0.6
|
||||
51000 1067.0 0 147.7 2.0 50 18 67.6 0.64 0.9 -0.6
|
||||
50900 1068.8 0 147.9 2.0 51 18 68.1 0.64 0.9 -0.6
|
||||
50800 1070.7 0 148.0 2.0 52 18 68.5 0.64 0.8 -0.5
|
||||
50700 1072.9 0 148.2 1.9 53 17 69.0 0.64 0.8 -0.5
|
||||
50600 1075.0 0 148.4 1.9 54 17 69.5 0.65 0.8 -0.5
|
||||
50500 1077.1 0 148.6 1.9 54 17 70.0 0.65 0.8 -0.5
|
||||
50400 1079.2 0 148.8 1.9 55 16 70.5 0.65 0.7 -0.5
|
||||
50300 1081.0 0 148.9 1.8 56 16 70.9 0.65 0.7 -0.5
|
||||
50200 1082.7 0 149.1 1.8 57 16 71.4 0.65 0.7 -0.5
|
||||
50100 1084.3 0 149.2 1.7 58 16 71.8 0.65 0.7 -0.5
|
||||
50000 1085.9 0 149.3 1.7 59 15 72.2 0.66 0.6 -0.4
|
||||
49900 1087.5 0 149.4 1.7 59 15 72.6 0.66 0.6 -0.4
|
||||
49800 1089.0 0 149.5 1.6 60 15 73.0 0.66 0.6 -0.4
|
||||
49700 1090.6 0 149.6 1.6 61 15 73.4 0.66 0.6 -0.4
|
||||
49600 1092.3 0 149.7 1.6 61 15 73.8 0.66 0.6 -0.4
|
||||
49500 1093.9 0 149.9 1.6 62 14 74.3 0.67 0.6 -0.3
|
||||
49400 1095.6 0 150.0 1.6 62 14 74.7 0.67 0.5 -0.3
|
||||
49300 1097.2 0 150.1 1.6 62 14 75.1 0.67 0.5 -0.3
|
||||
49200 1098.8 0 150.3 1.6 63 14 75.6 0.68 0.5 -0.3
|
||||
49100 1100.5 0 150.4 1.6 63 14 76.0 0.68 0.5 -0.2
|
||||
49000 1102.1 0 150.5 1.6 63 14 76.4 0.68 0.5 -0.2
|
||||
48900 1103.7 0 150.6 1.6 64 13 76.8 0.68 0.4 -0.2
|
||||
48800 1105.2 0 150.7 1.6 64 13 77.2 0.69 0.4 -0.2
|
||||
48700 1106.8 0 150.8 1.5 65 13 77.6 0.69 0.4 -0.1
|
||||
48600 1108.3 0 151.0 1.5 65 13 78.0 0.69 0.4 -0.1
|
||||
48500 1109.9 0 151.1 1.5 66 13 78.4 0.69 0.3 -0.1
|
||||
48400 1111.4 0 151.2 1.5 66 13 78.8 0.69 0.3 0.0
|
||||
48300 1112.9 0 151.3 1.5 67 13 79.2 0.69 0.3 0.0
|
||||
48200 1114.3 0 151.4 1.5 67 13 79.6 0.69 0.3 0.0
|
||||
48100 1115.8 0 151.5 1.5 68 13 80.0 0.70 0.3 0.0
|
||||
48000 1117.3 0 151.6 1.5 68 12 80.4 0.70 0.3 0.0
|
||||
47900 1118.7 0 151.7 1.5 68 12 80.8 0.70 0.3 0.0
|
||||
47800 1120.2 0 151.8 1.5 69 12 81.2 0.70 0.3 0.1
|
||||
47700 1121.6 0 151.9 1.5 69 12 81.5 0.70 0.3 0.1
|
||||
47600 1123.0 0 152.0 1.5 69 12 81.9 0.70 0.2 0.1
|
||||
47500 1124.5 0 152.1 1.5 68 12 82.3 0.70 0.2 0.1
|
||||
47400 1125.9 0 152.2 1.5 68 12 82.6 0.71 0.2 0.1
|
||||
47300 1127.3 0 152.3 1.5 68 12 83.0 0.71 0.2 0.1
|
||||
47200 1128.8 0 152.4 1.5 68 12 83.3 0.71 0.2 0.1
|
||||
47100 1130.2 0 152.5 1.5 67 12 83.7 0.71 0.2 0.1
|
||||
47000 1131.7 0 152.6 1.5 67 12 84.0 0.71 0.2 0.1
|
||||
46900 1133.3 0 152.7 1.5 67 11 84.4 0.72 0.1 0.1
|
||||
46800 1134.8 0 152.8 1.5 67 11 84.8 0.72 0.1 0.1
|
||||
46700 1136.3 0 153.0 1.4 68 11 85.1 0.72 0.1 0.1
|
||||
46600 1137.7 0 153.1 1.4 70 11 85.5 0.73 0.0 0.1
|
||||
46500 1139.2 0 153.2 1.4 71 11 85.8 0.73 0.0 0.1
|
||||
46400 1140.6 0 153.3 1.4 73 11 86.2 0.73 0.0 0.1
|
||||
46300 1141.9 0 153.3 1.4 75 11 86.5 0.73 0.0 0.1
|
||||
46200 1143.2 0 153.4 1.3 76 10 86.8 0.73 0.0 0.1
|
||||
46100 1144.5 0 153.5 1.3 77 10 87.1 0.73 0.0 0.1
|
||||
46000 1145.7 0 153.6 1.3 78 10 87.4 0.74 0.0 0.1
|
||||
45900 1147.0 0 153.6 1.3 77 10 87.7 0.74 0.0 0.1
|
||||
45800 1148.3 0 153.7 1.3 77 10 88.0 0.74 0.0 0.1
|
||||
45700 1149.6 0 153.8 1.3 76 10 88.3 0.74 0.0 0.1
|
||||
}
|
||||
} Ende Spaltengruppe
|
||||
} Ende Standard_Tafel
|
||||
|
||||
} Ende Schuss_Tafel
|
||||
|
||||
Executable
+55
@@ -0,0 +1,55 @@
|
||||
/**
|
||||
* Geopairing Test
|
||||
* $Id$
|
||||
* $HeadURL$
|
||||
* $Author$
|
||||
* Created by Gerlinde Rudolphus, ESZS, 2016-04-14
|
||||
*/
|
||||
|
||||
#include <stdio.h>
|
||||
#include <Schusstafel.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
static const double ANGULAR_MIL = 6400.0 / 360.0;
|
||||
|
||||
int main(int argc, char **argv)
|
||||
{
|
||||
const char *st_directory = "./GeoPairing/firingTables";
|
||||
const char *st_file = "HE-M1-M64Incr3-TableE";
|
||||
Schusstafel schusstafel(st_directory,
|
||||
st_file,
|
||||
".sus");
|
||||
Schusstafel::TAFEL_NAMEN_ET tafelName = Schusstafel::ST_AUFSATZ;
|
||||
|
||||
if (argc == 1)
|
||||
{
|
||||
fprintf(stderr, "Usage: %s <elevation_milrad1> [<elevation_milrad2> ...]\n", argv[0]);
|
||||
return 1;
|
||||
}
|
||||
|
||||
fprintf(stdout, "Using schusstafel %s/%s.sus\n", st_directory, st_file);
|
||||
fprintf(stdout, " Range\t Aufsatz\tFlugzeit\t Drift\n");
|
||||
for (int i = 1; i < argc; i++)
|
||||
{
|
||||
float arg_wert = atof(argv[i]) / 1000;
|
||||
|
||||
float zielhoehenwinkel = 0.0;
|
||||
|
||||
float entfernung1 = 0.0;
|
||||
float aufsatz1 = 0.0;
|
||||
float flugzeit1 = 0.0;
|
||||
float drift1 = 0.0;
|
||||
|
||||
float entfernung2 = 0.0;
|
||||
float aufsatz2 = 0.0;
|
||||
float flugzeit2 = 0.0;
|
||||
float drift2 = 0.0;
|
||||
|
||||
schusstafel.ST_artillerie(tafelName, arg_wert, zielhoehenwinkel, &entfernung1, &aufsatz1, &flugzeit1, &drift1,
|
||||
&entfernung2, &aufsatz2, &flugzeit2, &drift2);
|
||||
|
||||
fprintf(stdout, "%8.2f\t%8.2f\t%8.2f\t%8.2f\n", entfernung1, aufsatz1 * 1000, flugzeit1, drift1 * 1000);
|
||||
}
|
||||
return 0;
|
||||
|
||||
}
|
||||
Executable
+350
@@ -0,0 +1,350 @@
|
||||
Testen der GeoPairing - Software
|
||||
--------------------------------
|
||||
|
||||
Um das Telegram DATENVERKEHR_GEOP_TDS 181 im LogView erzeugen zu koennen, muss in training_area_telegrams.h aus DATENVERKEHR_SRT_TDS = 71 eine 181 gemacht werden und neu compiliert werden.
|
||||
|
||||
--------------------------------------------------------------------
|
||||
1) Mörser
|
||||
--------------------------------------------------------------------
|
||||
|
||||
Transparente Daten vom GeoPairingModul (Stream.txt)
|
||||
E3 01 1C E6 04 9F 02 00 00 1D 03 00 00 19 00 00 00 07
|
||||
|
||||
Daten fuer das Telegramm DATENVERKEHR_GEOP_TDS (Id = 181) in LogView ( Neu TelegemmId 71 GEF_DATENVERKEHR_SRT_TDS OpaquePayloadDataId)
|
||||
--------------------------------------------------------------------
|
||||
|
||||
Ausstg-Nr : 1390
|
||||
Utm Nordwert: 76400
|
||||
Utm Ostwert : 92000
|
||||
|
||||
Payload-Length: 18
|
||||
Daten in Integer:
|
||||
|
||||
227
|
||||
1
|
||||
28
|
||||
230
|
||||
4
|
||||
159
|
||||
2
|
||||
0
|
||||
0
|
||||
29
|
||||
3
|
||||
0
|
||||
0
|
||||
25
|
||||
0
|
||||
0
|
||||
0
|
||||
7
|
||||
|
||||
|
||||
Ausgabe von GeoPairing auf der Konsole
|
||||
--------------------------------------
|
||||
playerId = 1390
|
||||
time = 1327406834
|
||||
positionLat = 53.0371
|
||||
positonLon = 8.88367
|
||||
tr.Data-Size = 18
|
||||
transparentData = e3011ce6049f0200001d0300001900000007
|
||||
l_MessageID = e3
|
||||
l_DeviceID = 1
|
||||
--> E3 : Firing Report
|
||||
calculateSingleFire (Mortar)...
|
||||
|
||||
|
||||
Sichtbar auf der Karte
|
||||
----------------------
|
||||
Position : 32U MD 92435 76435
|
||||
Durchmesser : 50m
|
||||
Guns : 1x1
|
||||
Munitionsart: Annz
|
||||
Identifier : _G_48
|
||||
|
||||
|
||||
Telegramm ins Gefechtsfeld
|
||||
--------------------------
|
||||
Telegramm Name --> wirkfeld_einzelgeschoss
|
||||
identitaet 0
|
||||
kennung 85
|
||||
bezeichner _G_48
|
||||
gps_zeit 1327408286
|
||||
utm_nordwert 76435
|
||||
utm_ostwert 92435
|
||||
wirkdurchmesser 30
|
||||
munitionsart 11
|
||||
|
||||
|
||||
--------------------------------------------------------------------
|
||||
2) IGLA Target Detection
|
||||
--------------------------------------------------------------------
|
||||
|
||||
Transparente Daten vom GeoPairingModul (Stream.txt)
|
||||
E3 02 1C E6 04 9F 02 00 00 1D 03 00 00 19 00 00 05 07
|
||||
|
||||
Luftfahrzeug
|
||||
------------
|
||||
Ausstg-Nr : 7701
|
||||
Utm Nordwert: 76859
|
||||
Utm Ostwert : 91600
|
||||
Hoehe : 120
|
||||
|
||||
|
||||
Daten fuer das Telegramm DATENVERKEHR_GEOP_TDS (Id = 181) in LogView ( Neu TelegemmId 71 GEF_DATENVERKEHR_SRT_TDS OpaquePayloadDataId)
|
||||
--------------------------------------------------------------------
|
||||
|
||||
Ausstg-Nr : 1390
|
||||
Utm Nordwert: 76850
|
||||
Utm Ostwert : 91550
|
||||
|
||||
Payload-Length: 18
|
||||
Daten in Integer:
|
||||
|
||||
227
|
||||
2
|
||||
28
|
||||
230
|
||||
4
|
||||
159
|
||||
2
|
||||
0
|
||||
0
|
||||
29
|
||||
3
|
||||
0
|
||||
0
|
||||
25
|
||||
0
|
||||
0
|
||||
5
|
||||
7
|
||||
|
||||
|
||||
Ausgabe von GeoPairing auf der Konsole
|
||||
--------------------------------------
|
||||
playerId = 1390
|
||||
time = 1327407368
|
||||
positionLat = 53.0411
|
||||
positonLon = 8.87397
|
||||
tr.Data-Size = 18
|
||||
transparentData = e3021ce6049f0200001d0300001900000507
|
||||
l_MessageID = e3
|
||||
l_DeviceID = 2
|
||||
--> E3 : Firing Report
|
||||
calculateAirFire (IGLA)...
|
||||
Step 1: Update the air targets. Count : 1
|
||||
-> IGLA : Request Target Detection
|
||||
searchAirTarget (IGLA)...
|
||||
<-- EC : Report Target Detection
|
||||
Target Found : 1
|
||||
|
||||
|
||||
Telegramm ins Gefechtsfeld
|
||||
--------------------------
|
||||
Telegramm Name --> datenverkehr_tds_geop
|
||||
identitaet 1390
|
||||
payload.payload_len 5
|
||||
payload.payload_val[i] -21
|
||||
payload.payload_val[i] 5
|
||||
payload.payload_val[i] 0
|
||||
payload.payload_val[i] 0
|
||||
payload.payload_val[i] 0
|
||||
|
||||
|
||||
--------------------------------------------------------------------
|
||||
3) IGLA Target Fire
|
||||
--------------------------------------------------------------------
|
||||
|
||||
Transparente Daten vom GeoPairingModul (Stream.txt)
|
||||
E3 03 1C E6 04 9F 02 00 00 1D 03 00 00 19 00 00 05 07
|
||||
|
||||
Luftfahrzeug
|
||||
wichtig: eine 'aktuelle' Position mit dem Messagegenerator erzeugen
|
||||
Beim Test wurde positions_meldung_flaeflue benutzt
|
||||
------------
|
||||
Ausstg-Nr : 7701
|
||||
Utm Nordwert: 76859
|
||||
Utm Ostwert : 91600
|
||||
Hoehe : 120
|
||||
|
||||
|
||||
Daten fuer das Telegramm DATENVERKEHR_GEOP_TDS (Id = 181) in LogView ( Neu TelegemmId 71 GEF_DATENVERKEHR_SRT_TDS OpaquePayloadDataId)
|
||||
--------------------------------------------------------------------
|
||||
|
||||
Ausstg-Nr : 1390
|
||||
Utm Nordwert: 76850
|
||||
Utm Ostwert : 91550
|
||||
|
||||
Payload-Length: 18
|
||||
Daten in Integer:
|
||||
|
||||
227
|
||||
3
|
||||
28
|
||||
230
|
||||
4
|
||||
159
|
||||
2
|
||||
0
|
||||
0
|
||||
29
|
||||
3
|
||||
0
|
||||
0
|
||||
25
|
||||
0
|
||||
0
|
||||
5
|
||||
7
|
||||
|
||||
|
||||
Ausgabe von GeoPairing auf der Konsole
|
||||
--------------------------------------
|
||||
|
||||
playerId = 1390
|
||||
time = 1327408071
|
||||
positionLat = 53.0411
|
||||
positonLon = 8.87397
|
||||
tr.Data-Size = 18
|
||||
transparentData = e3031ce6049f0200001d0300001900000507
|
||||
l_MessageID = e3
|
||||
l_DeviceID = 3
|
||||
--> E3 : Firing Report
|
||||
calculateAirFire (IGLA)...
|
||||
Step 1: Update the air targets. Count : 2
|
||||
--> IGLA : Report Target Fire
|
||||
14682956 [0x7fc28300a7c0] ERROR simtec null - Couldn't create sensorData for DeviceID :
|
||||
Air Target 7701 in reach and hit
|
||||
|
||||
|
||||
|
||||
Telegramm ins Gefechtsfeld
|
||||
--------------------------
|
||||
Telegramm Name --> ausloesung_dus_treffer
|
||||
identitaet 7701
|
||||
gps_zeit 0
|
||||
munitionsart 101
|
||||
bek_richtung 28131
|
||||
bek_entfernung 51
|
||||
bek_wirkung d
|
||||
verursacher 1390
|
||||
|
||||
|
||||
|
||||
--------------------------------------------------------------------
|
||||
4) MK19
|
||||
--------------------------------------------------------------------
|
||||
|
||||
Transparente Daten vom GeoPairingModul (Stream.txt)
|
||||
E3 05 1C E6 04 9F 02 00 00 1D 03 00 00 19 00 00 05 07
|
||||
|
||||
|
||||
Daten fuer das Telegramm DATENVERKEHR_GEOP_TDS (Id = 181) in LogView ( Neu TelegemmId 71 GEF_DATENVERKEHR_SRT_TDS OpaquePayloadDataId)
|
||||
--------------------------------------------------------------------
|
||||
|
||||
Ausstg-Nr : 1390
|
||||
Utm Nordwert: 76850
|
||||
Utm Ostwert : 91550
|
||||
|
||||
Payload-Length: 18
|
||||
Daten in Integer:
|
||||
|
||||
227
|
||||
5
|
||||
28
|
||||
230
|
||||
4
|
||||
159
|
||||
2
|
||||
0
|
||||
0
|
||||
29
|
||||
3
|
||||
0
|
||||
0
|
||||
25
|
||||
0
|
||||
0
|
||||
5
|
||||
7
|
||||
|
||||
Ausgabe von GeoPairing auf der Konsole
|
||||
--------------------------------------
|
||||
playerId = 1390
|
||||
time = 1327408571
|
||||
positionLat = 53.0411
|
||||
positonLon = 8.87397
|
||||
tr.Data-Size = 18
|
||||
transparentData = e3051ce6049f0200001d0300001900000507
|
||||
l_MessageID = e3
|
||||
l_DeviceID = 5
|
||||
--> E3 : Firing Report
|
||||
calculateAreaFire (MK19)...
|
||||
|
||||
|
||||
Sichtbar auf der Karte
|
||||
----------------------
|
||||
Position : 32U MD 92826 77076
|
||||
Dimension : 16 x 10
|
||||
Aiming axis : 1404
|
||||
Guns : 1x5
|
||||
Munitionsart: Az
|
||||
Identifier : _G_49
|
||||
|
||||
|
||||
Telegramm ins Gefechtsfeld
|
||||
--------------------------
|
||||
Telegramm Name --> wirkfeld_flaechendeckendes_feuer
|
||||
identitaet 0
|
||||
kennung 86
|
||||
bezeichner _G_49
|
||||
gps_zeit 1327408601
|
||||
wirkdauer 0
|
||||
utm_nordwert 77076
|
||||
utm_ostwert 92826
|
||||
breite 3
|
||||
tiefe 2
|
||||
drehwinkel 1103
|
||||
anzahl_einschlaege 5
|
||||
wirkkantenlaenge 25
|
||||
munitionsart 10
|
||||
|
||||
|
||||
|
||||
--------------------------------------------------------------------
|
||||
5) AGS-17
|
||||
--------------------------------------------------------------------
|
||||
|
||||
Transparente Daten vom GeoPairingModul (Stream.txt)
|
||||
E3 08 1C E6 04 9F 02 00 00 1D 03 00 00 19 00 00 05 07
|
||||
|
||||
|
||||
Daten fuer das Telegramm DATENVERKEHR_GEOP_TDS (Id = 181) in LogView ( Neu TelegemmId 71 GEF_DATENVERKEHR_SRT_TDS OpaquePayloadDataId)
|
||||
--------------------------------------------------------------------
|
||||
|
||||
Ausstg-Nr : 1390
|
||||
Utm Nordwert: 76850
|
||||
Utm Ostwert : 91550
|
||||
|
||||
Payload-Length: 18
|
||||
Daten in Integer:
|
||||
|
||||
227
|
||||
8
|
||||
28
|
||||
230
|
||||
4
|
||||
204
|
||||
1
|
||||
0
|
||||
0
|
||||
132
|
||||
3
|
||||
0
|
||||
0
|
||||
25
|
||||
0
|
||||
0
|
||||
5
|
||||
7
|
||||
+60
@@ -0,0 +1,60 @@
|
||||
#
|
||||
# --- Library svcCesGeoPairingImpl --------------------------------------------------------------------------------
|
||||
#
|
||||
SET(SRCS_common
|
||||
GeoPairingDataBase.cpp
|
||||
GeoPairingDataFireReport.cpp
|
||||
GeoPairingImplAirTargetCache.cpp
|
||||
GeoPairingImplAirTarget.cpp
|
||||
GeoPairingImplAirTargetTracker.cpp
|
||||
GeoPairingImplAirTargetUpdater.cpp
|
||||
GeoPairingImplBalistic.cpp
|
||||
GeoPairingImpl.cpp
|
||||
GeoPairingImplDted.cpp
|
||||
GeoPairingImplDummy.cpp
|
||||
GeoPairingImplFactory.cpp
|
||||
GeoPairingImplFiredBulletBalistic.cpp
|
||||
GeoPairingImplFiredBullet.cpp
|
||||
GeoPairingImplFiredBulletDted.cpp
|
||||
GeoPairingDataBase.hpp
|
||||
GeoPairingDataFireReport.hpp
|
||||
GeoPairingImplAirTargetCacheData.hpp
|
||||
GeoPairingImplAirTargetCache.hpp
|
||||
GeoPairingImplAirTarget.hpp
|
||||
GeoPairingImplAirTargetTracker.hpp
|
||||
GeoPairingImplAirTargetUpdater.hpp
|
||||
GeoPairingImplBalistic.hpp
|
||||
GeoPairingImplDted.hpp
|
||||
GeoPairingImplDummy.hpp
|
||||
GeoPairingImplFactory.hpp
|
||||
GeoPairingImplFiredBulletBalistic.hpp
|
||||
GeoPairingImplFiredBulletDted.hpp
|
||||
GeoPairingImplFiredBullet.hpp
|
||||
GeoPairingImpl.hpp
|
||||
GeoPairingImplImpactData.hpp
|
||||
GeoPairingImplMeteoData.hpp
|
||||
GeoPairingImplSensorData.hpp
|
||||
GeoPairingImplTrajectoryData.hpp
|
||||
geo_settings.h
|
||||
geo_settings.cpp
|
||||
)
|
||||
|
||||
NGL_ADD_LIBRARY(AAR SV svcCesGeoPairingImpl STATIC ${SRCS_common})
|
||||
NGL_TARGET_INCLUDE_DIRECTORIES(svcCesGeoPairingImpl
|
||||
PUBLIC
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/../
|
||||
${CMAKE_CURRENT_BINARY_DIR}/../
|
||||
)
|
||||
NGL_TARGET_LINK_LIBRARIES(svcCesGeoPairingImpl
|
||||
PRIVATE
|
||||
RTI::nddscpp2
|
||||
PUBLIC
|
||||
Qt5::Core
|
||||
NGLLogger
|
||||
svcPdmCommon
|
||||
LtsCoordTrans
|
||||
GBL_Types
|
||||
GBL_ConfigSystem
|
||||
FW_Ballistic
|
||||
NGLLogger
|
||||
)
|
||||
Executable
+56
@@ -0,0 +1,56 @@
|
||||
// **************************************************************************
|
||||
//
|
||||
// (C) Copyright 2009 Swiss SIMTEC AG
|
||||
//
|
||||
// **************************************************************************
|
||||
//
|
||||
// $HeadURL$
|
||||
// $LastChangedBy$
|
||||
// $LastChangedDate$
|
||||
// $LastChangedRevision$
|
||||
//
|
||||
// **************************************************************************
|
||||
|
||||
// manual class headers
|
||||
#include "GeoPairingDataBase.hpp"
|
||||
#include "../logger.h"
|
||||
|
||||
namespace N_GeoPairingImpl
|
||||
{
|
||||
|
||||
GeoPairingDataBase::GeoPairingDataBase(const char *loggerName)
|
||||
: m_logger(CesGeoPairing::getLogger(loggerName ? loggerName : "GeoPairingDataBase"))
|
||||
{
|
||||
}
|
||||
|
||||
// ---------------------------------------------------------------
|
||||
// This function parses a data stream
|
||||
// ---------------------------------------------------------------
|
||||
bool GeoPairingDataBase::parse(const QByteArray& a_transparentData)
|
||||
{
|
||||
const int startMessageId = 0;
|
||||
//const int lenMessageId = 1;
|
||||
const int startDevice = 1;
|
||||
//const int lenDevice = 1;
|
||||
|
||||
if (a_transparentData.size() < m_Size)
|
||||
{
|
||||
ERROR_LOG(m_logger) << "Size of transparent Data not valid :" << a_transparentData.size()
|
||||
<< " instead of " << m_Size;
|
||||
return false;
|
||||
}
|
||||
|
||||
m_MessageID = a_transparentData[startMessageId];
|
||||
int messageId = m_MessageID;
|
||||
INFO_LOG(m_logger) << "Header -> MessageID : " << messageId;
|
||||
|
||||
UInt8 deviceId;
|
||||
deviceId = a_transparentData[startDevice];
|
||||
|
||||
m_DeviceID = static_cast<PanGeoPairingDeviceId>(deviceId);
|
||||
INFO_LOG(m_logger) << "Header -> DeviceID : " << m_DeviceID;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
} // namespace N_GeoPairingImpl
|
||||
Executable
+101
@@ -0,0 +1,101 @@
|
||||
// **************************************************************************
|
||||
//
|
||||
// (C) Copyright 2009 Swiss SIMTEC AG
|
||||
//
|
||||
// **************************************************************************
|
||||
//
|
||||
// $HeadURL$
|
||||
// $LastChangedBy$
|
||||
// $LastChangedDate$
|
||||
// $LastChangedRevision$
|
||||
//
|
||||
// **************************************************************************
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <GBL_Global/Types.hpp>
|
||||
#include <NGLLogger/INGLLogger.h>
|
||||
|
||||
enum PanGeoPairingDeviceId
|
||||
{
|
||||
PAN_GP_INVALID = -1,
|
||||
PAN_GP_REQUEST_MORTAR = 0,
|
||||
PAN_GP_REPORT_MORTAR = 1,
|
||||
PAN_GP_REQUEST_IGLA = 2,
|
||||
PAN_GP_REPORT_IGLA = 3,
|
||||
PAN_GP_REQUEST_MK19 = 4,
|
||||
PAN_GP_REPORT_MK19 = 5,
|
||||
PAN_GP_REQUEST_M109 = 6,
|
||||
PAN_GP_REPORT_M109 = 7,
|
||||
/*
|
||||
PAN_GP_REPORT_AGS17 = 8,
|
||||
PAN_GP_REPORT_MORTAR_2S12_SANI = 9,
|
||||
PAN_GP_REPORT_UR_83P = 10,
|
||||
PAN_GP_REPORT_2S19_HOWITZER = 11,
|
||||
PAN_GP_REPORT_2S3M_HOWITZER = 12,
|
||||
*/
|
||||
PAN_GP_REQUEST_G5_G6 = 13,
|
||||
PAN_GP_REPORT_G5_G6 = 14
|
||||
};
|
||||
|
||||
enum e_AmmunitionType
|
||||
{
|
||||
AmmunitionTypeUnknown = -1,
|
||||
MortarType1 = 1, // Siehe Geo-Munition [GUEZE-2411]
|
||||
MortarType2 = 2,
|
||||
M60mm_m385 = 1,
|
||||
M60mm_m430 = 2,
|
||||
MK19Type_m385 = 2,
|
||||
MK19Type_m430 = 3,
|
||||
HE_M1A2 = 4,
|
||||
VLAP_M9703 = 5,
|
||||
SMK_BE_M2 = 6,
|
||||
CLUSTER_HEHC_M9609 = 7
|
||||
};
|
||||
|
||||
enum e_IgnitionTypeG5G6
|
||||
{
|
||||
IgnitionTypeUnknown = -1,
|
||||
IgnitionTypePercussion = 0,
|
||||
IgnitionTypeProximity = 1,
|
||||
IgnitionTypeTime = 2
|
||||
};
|
||||
|
||||
|
||||
|
||||
namespace N_GeoPairingImpl
|
||||
{
|
||||
|
||||
/**
|
||||
* This is the Data base class
|
||||
*
|
||||
* @author Daniel.Schmid
|
||||
* @version 1.0
|
||||
* @created 01-Nov-2011 08:37:58
|
||||
*/
|
||||
class GeoPairingDataBase
|
||||
{
|
||||
public:
|
||||
|
||||
GeoPairingDataBase(const char *loggerName = nullptr);
|
||||
virtual ~GeoPairingDataBase() = default;
|
||||
|
||||
|
||||
UInt8 m_MessageID = 0;
|
||||
PanGeoPairingDeviceId m_DeviceID = PAN_GP_INVALID;
|
||||
|
||||
/**
|
||||
* This function parses a data stream
|
||||
*
|
||||
* @param a_transparentData
|
||||
* @param a_sizeOfTransparentData
|
||||
*/
|
||||
virtual bool parse(const QByteArray& a_transparentData);
|
||||
|
||||
protected:
|
||||
int m_Size = 2;
|
||||
NGL::INGLLogger &m_logger;
|
||||
|
||||
};
|
||||
|
||||
}
|
||||
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
|
||||
Executable
+66
@@ -0,0 +1,66 @@
|
||||
// **************************************************************************
|
||||
//
|
||||
// (C) Copyright 2009 Swiss SIMTEC AG
|
||||
//
|
||||
// **************************************************************************
|
||||
//
|
||||
// $HeadURL$
|
||||
// $LastChangedBy$
|
||||
// $LastChangedDate$
|
||||
// $LastChangedRevision$
|
||||
//
|
||||
// **************************************************************************
|
||||
|
||||
#pragma once
|
||||
|
||||
// from stereotyped includes
|
||||
#include "GeoPairingDataBase.hpp"
|
||||
#include "../logger.h"
|
||||
|
||||
#define PAN_GP_IGLA_MODE_MASK 1
|
||||
#define PAN_GP_IGLA_CHANGEOVER_MASK 2
|
||||
|
||||
#define PAN_AMMU_MORTAR_1 1
|
||||
#define PAN_AMMU_MORTAR_2 2
|
||||
|
||||
|
||||
namespace N_GeoPairingImpl
|
||||
{
|
||||
|
||||
/**
|
||||
* @author Daniel.Schmid
|
||||
* @version 1.0
|
||||
* @created 01-Nov-2011 08:36:26
|
||||
*/
|
||||
class GeoPairingDataFireReport : public GeoPairingDataBase
|
||||
{
|
||||
public:
|
||||
|
||||
GeoPairingDataFireReport();
|
||||
|
||||
UInt16 m_TimerTick = 0;
|
||||
SInt32 m_Pitch = 0;
|
||||
SInt16 m_PitchMin = 0;
|
||||
SInt16 m_PitchMax = 0;
|
||||
SInt32 m_Heading = 0;
|
||||
SInt16 m_HeadingMin = 0;
|
||||
SInt16 m_HeadingMax = 0;
|
||||
UInt16 m_TimeToDetonate = 0;
|
||||
SInt8 m_Temperature = 0;
|
||||
UInt8 m_Ammunition = 0;
|
||||
UInt8 m_MK19NbrRounds = 0;
|
||||
UInt8 m_IGLARequestNbr = 0;
|
||||
bool m_IGLAModeAuto = false;
|
||||
bool m_IGLAChangeOverPressed = false;
|
||||
bool m_UseMinMax = false;
|
||||
|
||||
|
||||
/**
|
||||
*
|
||||
* @param a_transparentData
|
||||
* @param a_sizeOfTransparentData
|
||||
*/
|
||||
bool parse(const QByteArray& a_transparentData) override;
|
||||
};
|
||||
|
||||
}
|
||||
Executable
+406
@@ -0,0 +1,406 @@
|
||||
// **************************************************************************
|
||||
//
|
||||
// (C) Copyright 2009 Swiss SIMTEC AG
|
||||
//
|
||||
// **************************************************************************
|
||||
//
|
||||
// $HeadURL$
|
||||
// $LastChangedBy$
|
||||
// $LastChangedDate$
|
||||
// $LastChangedRevision$
|
||||
//
|
||||
// **************************************************************************
|
||||
|
||||
// manual class headers
|
||||
#include "GeoPairingImpl.hpp"
|
||||
#include <GBL_ConfigSystem/geoconfig.h>
|
||||
#include <FW_Ballistic/AmmunitionTypes.hpp>
|
||||
#include "../settings.h"
|
||||
|
||||
// from cpp_includes
|
||||
#include <GBL_Types/Radian64.hpp>
|
||||
#include "GeoPairingImplAirTargetCacheData.hpp"
|
||||
|
||||
#include "GeoPairingDataFireReport.hpp"
|
||||
#include <QDateTime>
|
||||
|
||||
#define PAN_AMMU_TIMEPROG(ammunition) (ammunition & 0x01)
|
||||
#define PAN_AMMU_INDEX(ammunition) ((ammunition >> 1) & 0x03)
|
||||
#define PAN_AMMU_CHARGE(ammunition) ((ammunition >> 3) & 0x07)
|
||||
|
||||
#define PAN_AMMU_INDEX_G5_G6(ammunition) (ammunition & 0x0F)
|
||||
#define PAN_AMMU_CHARGE_G5_G6(ammunition) ((ammunition >> 4) & 0x0F)
|
||||
|
||||
namespace N_GeoPairingImpl
|
||||
{
|
||||
|
||||
inline void endian_swap(UInt16 &a_value)
|
||||
{
|
||||
a_value = (a_value >> 8) |
|
||||
(a_value << 8);
|
||||
}
|
||||
inline void endian_swap(UInt32 &a_value)
|
||||
{
|
||||
a_value = (a_value >> 24) |
|
||||
((a_value << 8) & 0x00FF0000) |
|
||||
((a_value >> 8) & 0x0000FF00) |
|
||||
(a_value << 24);
|
||||
}
|
||||
|
||||
GeoPairingImpl::GeoPairingImpl(const char *loggerName)
|
||||
: m_Initialized(false)
|
||||
, m_logger(CesGeoPairing::getLogger(loggerName))
|
||||
{
|
||||
}
|
||||
|
||||
// ---------------------------------------------------------------
|
||||
// creates a new air target tracker
|
||||
// ---------------------------------------------------------------
|
||||
GeoPairingImplAirTargetTracker *GeoPairingImpl::createAirTargetTracker()
|
||||
{
|
||||
return new GeoPairingImplAirTargetTracker(&m_ListAirTargets);
|
||||
}
|
||||
|
||||
|
||||
// ---------------------------------------------------------------
|
||||
// creates a new air target updater
|
||||
// ---------------------------------------------------------------
|
||||
GeoPairingImplAirTargetUpdater *GeoPairingImpl::createAirTargetUpdater()
|
||||
{
|
||||
return new GeoPairingImplAirTargetUpdater(&m_ListAirTargets);
|
||||
}
|
||||
|
||||
// ---------------------------------------------------------------
|
||||
// creates a new air target cache
|
||||
// ---------------------------------------------------------------
|
||||
GeoPairingImplAirTargetCache *GeoPairingImpl::createAirTargetCache(UInt32 a_playerID)
|
||||
{
|
||||
return new GeoPairingImplAirTargetCache(a_playerID, &m_CacheData);
|
||||
}
|
||||
|
||||
// ---------------------------------------------------------------
|
||||
// Pupulates a SensorData instance according to the given
|
||||
// transparent datastream
|
||||
// ---------------------------------------------------------------
|
||||
SInt32 GeoPairingImpl::createSensorData(GeoPairingImplSensorData *a_sensorData, const QByteArray& a_transparendData, int &isDefault)
|
||||
{
|
||||
INFO_LOG(m_logger) << "createSensorData";
|
||||
if (!m_Initialized)
|
||||
{
|
||||
ERROR_LOG(m_logger) << "Implementation not initialized";
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (!a_sensorData)
|
||||
{
|
||||
ERROR_LOG(m_logger) << "SensorData Object argument not valid";
|
||||
return -1;
|
||||
}
|
||||
|
||||
GeoPairingDataFireReport l_Report;
|
||||
if (!l_Report.parse(a_transparendData))
|
||||
{
|
||||
ERROR_LOG(m_logger) << "Couldn't parse FireReport";
|
||||
return -1;
|
||||
}
|
||||
|
||||
N_Types::Radian64 l_Azimuth;
|
||||
l_Azimuth.setDegree(l_Report.m_Heading / 10.0);
|
||||
|
||||
N_Types::Radian64 l_Elevation;
|
||||
l_Elevation.setDegree(l_Report.m_Pitch / 10.0);
|
||||
|
||||
bool l_ConsiderGeoMagneticField = false;
|
||||
Float64 l_GeoMagneticCorrection = 0.0;
|
||||
|
||||
if (l_Report.m_DeviceID == PAN_GP_REPORT_MORTAR ||
|
||||
l_Report.m_DeviceID == PAN_GP_REQUEST_IGLA ||
|
||||
l_Report.m_DeviceID == PAN_GP_REPORT_IGLA)
|
||||
l_ConsiderGeoMagneticField = true;
|
||||
|
||||
if (l_ConsiderGeoMagneticField)
|
||||
{
|
||||
auto l_config = N_ConfigSystem::GeoConfig::getInstance();
|
||||
|
||||
QString geoMagneticFieldStr = QStringLiteral("GeoMagneticField");
|
||||
QString dateStr = QStringLiteral("Date");
|
||||
QString declinationStr = QStringLiteral("Declination");
|
||||
QString changePerYearStr = QStringLiteral("ChangePerYear");
|
||||
|
||||
QString l_DateRecord = l_config->getString(geoMagneticFieldStr, dateStr, QString());
|
||||
Float64 l_Declination = l_config->getFloat(geoMagneticFieldStr, declinationStr, 0.0);
|
||||
Float64 l_ChangePerYear = l_config->getFloat(geoMagneticFieldStr, changePerYearStr, 0.0);
|
||||
|
||||
int l_Year = 0, l_Month = 0, l_Day = 0;
|
||||
//int l_Result = sscanf(l_DateRecord.c_str(), "%d-%d-%d", &l_Year, &l_Month, &l_Day);
|
||||
|
||||
QDate date = QDate::fromString(l_DateRecord, QStringLiteral("yyyy-MM-dd"));
|
||||
l_Year = date.year();
|
||||
l_Month = date.month();
|
||||
l_Day = date.day();
|
||||
|
||||
if (date.isValid())
|
||||
{
|
||||
INFO_LOG(m_logger) << "GeoMagneticField DateRecord = " << l_DateRecord;
|
||||
INFO_LOG(m_logger) << "GeoMagneticField Declination = " << l_Declination;
|
||||
INFO_LOG(m_logger) << "GeoMagneticField ChangePerYear = " << l_ChangePerYear;
|
||||
|
||||
time_t l_TimeNow = time(nullptr);
|
||||
struct tm l_TimeInfo;
|
||||
memset(&l_TimeInfo, 0, sizeof(tm));
|
||||
l_TimeInfo.tm_year = l_Year - 1900;
|
||||
l_TimeInfo.tm_mon = l_Month - 1;
|
||||
l_TimeInfo.tm_mday = l_Day;
|
||||
time_t l_TimeRec = mktime(&l_TimeInfo);
|
||||
|
||||
double l_TimeDiff = difftime(l_TimeNow, l_TimeRec);
|
||||
|
||||
int l_SecondsPerYear = 365 * 24 * 3600;
|
||||
int l_Years = l_TimeDiff / l_SecondsPerYear; // number of years since DateRecords
|
||||
DEBUG_LOG(m_logger) << "GeoMagneticField Years since DateRecord : " << l_Years;
|
||||
|
||||
l_GeoMagneticCorrection = l_Declination + (l_Years * l_ChangePerYear);
|
||||
INFO_LOG(m_logger) << "GeoMagneticField Azimuth correction [degrees]: " << l_GeoMagneticCorrection;
|
||||
l_GeoMagneticCorrection *= N_SST::PI_OVER_180;
|
||||
l_Azimuth += l_GeoMagneticCorrection;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
INFO_LOG(m_logger) << "createSensorData";
|
||||
|
||||
if (l_Report.m_DeviceID == PAN_GP_REPORT_MORTAR)
|
||||
{
|
||||
int l_AmmunitionField = PAN_AMMU_INDEX(l_Report.m_Ammunition);
|
||||
INFO_LOG(m_logger) << "createSensorData PAN_GP_REPORT_MORTAR l_AmmunitionField=" << +l_AmmunitionField
|
||||
<< " l_Report.m_Ammunition=" << +l_Report.m_Ammunition
|
||||
<< " l_Report.m_Ammunition & 0x03=" << +(l_Report.m_Ammunition & 0x03);
|
||||
switch (l_Report.m_Ammunition & 0x03)
|
||||
{
|
||||
case 1:
|
||||
a_sensorData->AmmunitionType = MortarType1;
|
||||
INFO_LOG(m_logger) << "Using Mortar Ammunition 1";
|
||||
break;
|
||||
case 2:
|
||||
a_sensorData->AmmunitionType = MortarType2;
|
||||
INFO_LOG(m_logger) << "Using Mortar Ammunition 2";
|
||||
break;
|
||||
default:
|
||||
a_sensorData->AmmunitionType = MortarType1;
|
||||
ERROR_LOG(m_logger) << "Ammunition value means 'reserved' : "
|
||||
<< l_AmmunitionField;
|
||||
return -1;
|
||||
}
|
||||
a_sensorData->IgnitionType = (l_Report.m_Ammunition >> 3) & 0x07;
|
||||
INFO_LOG(m_logger) << "a_sensorData->IgnitionType= " << a_sensorData->IgnitionType;
|
||||
}
|
||||
else if ((l_Report.m_DeviceID == PAN_GP_REPORT_G5_G6) || (l_Report.m_DeviceID == PAN_GP_REPORT_M109))
|
||||
{
|
||||
int l_AmmunitionField = PAN_AMMU_INDEX_G5_G6(l_Report.m_Ammunition);
|
||||
switch (l_AmmunitionField)
|
||||
{
|
||||
case 1:
|
||||
a_sensorData->AmmunitionType = HE_M1A2;
|
||||
a_sensorData->IgnitionTypeG5G6 = IgnitionTypePercussion;
|
||||
INFO_LOG(m_logger) << "Using HE_M1A2 Percussion";
|
||||
break;
|
||||
case 2:
|
||||
a_sensorData->AmmunitionType = HE_M1A2;
|
||||
a_sensorData->IgnitionTypeG5G6 = IgnitionTypeProximity;
|
||||
INFO_LOG(m_logger) << "Using HE_M1A2 Proximity";
|
||||
break;
|
||||
case 3:
|
||||
a_sensorData->AmmunitionType = VLAP_M9703;
|
||||
a_sensorData->IgnitionTypeG5G6 = IgnitionTypePercussion;
|
||||
INFO_LOG(m_logger) << "Using VLAP_M9703 Percussion";
|
||||
break;
|
||||
case 4:
|
||||
a_sensorData->AmmunitionType = VLAP_M9703;
|
||||
a_sensorData->IgnitionTypeG5G6 = IgnitionTypeProximity;
|
||||
INFO_LOG(m_logger) << "Using VLAP_M9703 Proximity";
|
||||
break;
|
||||
case 5:
|
||||
a_sensorData->AmmunitionType = SMK_BE_M2;
|
||||
a_sensorData->IgnitionTypeG5G6 = IgnitionTypeTime;
|
||||
INFO_LOG(m_logger) << "Using SMK_BE_M2 Time";
|
||||
break;
|
||||
case 6:
|
||||
a_sensorData->AmmunitionType = CLUSTER_HEHC_M9609;
|
||||
a_sensorData->IgnitionTypeG5G6 = IgnitionTypeTime;
|
||||
INFO_LOG(m_logger) << "Using CLUSTER_HEHC_M9609 Time";
|
||||
break;
|
||||
default:
|
||||
a_sensorData->AmmunitionType = HE_M1A2;
|
||||
a_sensorData->IgnitionTypeG5G6 = IgnitionTypePercussion;
|
||||
isDefault = 1;
|
||||
ERROR_LOG(m_logger) << "Ammunition value means 'reserved' : " << l_AmmunitionField;
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
else if (l_Report.m_DeviceID == PAN_GP_REPORT_MK19)
|
||||
{
|
||||
|
||||
N_Types::Radian64 l_AzimuthMin;
|
||||
l_AzimuthMin.setDegree(l_Report.m_HeadingMin / 10.0);
|
||||
N_Types::Radian64 l_AzimuthMax;
|
||||
l_AzimuthMax.setDegree(l_Report.m_HeadingMax / 10.0);
|
||||
|
||||
l_AzimuthMin += l_GeoMagneticCorrection;
|
||||
l_AzimuthMax += l_GeoMagneticCorrection;
|
||||
|
||||
N_Types::Radian64 l_ElevationMin;
|
||||
l_ElevationMin.setDegree(l_Report.m_PitchMin / 10.0);
|
||||
N_Types::Radian64 l_ElevationMax;
|
||||
l_ElevationMax.setDegree(l_Report.m_PitchMax / 10.0);
|
||||
|
||||
// we have to negate the sensor heading for SST coordinate system which is ccw
|
||||
a_sensorData->WeaponAzimuthMin = - l_AzimuthMin;
|
||||
a_sensorData->WeaponAzimuthMax = - l_AzimuthMax;
|
||||
|
||||
if (a_sensorData->WeaponAzimuthMin > a_sensorData->WeaponAzimuthMax)
|
||||
{
|
||||
a_sensorData->WeaponAzimuthMin = - l_AzimuthMax;
|
||||
a_sensorData->WeaponAzimuthMax = - l_AzimuthMin;
|
||||
}
|
||||
|
||||
a_sensorData->WeaponElevationMin = l_ElevationMin;
|
||||
a_sensorData->WeaponElevationMax = l_ElevationMax;
|
||||
|
||||
if (a_sensorData->WeaponElevationMin > a_sensorData->WeaponElevationMax)
|
||||
{
|
||||
a_sensorData->WeaponElevationMin = l_ElevationMax;
|
||||
a_sensorData->WeaponElevationMax = l_ElevationMin;
|
||||
}
|
||||
|
||||
int l_AmmunitionField = PAN_AMMU_INDEX(l_Report.m_Ammunition);
|
||||
switch (l_AmmunitionField)
|
||||
{
|
||||
case 1:
|
||||
a_sensorData->AmmunitionType = MK19Type_m385;
|
||||
INFO_LOG(m_logger) << "Using MK19 Ammunition 1 (m385)";
|
||||
break;
|
||||
case 2:
|
||||
a_sensorData->AmmunitionType = MK19Type_m430;
|
||||
INFO_LOG(m_logger) << "Using MK19 Ammunition 2 (m430)";
|
||||
break;
|
||||
default:
|
||||
a_sensorData->AmmunitionType = MK19Type_m385;
|
||||
ERROR_LOG(m_logger) << "Ammunition value means 'reserved' : " << l_AmmunitionField;
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
else if (l_Report.m_DeviceID == PAN_GP_REPORT_IGLA ||
|
||||
l_Report.m_DeviceID == PAN_GP_REQUEST_IGLA)
|
||||
{
|
||||
a_sensorData->AmmunitionType = AmmunitionTypeUnknown; // irrelevant
|
||||
INFO_LOG(m_logger) << "Using IGLA Ammunition 1";
|
||||
}
|
||||
else
|
||||
{
|
||||
ERROR_LOG(m_logger) << "Couldn't create sensorData for DeviceID : " << l_Report.m_DeviceID;
|
||||
return -1;
|
||||
}
|
||||
|
||||
a_sensorData->UseMinMax = l_Report.m_UseMinMax;
|
||||
a_sensorData->WeaponAzimuth = - l_Azimuth; // we have to negate the sensor heading for SST coordinate system which is ccw
|
||||
a_sensorData->WeaponElevation = l_Elevation;
|
||||
a_sensorData->WeaponTemperature = l_Report.m_Temperature;
|
||||
|
||||
INFO_LOG(m_logger) << "a_sensorData->ChargeType=" << a_sensorData->ChargeType
|
||||
<< " l_Report.m_Ammunition=" << l_Report.m_Ammunition
|
||||
<< " l_Report.m_DeviceID=" << l_Report.m_DeviceID;
|
||||
|
||||
if (l_Report.m_DeviceID == PAN_GP_REPORT_MORTAR)
|
||||
{
|
||||
|
||||
switch (l_Report.m_Ammunition)
|
||||
{
|
||||
case MortarType1:
|
||||
default:
|
||||
a_sensorData->ChargeType = N_Ballistic::MOERSER;
|
||||
break;
|
||||
case MortarType2:
|
||||
a_sensorData->ChargeType = N_Ballistic::NEBEL;
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
// if ( l_Report.m_Ammunition == 2)
|
||||
// a_sensorData->ChargeType = 382;
|
||||
// else
|
||||
// a_sensorData->ChargeType = 385;
|
||||
INFO_LOG(m_logger) << "PAN_GP_REPORT_MORTAR: l_Report.m_Ammunition" << l_Report.m_Ammunition
|
||||
<< " a_sensorData->ChargeType=" << a_sensorData->ChargeType;
|
||||
}
|
||||
else if ((l_Report.m_DeviceID != PAN_GP_REPORT_G5_G6) && (l_Report.m_DeviceID != PAN_GP_REPORT_M109))
|
||||
{
|
||||
a_sensorData->ChargeType = PAN_AMMU_CHARGE(l_Report.m_Ammunition);
|
||||
if (PAN_AMMU_TIMEPROG(l_Report.m_Ammunition))
|
||||
a_sensorData->IgnitionType = l_Report.m_TimeToDetonate;
|
||||
else
|
||||
a_sensorData->IgnitionType = 0;
|
||||
INFO_LOG(m_logger) << "if a_sensorData->ChargeType=" << a_sensorData->ChargeType;
|
||||
}
|
||||
else
|
||||
{
|
||||
INFO_LOG(m_logger) << "else a_sensorData->ChargeType=" << a_sensorData->ChargeType;
|
||||
|
||||
SInt32 ch = PAN_AMMU_CHARGE_G5_G6(l_Report.m_Ammunition);
|
||||
|
||||
if (ch == 1) // M64 Base
|
||||
{
|
||||
a_sensorData->ChargeType = 0;
|
||||
INFO_LOG(m_logger) << "Using Charge M64 Base";
|
||||
}
|
||||
else if (ch == 3) // 3 x M64 Incr
|
||||
{
|
||||
a_sensorData->ChargeType = 1;
|
||||
INFO_LOG(m_logger) << "Using Charge M64 INCR x 3";
|
||||
}
|
||||
else if (ch == 4) // 4 x M64 Incr
|
||||
{
|
||||
a_sensorData->ChargeType = 2;
|
||||
INFO_LOG(m_logger) << "Using Charge M64 INCR x 4";
|
||||
}
|
||||
else if (ch == 5) // 5 x M64 Incr
|
||||
{
|
||||
a_sensorData->ChargeType = 3;
|
||||
INFO_LOG(m_logger) << "Using Charge M64 INCR x 5";
|
||||
}
|
||||
else if (ch == 6) // 5 x M64 Incr + Base Bleed
|
||||
{
|
||||
a_sensorData->ChargeType = 4;
|
||||
INFO_LOG(m_logger) << "Using Charge M64 INCR x 5 + Base Bleed";
|
||||
}
|
||||
else
|
||||
{
|
||||
a_sensorData->ChargeType = 0;
|
||||
isDefault = 1;
|
||||
WARNING_LOG(m_logger) << "Unknown Charge Type. Using Charge M64 Base";
|
||||
}
|
||||
}
|
||||
INFO_LOG(m_logger) << "a_sensorData->ChargeType=" << a_sensorData->ChargeType;
|
||||
return l_Report.m_DeviceID;
|
||||
}
|
||||
|
||||
|
||||
// ---------------------------------------------------------------
|
||||
// Sets global meteo conditions
|
||||
// ---------------------------------------------------------------
|
||||
void GeoPairingImpl::setMeteoData(const GeoPairingImplMeteoData &a_meteoData)
|
||||
{
|
||||
if (!m_Initialized)
|
||||
{
|
||||
ERROR_LOG(m_logger) << "Implementation not initialized";
|
||||
return;
|
||||
}
|
||||
m_MeteoData = a_meteoData;
|
||||
|
||||
INFO_LOG(m_logger) << "---------- Setting Meteo Data ------------";
|
||||
INFO_LOG(m_logger) << "AirPressure : " << m_MeteoData.AirPressure;
|
||||
INFO_LOG(m_logger) << "Temperature : " << m_MeteoData.Temperature;
|
||||
INFO_LOG(m_logger) << "WindDirection : " << m_MeteoData.WindDirection;
|
||||
INFO_LOG(m_logger) << "WindSpeed : " << m_MeteoData.WindSpeed;
|
||||
}
|
||||
|
||||
} // namespace N_GeoPairingImpl
|
||||
Loaded 100 of 16245 files, more files were not shown because too many files have changed in this diff.
Show more
Reference in new issue
Block a user