WSF
Message3_0.hpp
Go to the documentation of this file.
1// ****************************************************************************
2// CUI//REL TO USA ONLY
3//
4// The Advanced Framework for Simulation, Integration, and Modeling (AFSIM)
5//
6// Copyright 2003-2015 The Boeing Company. All rights reserved.
7//
8// The use, dissemination or disclosure of data in this file is subject to
9// limitation or restriction. See accompanying README and LICENSE for details.
10// ****************************************************************************
11#ifndef L16_MESSAGE3_0_HPP
12#define L16_MESSAGE3_0_HPP
13#include "MessageDefines.hpp"
14
15namespace WsfL16
16{
17namespace Messages
18{
19namespace J3_0
20{
21
53
55{
56public:
66
67 DEFINE_MEMBERS8(DeltaLat1, DeltaLon1, IsEndPoint1, Spare, DeltaLat2, DeltaLon2, IsEndPoint2, Spare2);
68};
69
71{
72public:
95
96 DEFINE_MEMBERS9(Speed, Spare, TrackNumber, Course, Spare2, AreaType, AxisOrientation, AreaMajorAxis, AreaMinorAxis);
97};
98
100{
101public:
123
139
140 class SonobuoySpacingField : public NormalField<9, NoStatementZero>
141 {
142 public:
143 typedef double accessor_type;
145 {
146 mValue = (value_type)(0.9144 / 125.0 * aMeters);
147 return *this;
148 }
149 operator double() { return mValue / (0.9144 / 125.0); }
150 };
151 class SonobuoyBearingField : public NormalField<9, NoStatementMax>
152 {
153 public:
154 typedef double accessor_type;
160 operator double() { return NumericConversion::DegToRadians(mValue); }
161 };
162
175
176 DEFINE_MEMBERS11(ChannelNumber,
177 DepthIndicator,
178 DepthTransducer,
179 SonobuoyType,
180 SonobuoyPattern,
181 SonobuoyTypeNumber,
182 SonobuoySpacing,
183 SonobuoyRowSpacing,
184 SonobuoyPatternRadius,
185 Bearing,
186 HasContact);
187
188 void SetDepth(double aMeters)
189 {
190 if (aMeters >= 300)
191 {
192 DepthIndicator = 3;
193 DepthTransducer = (int)aMeters / 300;
194 }
195 else if (aMeters >= 30)
196 {
197 DepthIndicator = 2;
198 DepthTransducer = (int)aMeters / 30;
199 }
200 else
201 {
202 DepthIndicator = 1;
203 DepthTransducer = std::max(1, (int)aMeters / 3);
204 }
205 }
206};
207
233
234class Initial : public InitialBase
235{
236public:
266
268
287 DEFINE_MEMBERS18(IsExerciseTrackUnit,
288 IsResponse,
289 IsForceTell,
290 Spare,
291 IsSpecialProcessingRequired,
292 IsSimulated,
293 TrackNumber,
294 IsSlavedToUnit,
295 IsLineAreaContinuation,
296 ReportIndicator,
297 TimeReportFunction,
298 PointLineDescriptor,
299 Priority,
300 Spare1,
301 PointType,
302 PointTypeAmplification,
303 Minute,
304 Hour);
305
308};
309
310} // namespace J3_0
311} // namespace Messages
312} // namespace WsfL16
313
314
315#endif
Definition FieldTypes.hpp:828
Definition FieldTypes.hpp:871
Definition FieldTypes.hpp:928
for fields with 1 == true
Definition FieldTypes.hpp:986
The base class for J-Message ContinuationBase words.
Definition Messages.hpp:168
Definition FieldTypes.hpp:1142
Definition Messages.hpp:183
FieldBase()
Definition FieldTypes.hpp:215
value_type mValue
Definition FieldTypes.hpp:293
SmallIntType< BIT_COUNT >::integer_type value_type
Use the smallest integer to hold the data.
Definition FieldTypes.hpp:229
Definition FieldTypes.hpp:1457
InitialBase(const InitialBase &aSrc)
Definition Messages.cpp:123
Integral field with a 'NoStatement' value. Supports conversion to/from int.
Definition FieldTypes.hpp:389
Definition Message3_0.hpp:55
DeltaLatLonField FieldType5
Definition Message3_0.hpp:62
SpareField< 3 > FieldType8
Definition Message3_0.hpp:65
SpareField< 2 > FieldType4
Definition Message3_0.hpp:61
BooleanField FieldType7
Definition Message3_0.hpp:64
DEFINE_MEMBERS8(DeltaLat1, DeltaLon1, IsEndPoint1, Spare, DeltaLat2, DeltaLon2, IsEndPoint2, Spare2)
DeltaLatLonField FieldType6
Definition Message3_0.hpp:63
DeltaLatLonField FieldType1
Definition Message3_0.hpp:58
BooleanField FieldType3
Definition Message3_0.hpp:60
DeltaLatLonField FieldType2
Definition Message3_0.hpp:59
Definition Message3_0.hpp:71
SpeedField FieldType1
Definition Message3_0.hpp:86
AreaAxisLengthField FieldType9
Definition Message3_0.hpp:94
AreaAxisLengthField FieldType8
Definition Message3_0.hpp:93
SpareField< 1 > FieldType5
Definition Message3_0.hpp:90
SpareField< 1 > FieldType2
Definition Message3_0.hpp:87
DEFINE_MEMBERS9(Speed, Spare, TrackNumber, Course, Spare2, AreaType, AxisOrientation, AreaMajorAxis, AreaMinorAxis)
AreaTypeField FieldType6
Definition Message3_0.hpp:91
AxisOrientationField FieldType7
Definition Message3_0.hpp:92
AngleField FieldType4
Definition Message3_0.hpp:89
TrackNumberField FieldType3
Definition Message3_0.hpp:88
SonobuoyBearingField & operator=(double aRadians)
Definition Message3_0.hpp:155
DEFINE_ACCESSORS(SonobuoyPatternField, SonobuoyPatternTypes)
SonobuoySpacingField & operator=(double aMeters)
Definition Message3_0.hpp:144
DEFINE_ACCESSORS(SonobuoyTypeField, SonobuoyTypeTypes)
Definition Message3_0.hpp:100
IntegerFieldNS< 2, NoStatementZero > FieldType2
Definition Message3_0.hpp:165
SonobuoyBearingField FieldType10
Definition Message3_0.hpp:173
SonobuoyPatternField FieldType5
Definition Message3_0.hpp:168
void SetDepth(double aMeters)
Definition Message3_0.hpp:188
SonobuoyTypeField FieldType4
Definition Message3_0.hpp:167
IntegerFieldNS< 4, NoStatementZero > FieldType3
Definition Message3_0.hpp:166
SonobuoySpacingField FieldType8
Definition Message3_0.hpp:171
DEFINE_MEMBERS11(ChannelNumber, DepthIndicator, DepthTransducer, SonobuoyType, SonobuoyPattern, SonobuoyTypeNumber, SonobuoySpacing, SonobuoyRowSpacing, SonobuoyPatternRadius, Bearing, HasContact)
IntegerFieldNS< 7, NoStatementZero > FieldType1
Definition Message3_0.hpp:164
BooleanField FieldType11
Definition Message3_0.hpp:174
SonobuoySpacingField FieldType9
Definition Message3_0.hpp:172
IntegerFieldNS< 5, NoStatementZero > FieldType6
Definition Message3_0.hpp:169
SonobuoySpacingField FieldType7
Definition Message3_0.hpp:170
DEFINE_ACCESSORS(SonobuoyTypeField, SonobuoyTypeTypes)
Definition Message3_0.hpp:209
SpareField< 20 > FieldType4
Definition Message3_0.hpp:230
SpareField< 20 > FieldType3
Definition Message3_0.hpp:229
TrackNumberField FieldType1
Definition Message3_0.hpp:227
SonobuoyTypeField FieldType2
Definition Message3_0.hpp:228
DEFINE_MEMBERS4(TrackNumber, SonobuoyType, Spare, Spare2)
DEFINE_ACCESSORS(NuclearBurstTypeField, NuclearBurstType)
Definition Message3_0.hpp:23
IntegerFieldNS< 2, NoStatementZero > FieldType3
Definition Message3_0.hpp:45
SpareField< 1 > FieldType4
Definition Message3_0.hpp:46
NuclearBurstTypeField FieldType1
Definition Message3_0.hpp:43
SpareField< 1 > FieldType8
Definition Message3_0.hpp:50
LongitudeField< 21 > FieldType5
Definition Message3_0.hpp:47
NuclearBurstType
Definition Message3_0.hpp:26
@ cNO_STATEMENT
Definition Message3_0.hpp:27
@ cSURFACE_GROUND
Definition Message3_0.hpp:30
@ cUNDERWATER
Definition Message3_0.hpp:33
@ cUNDERGROUND
Definition Message3_0.hpp:31
@ cAIR
Definition Message3_0.hpp:29
@ cSPACE
Definition Message3_0.hpp:34
@ cSURFACE_WATER
Definition Message3_0.hpp:32
@ cUNKNOWN
Definition Message3_0.hpp:28
IntegerFieldNS< 10, NoStatementMax > FieldType6
Definition Message3_0.hpp:48
IntegerFieldNS< 10, NoStatementMax > FieldType7
Definition Message3_0.hpp:49
LatitudeField< 20 > FieldType2
Definition Message3_0.hpp:44
DEFINE_MEMBERS8(BurstType, Latitude, EstimatedYield, Spare, Longitude, Altitude1, Altitude2, Spare2)
DEFINE_ACCESSORS(PointLineDescriptorField, PointLineDescriptor)
@ cPT_STATION_AIR
Definition Message3_0.hpp:257
@ cPT_AREA
Definition Message3_0.hpp:259
@ cPT_AREA_HAZARD
Definition Message3_0.hpp:260
@ cPT_HAZARD
Definition Message3_0.hpp:254
@ cPT_ASW
Definition Message3_0.hpp:261
@ cPT_STATION
Definition Message3_0.hpp:256
@ cPT_REFERENCE_POINT
Definition Message3_0.hpp:255
@ cPT_LINE
Definition Message3_0.hpp:258
@ cPT_ASW_1
Definition Message3_0.hpp:262
Definition Message3_0.hpp:235
IntegerFieldNS< 4, NoStatementZero > FieldType16
Definition Message3_0.hpp:284
BooleanField FieldType8
Definition Message3_0.hpp:276
PointTypeField FieldType15
Definition Message3_0.hpp:283
TimeReportField FieldType11
Definition Message3_0.hpp:279
HourField FieldType18
Definition Message3_0.hpp:286
SpareField< 1 > FieldType4
Definition Message3_0.hpp:272
TrackNumberField FieldType7
Definition Message3_0.hpp:275
BooleanField FieldType2
Definition Message3_0.hpp:270
BooleanField FieldType6
Definition Message3_0.hpp:274
BooleanField FieldType9
Definition Message3_0.hpp:277
PeriodicReportField FieldType10
Definition Message3_0.hpp:278
SpareField< 1 > FieldType14
Definition Message3_0.hpp:282
MinuteField FieldType17
Definition Message3_0.hpp:285
DEFINE_MEMBERS18(IsExerciseTrackUnit, IsResponse, IsForceTell, Spare, IsSpecialProcessingRequired, IsSimulated, TrackNumber, IsSlavedToUnit, IsLineAreaContinuation, ReportIndicator, TimeReportFunction, PointLineDescriptor, Priority, Spare1, PointType, PointTypeAmplification, Minute, Hour)
PointLineDescriptorField FieldType12
Definition Message3_0.hpp:280
BooleanField FieldType1
Definition Message3_0.hpp:269
BooleanField FieldType5
Definition Message3_0.hpp:273
BooleanField FieldType3
Definition Message3_0.hpp:271
IntegerFieldNS< 3, NoStatementZero > FieldType13
Definition Message3_0.hpp:281
Definition FieldTypes.hpp:1555
Definition FieldTypes.hpp:1665
Definition FieldTypes.hpp:1702
Definition FieldTypes.hpp:1935
Definition FieldTypes.hpp:2412
Definition FieldTypes.hpp:2834
Definition FieldTypes.hpp:2865
Definition Message3_0.hpp:20
Definition ComputerPart.hpp:45
double RadiansToDeg(double aRadians)
Radians to Degrees.
Definition NumericConversion.hpp:29
double NormalizeAngle0_360(double aAngle)
Definition NumericConversion.hpp:109
double DegToRadians(double aDegrees)
Degrees to Radians.
Definition NumericConversion.hpp:34
This file should be included prior to defining a message. Currently there is a limit of 32 fields per...
Definition AllMessages.hpp:55
A field defined as spare.
Definition FieldTypes.hpp:305
Copyrights Multiple, All Rights Reserved