1 <html xmlns:
v=
"urn:schemas-microsoft-com:vml" xmlns:
o=
"urn:schemas-microsoft-com:office:office">
4 <meta http-equiv=
"Content-Language" content=
"en-gb">
5 <meta http-equiv=
"Content-Type" content=
"text/html; charset=windows-1252">
6 <title>KDIS Change Log Version Number
</title>
11 <?xml version=
"1.0" encoding=
"UTF-8" ?>
12 <table cellspacing=
"0" cellpadding=
"5" border=
"2">
15 <a href=
"http://sourceforge.net/projects/kdis/">KDIS
</a> Change
22 <div style=
"color: red">
23 X - Major Change, changing DIS version.
</div>
24 <div style=
"color: blue">
25 Y - Medium, introduction of new features, data types or
28 Z - Minor, small changes, new functions, comments, bug fix etc.
31 Please post bugs/suggestions/comments to the
32 <a href=
"http://sourceforge.net/projects/kdis/">SourceForge
</a>
40 <b>Future Releases
</b>
41 <hr>Plans for future releases are currently:
43 <li>More work to come on IFF.
</li>
44 <li>Dead Reckoning - verify all algorithms work correctly.
</li>
45 <li>Conversions for multiple datum's and orientation representations.
</li>
46 <li>Improve GetAsString formatting.
</li>
47 <li>Finish/Improve Link
16 integration.
</li>
52 <!-- Version x-x-x !-->
53 <table border=
"0" cellSpacing=
"0" cellPadding=
"0" width=
"95%" ID=
"Table2">
55 <td><b>Version
2-
10-
0 </b></td>
56 <td><b>12 October
2023</b></td>
61 <div style=
"color: blue">
62 <li>Added ApplyFilterBeforeDecodingPDUBody to PDU_Factory_Filter. Can be used to reject PDU's before the body has been decoded. Good for performance and rejecting custom or non-standard PDU's.
</li>
63 <li>Added RadioAppearance struct.
</li>
64 <li>Added SupplyAppearance struct.
</li>
65 <li>Added VariableParameter type SeparationPart.
</li>
66 <li>Changed EmitterBeam class to use DIS_VERSION define when defining/declaring member variables and method. For DIS
7, introduced the BeamStatus and JammingTechnique classes to replicate the v7 PDU structure. Added a BeamState enum to the EnumEmitter file, base on the UID
318 contents of SISO-REF-
010-
2016-v22 document.
67 <li>Added additional enums(SISO
10-
2015) for ModulationType, BeamAntennaPatternReferenceSystem, ModulationSystem, TDLType, BeamAntennaPatternReferenceSystem, SystemType, SystemMode and SystemName.
</li>
68 <li>DIS
7 support added for SystemIdentifier. BeamAntennaPattern and Expendable Descriptor.
</li>
70 <li>Added SendOnly option to connection class. The class will not bind if this is true.
</li>
71 <li>Added support for unique_ptr when C++
11 is supported.
</li>
72 <li>Fixed EllipsoidRecord2::Decode, should not have included EllipsoidRecord1::Decode.
</li>
73 <li>Fixed inaccuracy in GeocentricToGeodetic calculations.
</li>
74 <li>Added missing implementation of get/set running lights to SubSurfacePlatformAppearance.
</li>
75 <li>Fixed unit test compilation issues on linux.
</li>
76 <li>Corrected some old tutorial links. The wiki url changed a few years ago.
</li>
77 <li>Fixed ordering of orientation and dt sigma fields in EllipsoidRecord2.
</li>
78 <li>Whitespace and comment cleaning.
</li>
79 <li>Added more unit tests.
</li>
80 <li>Fixed incorrect pdu length calculation when calling Comment_PDU::SetVariableDatum.
</li>
81 <li>Fixed Action_Response_PDU constructor not populating all fields and ibocrrect length calculation.
</li>
82 <li>Fixed incorrect erasing loop in Connection::RemoveSubscriber. Duplicates were not always removed.
<a href=
"http://sourceforge.net/p/kdis/bugs/49/">Bug #
49</a></li>
83 <li>Corrected rounding error in GeocentricToGeodetic.
<li>
84 <li>Fixed Comment PDU length incorrect.
<a href=
"http://sourceforge.net/p/kdis/bugs/50/">Bug #
50</a></li>
85 <li>Fixed AttributeRecordSet::GetRecordLength not including all fields in size calculation.
<a href=
"http://sourceforge.net/p/kdis/bugs/51/">Bug #
51</a></li>
86 <li>Fixed divide by zero issue in DeadReckoningCalculator::computeRotationAxis when axis were zero.
</li>
87 <li>Fixed issues in Connection::GetNextPDU when a PDU was not decoded, we now clear the stream and continue.
</li>
88 <li>Fixed bug in OrientationError::SetElevationError, no value was assigned.
</li>
89 <li>Fixed bug in Minefield_Data_PDU::Encode, not correctly incrementing detonation wires.
</li>
90 <li>Fixed memory leak in PDU_Factory when applyFilters rejected the PDU.
</li>
91 <li>Fixed memory leak in Entity_State_PDU::operator= when assigning a new DeadReckoningCalculator.
</li>
92 <li>Fixing Conversion Near Poles and Casting in KCOnversion.h(Thanks Kyle).
</li>
93 <li>Added guard in case _USE_MATH_DEFINES is already defined in KUtils.h.
</li>
94 <li>Fixed a logic error in detecting polar regions for the coordinate conversion code.
</li>
95 <li>Changed the PDU_Factory_Filter destructor to be virtual to prevent undefined behavior.
</li>
96 <li>Added support for CMAKE_INSTALL_PREFIX usage to define alternative install location. Defaults to /usr/include/KDIS.
</li>
97 <li>Added support for Non-Human Life Form Appearance.
<li>
98 <li>Updated LifeFormAppearance Struct with additional fields.
</li>
99 <li>Updated AirPlatformAppearance Struct with additional fields.
</li>
100 <li>Updated GuidedMunitionAppearance Struct with additional fields.
</li>
101 <li>Improved GetAsString for NonHumanLifeFormAppearance.
</li>
102 <li>CulturalFeatureAppearance incorrectly supports Engine Smoke bit, Modified the struct to eliminate bit-
6 tracking.
</li>
103 <li>Fixed bug in Intercom_Control_PDU::Decode.
</li>
104 <li>Fixed type miss-match between EntityAppearance types(class to structs).
</li>
105 <li>Converted Connection functions to be virtual to allow for further derivation.
</li>
106 <li>Added the explicit keyword to the ctors and a true copy ctor for the Simulation_Management_Header.
</li>
107 <li>Added missing enums
16 &
17 for EventType enum.
<a href=
"http://sourceforge.net/p/kdis/bugs/89/">Bug #
89</a></li>
108 <li>Fixed memory leak in Entity_State_PDU when calling SetDeadReckoningCalculator.
</li>
109 <li>Fixed CryptoSystem byte ordering.
</li>
110 <li>Fixed MarkXTransponder negative altitude detection.
</li>
111 <li>Fixed potential stream overrun in DetonationPDU.
</li>
112 <li>Fixed Layer2 and
3 incorrectly double decoding the header - constructors were not ignoring the header even when being provided one.
<li>
113 <li>Fixed Enum functions not being exported to dll. (bug #
94).
</li>
114 <li>Fixed incorrect enums for Beam Function and added additional Time Shared enums. (bug #
103)
</li>
115 <li>Fixed incorrect conversion from bits to bytes in Signal_PDU.
</li>
118 <!-- Version 2-9-0 !-->
119 <table border=
"0" cellSpacing=
"0" cellPadding=
"0" width=
"95%" ID=
"Table2">
121 <td><b>Version
2-
9-
0 </b></td>
122 <td><b>21 January
2016</b></td>
127 <div style=
"color: blue">
128 <li>Added unit tests using googletest framework. See
<a href=
"http://sourceforge.net/p/kdis/wiki/Tests/">here
</a> for more info.
</li>
130 <li>Added a bool-operator for convenience to KRef_Ptr.
</li>
131 <li>Added Connection::SetBlockingTimeOut to allow for setting a timeout for blocking mode.
</li>
132 <li>Added copy constructor and assignment operator to Entity_State_PDU.
</li>
133 <li>Added fix where incorrect size was assigned to LE_VECTOR_SIZE.
</li>
134 <li>Added get and set functions to EntityKind that support integers as well as enums for kind, domain and country. Makes it simpler when using values that may not be standard of implemented in the enums.
</li>
135 <li>Added GetEnumSize and GetEnumDescriptor, this exposes the internal EnumDescriptor arrays used for GetEnumAsString and GetEnumFromString, it is now possible to iterate through an enumeration using these
2 functions.
136 <li>Added implicit conversion support to KRef_Ptr. Fixes compile bug when using weak references.
</li>
137 <li>Added missing implementation of LifeFormAppearance::SetEntityLifeformState.
</li>
138 <li>Added PDU_FactoryLink16 to Link
16 example.
</li>
139 <li>Added missing padding to SilentAggregateSystem.
</li>
140 <li>Added missing padding to Mode5TransponderBasicData.
</li>
141 <li>Changed the format in RelativeWorldCoordinates::GetAsString().
</li>
142 <li>Fixed AggregateMarking::Decode not setting the last char in m_sAggregateMarkingString to zero. Caused comparison issues.
</li>
143 <li>Fixed bug decode/encode in Entity_State_Update_PDU, was not handling padding.
</li>
144 <li>Fixed bug in Appearance_PDU decode when no flags were used.
</li>
145 <li>Fixed bug in AttachedPart not encoding/decoding the part type.
</li>
146 <li>Fixed bug in FixedDatum:GetDatumValue. Was using strncpy to return data which causes issues when the data was not a string.
</li>
147 <li>Fixed bug in IFF_PDU::Decode. More info
<a href=
"http://sourceforge.net/p/kdis/bugs/43/">here
</a></li>
148 <li>Fixed bug in Intercom Control PDU and IntercomCommunicationParameters. Some values were not initialized so caused unexpected behaviours during encode/decode.
<a href=
"http://sourceforge.net/p/kdis/bugs/42/">Ticket
</a></li>
149 <li>Fixed bug in Underwater_Acoustic_PDU::Decode, was encoding by mistake.
</li>
150 <li>Fixed bug in SphereRecord2::Encode(), was calling the wrong Encode function internally.
</li>
151 <li>Fixed bug in GED_BasicFixedWingAircraft and GED_BasicFixedWingAircraft, using
8 bit int instead of
16 for speed.
</li>
152 <li>Fixed cmake for KDIS_LIB that was causing it to build a shared library instead of static.
</li>
153 <li>Fixed cmake for MinGW when building lib/dll version of KDIS.
</li>
154 <li>Fixed comparison operator == in Set_Data_R_PDU.
</li>
155 <li>Fixed comparison operator bug in KFIXED.
</li>
156 <li>Fixed decode bug in Intercom_Control_PDU.
</li>
157 <li>Fixed decode issue when handling padding in Aggregate_State_PDU.
</li>
158 <li>Fixed encode bug in Receiver_PDU.
</li>
159 <li>Fixed encode/decode bug in Entity_Damage_Status_PDU. Was not including padding.
</li>
160 <li>Fixed exception handling bug in Connection and IsGroupOf_PDU.
</li>
161 <li>Fixed incorrect PDU min size for GridDataType
0 and
1.
</li>
162 <li>Fixed incorrect PDU size in Underwater_Acoustic_PDU.
</li>
163 <li>Fixed incorrect PDU size in IFF_ATC_NAVAIDS_FundamentalParameterData.
</li>
164 <li>Fixed missing padding in IO_Report_PDU.
</li>
165 <li>Fixed null reference crash when encoding IntercomCommunicationParameters with no record.
</li>
166 <li>Fixed protocol version not being set in Intercom_Control_PDU.
</li>
167 <li>Fixed SilentEntitySystem not initialising m_ui16NumOfAppearanceRecords to
0. Caused encode/decode failure.
</li>
168 <li>Fixed size calculation in SetFixedDatum and SetVariableDatum.
</li>
169 <li>Fixed TSPI_PDU::m_ui8SSDLen not being initialised to
0 in some constructors.
</li>
170 <li>Fixed Uninitialised variables in SetData_R_PDU.
</li>
171 <li>Fixed VariableDatum::GetPDULength returning the incorrect value.
</li>
172 <li>Improved Connection socket error messages.
</li>
173 <li>Improved debugging information in header when a PDU has too small a buffer.
</li>
174 <li>Link
16 example is now built as a dynamic library.
</li>
175 <li>Several fixes for LE_FIRE_PDU and LE_Detonation_PDU from public submission(Thanks G�ran!).
</li>
176 <li>Updated Link16 example code to now support partial decoding.
</li>
179 <!-- Version 2-8-0 !-->
180 <table border=
"0" cellSpacing=
"0" cellPadding=
"0" width=
"95%" ID=
"Table2">
182 <td><b>Version
2-
8-
0 </b></td>
183 <td><b>27 June
2014</b></td>
188 <div style=
"color: blue">
189 <li>Added IFF_PDU which replaces IFF_ATC_NAVAIDS_L1_PDU
</li>
190 <li>Removed IFF_ATC_NAVAIDS_L2_PDU, it is now a data type class called IFF_Layer2 which is a property of IFF_PDU.
</li>
191 <li>Added IFF Layer
3 classes: IFF_Layer3Transponder & IFF_Layer3Interrogator.
</li>
192 <li>Added VariableParamaters class. This replaces all ArticulationParamaters classes as the base class. See the
<a href=
"http://sourceforge.net/p/kdis/wiki/Migration_Guide/">migration
</a> guide for more details.
193 <li>Renamed ArticulationParamaters to ArticulatedPart.
</li>
194 <li>Added AttachedPart class.
</li>
195 <li>Added CryptoSystem::SetKeyID & CryptoSystem::GetKeyID.
</li>
196 <li>Removed BurstDescriptor. Fire PDU and Detonation PDU now use the Descriptor class. Fire PDU has Munition and Expendable descriptor. Detonation has Munition, Expendable or Explosion descriptor. This is in line with the DIS
7 standard. If you wish to support pre DIS
7 then use the Munition Descriptor class.
</li>
197 <li>Replaced BurstDescriptor in LE Fire & LE Detonation PDU with MunitionDescriptor. This class is the same except the Set/GetMuntion function is now named Set/GetType.
</li>
199 <li>Fixed no operation bug in CryptoSystem::SetCryptoSystemType.
</li>
200 <li>Fixed no operation bug in Aggregate_State_PDU::SetAggregateState.
</li>
201 <li>Fixed incorrect size values for DATA_R_PDU , SET_RECORD_R_PDU_SIZE and STOP_FREEZE_R_PDU_SIZE.
</li>
202 <li>Fixed bug in Set_Record_R_PDU::Decode & Set_Record_R_PDU::Encode. Not enough padding.
</li>
203 <li>Fixed error checking bug in Resupply_Received_PDU::Decode & Service_Request_PDU::Decode.
</li>
204 <li>Fixed bug in Transmitter_PDU::Transmitter_PDU, AntennaPatternLength was using the wrong data type.
</li>
205 <li>Fixed bug in void Data_Query_PDU::SetVariableDatum, setting the wrong length value.
</li>
206 <li>Fixed bug in MinePaintScheme, was not using the correct variable for SetPaintScheme & GetPaintScheme.
</li>
207 <li>Fixed ArticulationParameters(now ArticulatedPart) Parameter type variant field. The high and low bits method was incorrect. TypeVariantHighBits is now TypeVariantClass and TypeVariantLowBits is TypeVariantMetric.
</li>
208 <li>Fixed ArticulationParameters(now ArticulatedPart) Parameter type value field. Should have been a KFLOAT32 not KUINT64.
</li>
209 <li>Fixed bug in TimeStamp::SetTimeStampType.
</li>
210 <li>Fixed bug in EmitterBeam::SetEmitterBeamFunction, missing implementation.
</li>
211 <li>Fixed bug in EmitterBeam::ClearTrackedJammedTargets, invalid length value.
</li>
212 <li>Fixed bug with EmissionSystem data length being set to bytes and not words.
</li>
213 <li>Fixed enum CollisionType, inelastic and elastic values were mixed up. Removed OtherCollision, it was not valid.
</li>
214 <li>Fixed bug compiling Link
16 example when using a dll version of KDIS.
</li>
215 <li>Fixed Data_PDU::RequestID was not set to
0 by default causing junk values.
</li>
216 <li>Fixed bug in Directed_Energy_Fire_PDU Encode/Decode. Was not including padding.
</li>
217 <li>Fixed bug in FactoryDecoder when calling the clear function. If a single object was used to handle more than
1 enum it would attempt to delete it multiple times(one per enum). The FactoryDecoder now uses the KRef_Ptr class.
</li>
218 <li>Fixed bug with GuidedMunitionsAppearance when using a DLL version of KDIS.
</li>
219 <li>Fixed bug in GetNextPDU when an error occurs, the next call was using corrupted data.
</li>
220 <li>Fixed incorrect function name in EllipsoidRecord2. Function GetSigma should have been GetDOverDt.
</li>
221 <li>Fixed some invalid Symbolic names.
</li>
222 <li>Fixed compile bug when using Visual Studio
2010 Express Edition, WIN32 was not defined.
</li>
223 <li>Added missing implementations of LinearVelocity, EntityLocation, EntityOrientation, EntityAppearance into Entity_State_Update_PDU.
</li>
224 <li>Added missing implementation for Fire_PDU::SetPDUStatusFireType and Fire_PDU::GetPDUStatusFireType.
</li>
225 <li>Added missing get/set for ResponseCode, ResponsePowerReduction & ResponseRadarEnhancement to FundamentalOperationalData_RRB.
</li>
226 <li>Added missing get/set for NumBurst to PointObjectAppearance.
</li>
227 <li>Added missing get/set for AttackerEntityID to AttackerEntityID.
</li>
228 <li>Added WorldCoordinates::Set to set all values in one call.
</li>
229 <li>Added Vector::Set to set all values in one call.
</li>
230 <li>Added Vector::Lerp.
</li>
231 <li>Added WorldCoordinates::Lerp
</li>
232 <li>Added SystemDesignator and SystemSpecificData to IFF_ATC_NAVAIDS_L1_PDU, they are DIS
7 features.
</li>
233 <li>Added SetTCASVersion to FundamentalOperationalData_MarkXTransponder & FundamentalOperationalData_MarkXInterrogator.
</li>
234 <li>Added some missing enums to StationName.
</li>
235 <li>Added missing enum to WarfareType.
</li>
236 <li>Added missing enums to EncodingType.
</li>
237 <li>Added Automatic Dependent Surveillance - Broadcast to EntityCapabilities.
</li>
238 <li>Linux - Added
"make install" target and fixed the
"you have to cmake . cmake . before building". Thanks Bud Davis!
</li>
239 <li>Renamed EnumFundamentalOperationalData .h & .cpp to EnumIFF.
</li>
240 <li>Renamed enum WarheadType::GlassBladsWarhead to WarheadType::GlassBeadsWarhead.
</li>
241 <li>Renamed enum EncodingType::_16_bit_linear_PCM to EncodingType::_16_bit_linear_PCM2sComplementBigEndian.
</li>
242 <li>Changed define COMM_CHANNEL_TYPE to a static KUINT16 COMM_CHANNEL_TYPE_SIZE.
</li>
243 <li>Removed KDIS_VERSION macro. It was never used and I often forgot to update it.
</li>
244 <li>Cleaned up namespaces. namespaces had become polluted, for example the following was possible: KDIS::PDU::Header, KDIS::NETWORK::Header, KDIS::UTILS::Header, KDIS::PDU::Header should have been the only one possible.
</li>
245 <li>Cleaned up GetAsString for many classes.
</li>
246 <li>Performance Improvements In Decoding. ignoreHeader parameter added to Decode function on PDU's, this will help performance by not decoding the Header twice each time a PDU is received. PDU_Factory now uses this technique.
</li>
247 <li>Lots of improvements to comments. More details, fixes etc.
</li>
248 <li>Fixed some files missing their license text.
</li>
249 <li>Changed Copyright
2013 KDIS to Copyright
2013 Karl Jones.
</li>
250 <li>Added UNLICENSE statement to examples(Except Link16).
</li>
253 <!-- Version 2-7-0 !-->
254 <table border=
"0" cellSpacing=
"0" cellPadding=
"0" width=
"95%" ID=
"Table2">
256 <td><b>Version
2-
7-
0 </b></td>
257 <td><b>31 Jan
2013</b></td>
262 <div style=
"color: blue">
263 <li>Changed license from LGPL to FreeBSD.
</li>
265 <li>Updated KSynmbolicNames.h. Renamed COLLISION_THRSH_DFLT to COLLISION_THRSH, EE_EL_THRSH_DFLT to EE_EL_THRSH
</li>
266 <li>Default DIS version is now
7 when using cmake.
</li>
267 <li>Changed EnumHeader.h ProtocolVersion IEEE_1278_1_200x to IEEE_1278_1_2012
</li>
270 <!-- Version 2-6-0 !-->
271 <table border=
"0" cellSpacing=
"0" cellPadding=
"0" width=
"95%" ID=
"Table2">
273 <td><b>Version
2-
6-
0 </b></td>
274 <td><b>18 Dec
2012</b></td>
279 <div style=
"color: blue">
280 <li>Added KDIS::PDU::Bundle class to support sending PDU Bundles.
</li>
282 <li>Added Example_Bundle to show how to send PDU Bundles.
</li>
283 <li>Added support to the Connection class to handle PDU Bundles, use the function GetNextPDU. Example_PDUFactory2 supports PDU Bundles.
</li>
284 <li>Added operators == & != to KDataStream.
</li>
285 <li>Added Connection::Send( const KDataStream & stream ).
</li>
286 <li>Changed CopyFromBuffer parameter SerialData to const.
</li>
287 <li>Fixed bug in CulturalFeatureAppearance::SetEntityExteriorLights. Invalid value being assigned.
</li>
288 <li>Added comment to SetProtocolVersion to clear up some common questions about how KDIS sets the ProtocolVersion
</li>
289 <li>Fixed bug in Transmitter_PDU::Encode().
</li>
292 <!-- Version 2-5-0 !-->
293 <table border=
"0" cellSpacing=
"0" cellPadding=
"0" width=
"95%" ID=
"Table2">
295 <td><b>Version
2-
5-
0 </b></td>
296 <td><b>8 July
2012</b></td>
301 <li>Changes have been made to the EntityAppearance class. Removed General and Specific Appearance classes. Extended the appearance type classes so they now contain all the appearance data instead of just the specific. The general appearance data was not always used in the same way so it made more sense to do it like this which is more flexible.
</li>
302 <li>Added
2 missing appearances - Cultural & Sensor/Emitter.
</li>
303 <li>Updated Data_Query_PDU and Data_Query_R_PDU Time Interval field to now use the TimeStamp class instead of a KUINT32.
</li>
304 <li>Fixed bug in EnumDetonationResult.
</li>
305 <li>FIxed bug in TimeStamp::CalculateTimeStamp, Linux version was not using nano secs.
</li>
308 <!-- Version 2-4-0 !-->
309 <table border=
"0" cellSpacing=
"0" cellPadding=
"0" width=
"95%" ID=
"Table2">
311 <td><b>Version
2-
4-
0 </b></td>
312 <td><b>14 Dec
2011</b></td>
317 <div style=
"color: blue">
318 <li>Started Adding
<b>Link
16</b> integration taken from SISO-STD-
002-
2006. This can be found at
<b>Examples/Extending/Link16
</b>. Includes new PDU:
320 <li>Link16_Signal_PDU
</li>
321 <li>Link16_Transmitter_PDU
</li>
325 <li>Added GetEnumFromString..., It is now possible to convert an enums name to its value as well as value to enum. More info
<a href=
"http://sourceforge.net/p/kdis/wiki/Converting_Enumerations_Into_Their_String_Values_Tutorial/">here
</a>.
</li>
326 <li>Fixed bug in Data_Query_PDU and Data_Query_R_PDU. Variable and Fixed Datum's were being used instead of just ID's.
</li>
327 <li>Some improvements to DeadReckoningCalculator::GenerateSmoothingPoints
</li>
328 <li>Some reorganizing of the examples. Examples are now sorted in sub folders by category.
</li>
329 <li>Changed cmake files to generate solution folders to better organise projects, This is not supported on all IDE, its mainly a Visual Studio Pro(Not Express) feature. Controlled by a new CMake flag called
</b>USE_SOLUTION_FOLDERS
</b></li>
330 <li>Fixed bug in cmake file for DIS
7 when using KDIS as a DLL. Was including EnumInformationOperations.cpp.
</li>
331 <li>Fixed bug in Collision PDU, variable m_f32Mass was not being Encoded/Decoded.
</li>
332 <li>Fixed bug in several GetEnumAsStrings, some of the functions were passing the incorrect size value for their descriptors.
</li>
333 <li>Fixed. Some classes were not setting variables to
0 by default.
</li>
334 <li>Fixed bug in EncodingScheme, incorrect size.
</li>
335 <li>EmitterName - Fixed some invalid enums and added some missing ones.
</li>
336 <li>Renamed enum descriptors in EnumInformationOperations.cpp to align with naming convention used in other enum files.
</li>
339 <!-- Version 2-3-0 !-->
340 <table border=
"0" cellSpacing=
"0" cellPadding=
"0" width=
"95%" ID=
"Table2">
342 <td><b>Version
2-
3-
0 </b></td>
343 <td><b>27 July
2011</b></td>
348 <div style=
"color: blue">
349 <li>Last
2 PDU from the DIS
7 draft
15, All DIS
7 PDU from draft
15 are now implemented:
351 <li>Directed_Energy_Fire_PDU
</li>
352 <li>Entity_Damage_Status_PDU
</li>
356 <li>EntityMarking - Added support for strings instead of char arrays.
</li>
357 <li>Added some new useful functions:- Vector::GetMagnitude, Vector::GetDistance, WorldCoordinates::GetDistance
</li>
358 <li>Connection send functions now return the number of bytes sent instead of void.
</li>
359 <li>Removed LGPL licence from examples. All the examples of using KDIS are now unlicenced. Please note the KDIS library is still LGPL. See
<a href=
"http://sourceforge.net/projects/kdis/forums/forum/879756/topic/4586403/index/page/1">here
</a> for further details.
</li>
360 <li>Updated PDU_Factory with new PDU's.
</li>
361 <li>Fixed APA class public union, it should have been private.
</li>
362 <li>Fixed memory leak in Connection class. PDU_Factory was not being deleted.
</li>
365 <!-- Version 2-2-0 !-->
366 <table border=
"0" cellSpacing=
"0" cellPadding=
"0" width=
"95%" ID=
"Table2">
368 <td><b>Version
2-
2-
0 </b></td>
369 <td><b>30 May
2011</b></td>
374 <div style=
"color: blue">
375 <li>New PDU from DIS
7 draft
15:
377 <li>Attribute_PDU
</li>
381 <li>Added FactoryDecoder, this class can be used to add your own decoders. E,G you can add support for your own implementations of VariableDatum etc. See example
382 <a href=
"https://sourceforge.net/apps/mediawiki/kdis/index.php?title=How_to_extend_the_KDIS_Data_Types_using_the_FactoryDecoder">FactoryDecoder
</a>
383 for details. Current data types that now support this feature are: VariableDatum, FixedDatum, EnvironmentRecord and StandardVariable. More to come.
</li>
384 <li>In order to support custom data types(See above) some PDU now store internal objects as pointers, some PDU interfaces have had to change to reflect this. StandardVariable Factory Decode functions have also been changed. Apologies!
</li>
385 <li>Some performance improvments to KDataStream Encode/Decode functions. I found I had a
20%~ performance improvment.
</li>
386 <li>Added further enumerations for DatumID field taken from SISO-REF-
010-
2010 RC3
</li>
387 <li>Renamed
"LE" folder to
"Live_Entity" to fit more in line with the naming style of other PDU family folders.
</li>
388 <li>Added Header6 and Header7, based on the DIS_VERSION one will be typedef to Header. Header7 now features all the PDU Status fields from the DIS
7 standard. Removed PDUStatusTEILVC and moved all PDU Status code to Header7.
</li>
389 <li>Added ConnectionAddressFilter to NETWORK namespace and example to show use. This class allows filtering by IP address.
</li>
390 <li>Added new function to EnvironmentRecord called FactoryDecode, all derived classes can now be decoded using this function. Changed Environment_Process_PDU decode function to now use this.
</li>
391 <li>Fixed bug in Transmitter_PDU::GetAsString, Length Of Modulation Param was not being output correctly.
</li>
392 <li>Fixed bug in PDU_Factory decoding that prevented PDU bundling.
</li>
393 <li>Fixed compile bug in Connection.cpp for some versions of Linux. Connection::SendPDU( Header * H ) did not match the header version.
</li>
394 <li>Fixed bug in Connection::GetNextPDU. When using none blocking sockets the OnDataReceived event was called even when no data was received.
</li>
395 <li>Corrected DetonationType enum values.
</li>
396 <li>Added ClearVariableDatumList to Aggregate_State_PDU
</li>
397 <li>Fixed Warning. Some compilers were issuing warnings due to files not ending in a newline, this is now fixed.
</li>
398 <li>Added option to CMake to BUILD_EXAMPLES.
</li>
399 <li>Changed macro '#if DIS_VERSION
>=
7' to '#if DIS_VERSION
> 6' for compiling with MinGW.
</li>
400 <li>Run the code through
<a href=
"http://sourceforge.net/projects/astyle/">AStyle
</a> to fix some of the formatting issues when viewing the code outside of Visual Studio.
</li>
403 <table border=
"0" cellSpacing=
"0" cellPadding=
"0" width=
"95%" ID=
"Table2">
405 <td><b>Version
2-
1-
1 </b></td>
406 <td><b>23 Dec
2010</b></td>
411 <li>Added SendPDU to Connection class and changed Env Proc PDU example to show this in use.
</li>
412 <li>Small change to ConnectionSubscriber to allow for making changes on pdu transmit
</li>
415 <table border=
"0" cellSpacing=
"0" cellPadding=
"0" width=
"95%" ID=
"Table2">
417 <td><b>Version
2-
1-
0 </b></td>
418 <td><b>22 Dec
2010</b></td>
423 <div style=
"color: blue">
424 <li>New PDU from DIS
7 draft
15:
426 <li>IO_Action_PDU
</li>
429 <li>Added new namespace called 'NETWORK', this features the new
<b>Connection
</b> class, a cross platform DIS centric socket class.
</li>
430 <li>Added new example Example_PduFactory2. This example shows some of the new features of the Connection class.
</li>
431 <li>Removed KSockets.
</li>
432 <li>Added new Decode function to PDU_Factory. It is now simple to add support for your own PDU classes by overriding this function in your own factory classes.
</li>
434 <li>Improved clarity and appearance of various GetAsString functions. Added missing GetEnumAsString calls for various enums.
</li>
435 <li>Various little tweaks to optimize code.
</li>
436 <li>Added KDataStream::GetBufferPtr, this should add a small performance boost over using CopyIntoBuffer. Updated examples to use this feature.
</li>
437 <li>Fixed bug in EntityType::ReadFromTokenisedString, the string being passed was unexpectedly being changed by the strtok function.
</li>
438 <li>Removed some redundant code from KDataStream::CopyFromBuffer.
</li>
439 <li>Changed KException to inherit from std::exception. You can now catch KDIS exceptions with standard exceptions, changed examples to show this.
</li>
440 <li>Added missing function GetEnumAsStringDetailAmplitude.
</li>
441 <li>Fixed bug in Point_Object_State_PDU, the final padding field had not been included.
</li>
442 <li>Renamed all example projects to start with 'Example_' except the dll and lib examples.
</li>
443 <li>Fixed bug in GetEnumAsStringEmitterName, some values were not sorted correctly.
</li>
444 <li>Fixed bug when using bitsets in MS Visual Studio
2010.
</li>
445 <li>Removed unused variable(ii) in VaiableDatum.cpp.
</li>
448 <table border=
"0" cellSpacing=
"0" cellPadding=
"0" width=
"95%" ID=
"Table2">
450 <td><b>Version
2-
0-
1 </b></td>
451 <td><b>1 Sept
2010</b></td>
456 <li>Large refactoring of code, removing unnecessary using namespace statements and replaced with using statements to allow for intelisense to correctly display the contents of a namespace. Typo fixes.
</li>
457 <li>Moved EMITTER_BEAM_SIZE, EMITTER_SYSTEM_SIZE, OBJECT_TYPE_SIZE AND POINT_OBJECT_APPEARANCE_SIZE, SUPPLIES_SIZE to class scopes.
</li>
458 <li>Changed ENTITY_DESTINATION_RECORD, GROUP_DESTINATION_RECORD, GROUP_ASSIGNMENT_RECORD from a macro to static const KUINT16.
</li>
459 <li>Added SetSupplies to Resupply_Received_PDU.
</li>
460 <li>Rename ENTITY_DESTINATION_RECORD, GROUP_DESTINATION_RECORD, GROUP_ASSIGNMENT_RECORD to [NAME]_SIZE.
</li>
461 <li>Moved GEDItem, GEDList, GridAxisDescriptor, GridDataPtr, EnvironmentRecordPtr and EnvironmentRecordLst from PDU namespace to DATA_TYPE.
</li>
464 <table border=
"0" cellSpacing=
"0" cellPadding=
"0" width=
"95%" ID=
"Table2">
466 <td><b>Version
2-
0-
0</b></td>
467 <td><b>31 Aug
2010</b></td>
472 <div style=
"color: red">
473 <li>All DIS version
6 (IEEE
1278.1a) PDU's have now been implemented. This version includes the final
5 PDU's from the Live Entity(LE) family:
</div>
474 <div style=
"color: blue">
477 <li>Appearance_PDU
</li>
478 <li>Articulated_Parts_PDU
</li>
480 <li>LE_Detonation_PDU
</li>
484 <li>Fixed bug in point, linear and areal appearance classes. The endian was not being swapped when encoding/decoding.
</li>
485 <li>Fixed bug in Entity_State_Update_PDU Decode function.
</li>
486 <li>Fixed bug in DecimalToDMS when passing negative values.
</li>
487 <li>Changes to various GetAsString functions to improve formatting.
</li>
488 <li>Updated PDU Factory to support new PDU's and some Minefield PDU's that were left out in the last update.
</li>
491 <table border=
"0" cellSpacing=
"0" cellPadding=
"0" width=
"95%" ID=
"Table2">
493 <td><b>Version
1-
16-
0 </b></td>
494 <td><b>28 June
2010</b></td>
499 <div style=
"color: blue">
502 <li>Minefield_Query_PDU
</li>
503 <li>Minefield_Data_PDU
</li>
504 <li>Minefield_Response_NACK_PDU
</li>
508 <li>Fixed bug in VariableDatum decode, the datum value vector was not being cleared on each decode.
</li>
509 <li>FIxed bug in Minefield_Header. Protocol family and version were not being set.
</li>
510 <li>Updated PDU_Factory with new PDU's
</li>
511 <li>Added postfix 'd' onto debug lib and dll example binaries. The postfix value can be changed through the CMake interface under the CMAKE_DEBUG_POSTFIX variable.
</li>
512 <li>Updated entity state pdu to throw exception if InitDeadReckoning is not called before ApplyDeadReckoning.
</li>
513 <li>Fixed bug in CreateTokenisedString, the extra value was not being added to the string.
</li>
514 <li>Fixed bug with GetEnumAsString.. for minefield enums. Functions were not correctly defined.
</li>
515 <li>Changed EnumMinefield so all GetAsString functions were using the optimised GetAsString function instead of the old linear search method.
</li>
516 <li>Fixed PDUType enum bug, I had some incorrect values (over
135), this effects linear, object and point state PDU from the Synthetic_Environment family.
</li>
517 <li>Fixed bug in LinearObjectAppearance and ArealObjectAppearance Encode & Decode function,
1 extra octet was being encoded/decoded.
</li>
518 <li>Typo fix: SIMULATION_IDENTIFER_SIZE to SIMULATION_IDENTIFIER_SIZE.
</li>
519 <li>Fixed bug in SpecificAppearance::GetAsString, was using Kind value instead of Domain.(Thanks David).
</li>
520 <li>Added clear functions to some of the variable fields such as Entity State PDU Articulation Parameters.
</li>
521 <li>Fixed bug in minefield state pdu, PDU type was incorrect.
</li>
522 <li>Fixed bug in RecordSet::SetRecordValues, length was incorrect.
</li>
525 <table border=
"0" cellSpacing=
"0" cellPadding=
"0" width=
"95%" ID=
"Table2">
527 <td><b>Version
1-
15-
1 </b></td>
528 <td><b>17 May
2010</b></td>
533 <li>Fixed PDU length bug in Minefield_State_PDU.
</li>
534 <li>Fixed bug in MinefieldAppearance. struct and union were in the wrong order.
</li>
537 <table border=
"0" cellSpacing=
"0" cellPadding=
"0" width=
"95%" ID=
"Table2">
539 <td><b>Version
1-
15-
0 </b></td>
540 <td><b>11 May
2010</b></td>
545 <div style=
"color: blue">
548 <li>Areal_Object_State_PDU
</li>
549 <li>Minefield_State_PDU
</li>
553 <li>Fixed PDU length bug in Linear_Object_State_PDU::SetLinearSegmentParameters.
</li>
554 <li>Fixed bug in all EnvironmentRecords, the length value should not include the length of the EnvironmentRecord header.
</li>
555 <li>Fixed CMake bug that caused example Environmental_Process_PDU to only be included in DIS Version
7, should have been
6 and
7.
</li>
556 <li>All PDU size macros have been moved into the relevant classes namespace with public attributes and changed to static const KUINT32.
</li>
557 <li>Renamed GENERAL_APPEARANCE__SIZE to GENERAL_APPEARANCE_SIZE.
</li>
558 <li>Removed GED_BasicFixedWingAircraftt. An old file that was spelt incorrectly.
</li>
559 <li>Added support to EnvironmentType for changing the kind value
</li>
560 <li>Added filters to PDU_Factory. It is now possible to filter what PDU get through. It is very simple to create a filter, An Exercise ID filter has been provided as an example
</li>
561 <li>Updated PDU_Factory to show using a filter
</li>
562 <li>Updated PDU_Factory to support all new PDU
</li>
563 <li>Added ReadFromTokenisedString and CreateTokenisedString to EntityType. This allows for a tokenised string(Such as csv) to be parsed into the entity type.
</li>
564 <li>Fixed mismatch between entity location and world location in Detonation_PDU constructor.
</li>
565 <li>Improved timestamps auto calculate to include milliseconds for windows & linux.
</li>
566 <li>Changed all entity specific appearance classes to invert/negate the
"Entity State Active" value. In this case the DIS standard actually states that a
0 indicates the state is true and
1 false, so I flipped them to make more sense. If you want to disable the entity you now say SetEntityStateActive( false ) instead of SetEntityStateActive( true ).
</li>
567 <li>Added some additional operator overloads to Vector, EulerAngles and WorldCoordinates
</li>
568 <li>Changes to dead reckoning calculator. Dead reckoning is no longer done through static functions. Each entity must now have a dead reckoning calculator class to perform the dead reckoning correctly. More information and tutorials can be found
<a href=
"http://sourceforge.net/p/kdis/wiki/Dead_Reckoning_Tutorial/">here
</a>. Thanks to Robert Ioiart for these changes.
</li>
569 <li>Fixed spelling error on m_EntiyCapabilities in Entity_State_PDU
</li>
570 <li>Fixed public accessibility on Param Type Variant union in ArticulationParameters
</li>
573 <table border=
"0" cellSpacing=
"0" cellPadding=
"0" width=
"95%" ID=
"Table2">
575 <td><b>Version
1-
14-
0 </b></td>
576 <td><b>17 March
2010</b></td>
581 <div style=
"color: blue">
584 <li>Linear_Object_State_PDU
</li>
588 <li>Changed PDU factory example so that it does not close on PDU exceptions. It now prints the error and continues.
</li>
589 <li>Fixed bug in AggregateMarking, encode and decode were
1 octet out causing problems with Aggregate State PDU's.
</li>
590 <li>Fixed bug in EncodingScheme when compiling to linux - This change was reported in
1-
13-
0 but was not actually included.
</li>
593 <table border=
"0" cellSpacing=
"0" cellPadding=
"0" width=
"95%" ID=
"Table2">
595 <td><b>Version
1-
13-
0 </b></td>
596 <td><b>26 Feb
2010</b></td>
601 <div style=
"color: blue">
604 <li>Point_Object_State_PDU
</li>
608 <li>Added EulerToHeadingPitchRoll conversion to KConversions.h
</li>
609 <li>Fixed bug in HeadingPitchRollToEuler conversion. Renamed variables EulX, EulY and EulZ to Psi, Theta and Phi.
</li>
610 <li>Added SetTimeStampAutoCalculate, IsTimeStampAutoCalculate and CalculateTimeStamp to TimeStamp. This feature attempts to automatically calculate the time stamp when ever the encode function is called.
</li>
611 <li>Updated Entity_State_PDU and Environmental_Process_PDU examples to use the new time stamp feature.
</li>
612 <li>Fixed typo Entity_Infomation_Interaction to Entity_Info
<B>r
</B>mation_Interaction.
</li>
613 <li>Fixed bug in EncodingScheme when compiling to linux.
</li>
616 <table border=
"0" cellSpacing=
"0" cellPadding=
"0" width=
"95%" ID=
"Table2">
618 <td><b>Version
1-
12-
1 </b></td>
619 <td><b>16 Dec
2009</b></td>
624 <li>Changed EntityIdentifier and AggregateIdentifier data types to now derive from SimulationIdentifier.
</li>
626 <li>Chnaged VaribaleDatum to pass const KString refs. Small change to allow
627 for passing temporaries (Thanks Anthony).
</li>
628 <li>Added new constructor to Gridded_Data_PDU.
</li>
629 <li>Fixed bug in Gridded_Data_PDU, GRIDDED_DATA_PDU_SIZE was incorrectly set
630 to
32, should be
64.
</li>
631 <li>Changed SimulationIdentifier GetAsString to now say
"Object
" instead of
632 "Entity
".
</li>
633 <li>Fixed issue that caused all protected PDU status member variables
634 belonging to the Header class to become public, this was caused by using
635 anonymous unions.
</li>
636 <li>Fixed bug that caused
"Compiler Error C2635" when you tried to cast from Header to a derived class. This was caused by virtual inheritance.
</li>
639 <table border=
"0" cellSpacing=
"0" cellPadding=
"0" width=
"95%" ID=
"Table2">
641 <td><b>Version
1-
12-
0 </b></td>
642 <td><b>23 Nov
2009 </b></td>
647 <div style=
"color: blue">
650 <li>Gridded_Data_PDU
</li>
654 <li>Changed all GetEnumAsString functions to use a single search function which has also been optimised.
</li>
655 <li>Fixed some small bugs in some of the GetEnumAsString functions.
</li>
656 <li>Fixed iterator bug in Intercom_Control_PDU::GetAsString and Intercom_Control_PDU::Encode
</li>
657 <li>Some small optimisation improvements throughout.
</li>
658 <li>Fixed bug in EntityMarking, marking text was being null terminated incorrectly, I was writing outside of the array bounds.(Thanks Anthony).
</li>
659 <li>Renamed the
"Send" example to Entity_State_PDU. Should be a bit clearer for newcomers.
</li>
660 <li>Updated PDU Factory with new PDU and moved all includes to cpp file.
</li>
661 <li>Some changes to the GetAsString Formatting to make it easier to read.
</li>
665 <table border=
"0" cellSpacing=
"0" cellPadding=
"0" width=
"95%" ID=
"Table2">
667 <td><b>Version
1-
11-
1 </b></td>
668 <td><b>21 Sep
2009 </b></td>
673 <li>Fixed Cmake bug so Environmental_Process_PDU is not included in DIS
5 projects
</li>
674 <li>Fixed bug in Radio_Communications_Header, DIS
7 macros was not in the correct place.
</li>
675 <li>Added macro to PDUStatusTEILVC to only include if the DIS version is
7. This fixes problems if you are building projects manually.
</li>
676 <li>Fixed bug in LineRecord2 and PointRecord2 where the comparison operator would cause an infinite loop
></li>
677 <li>Removed some obsolete files in DataTypes folder(BoundSphere.h/.cpp)
</li>
680 <table border=
"0" cellSpacing=
"0" cellPadding=
"0" width=
"95%" ID=
"Table2">
682 <td><b>Version
1-
11-
0 </b></td>
683 <td><b>16 Sep
2009 </b></td>
688 <div style=
"color: blue">
691 <li>Environmental_Process_PDU
</li>
695 <li>Added new example Environmental_Process_PDU.
</li>
696 <li>Added DecimalToDMS and DMSTODecimal to KConversions.h
</li>
697 <li>I have begun to make some small changes in preparation for adding DIS
698 version
7. You may now specify DIS version
7 (DIS_VERSION=
7). This can be
699 done through CMake or the pre-processor definitions.
</li>
700 <li>Added PDUStatus to Header, this is a DIS version
7 feature. PDUStatus
703 <li>Added Get/Set PDUStatusTransferredEntityIndicator and
704 PDUStatusLVCIndicator to Entity_State_PDU,
705 Electromagnetic_Emission_PDU, Designator_PDU, ,
706 Radio_Communications_Header, IFF_ATC_NAVAIDS_PDU,
707 Electromagnetic_Emission_PDU, Entity_State_Update_PDU
</li>
708 <li>Added Get/Set PDUStatusFireType to Fire_PDU, this is a DIS
709 version
7 feature.
</li>
710 <li>Added Get/Set PDUStatusDetonationType to Detonation_PDU.
</li>
711 <li>Added Get/Set PDUStatusAttachedIndicator to Transmitter_PDU,
712 Signal_PDU, Receiver_PDU, Intercom_System_PDU,
713 Intercom_Control_PDU.
</li>
716 <li>Fixed a problem where some of the Vector operators would return the
717 referenced objects and not the new copy of the object. This effected
718 operator *, operator + and operator -.(Thanks Michael)
</li>
719 <li>Updated the Send example so it uses a while loop to continuously send the
720 PDU, some applications didn't always pick up the first PDU.
</li>
721 <li>Added SetWritePositon and GetWritePositon to KDataStream. These
722 functions allow for
"peaking
" at data.
</li>
723 <li>Updated PDU_Factory with some missing PDUs.
</li>
724 <li>Fixed typo in VariableDatum::GetAsString().
"Fixed Datum:" should have been
"Variable Datum:".
</li>
725 <li>Added new constructor to KException to allow for more details to be added.
</li>
726 <li>Fixed issue in logger playback, if the log is large it will take time to load so dont start the timer till we are ready.
</li>
728 <table border=
"0" cellSpacing=
"0" cellPadding=
"0" width=
"95%" ID=
"Table2">
730 <td><b>Version
1-
10-
0 </b></td>
731 <td><b>08 Aug
2009 </b></td>
736 <li><font color=
"#0000FF">Dead Reckoning is here. New class
737 DeadReckoningCalculator can be found in the Extras folder. This class will
738 calculate dead reckoning transformations for all dead reckoning algorithms.
739 This class is currently in a BETA state until I can verify that all
740 algorithms work correctly. Any help people can provide to validate/test/fix
741 these algorithms will be greatly appreciated :)
</font></li>
742 <li>Added
< operator to EntityType, AggregateType, AggregateIdentifier and
744 <li>Added *, +, +=, -, -= and [] operators to EulerAngles, WorldCoordinates
746 <li>All namespaces are now no longer global when you include a KDIS header.
747 This will prevent KDIS from conflicting with other class/struct/enums that
748 have the same name. If you have any problems compiling when you add this new
749 version try adding some using namespace directives to your code., E.G using
750 namespace KDIS; using namespace DATA_TYPE; etc.
</li>
751 <li>Added ApplyDeadReckoning function to Entity_State_PDU.
</li>
753 <table border=
"0" cellSpacing=
"0" cellPadding=
"0" width=
"95%" ID=
"Table2">
755 <td><b>Version
1-
9-
2 </b></td>
756 <td><b>30 July
2009 </b></td>
761 <li>Added missing destructor implementation to Action_Response_R_PDU.
</li>
762 <li>Added virtual to all destructors so they are always called correctly
763 even when a base pointer is deleted.
</li>
764 <li>Added == and != operators to all data types and PDUs.
</li>
765 <li>Added
< operator to EntityIdentifier, TimeStamp.
</li>
766 <li>Further improvements to comments, fixed some incorrect namespace
767 references in function comments.
</li>
769 <table border=
"0" cellSpacing=
"0" cellPadding=
"0" width=
"95%" ID=
"Table2">
771 <td><b>Version
1-
9-
1 </b></td>
772 <td><b>26 July
2009 </b></td>
777 <li>Added additional comments to several PDUs such as the Entity_State_PDU
778 to help further explain each field and removed a lot of the junk from
779 comments that was self explanatory. such as Method name etc.
</li>
780 <li>Moved remaining enumerations from KDISEnums.h to
781 EnumEntityInfoInteraction.h, this is where they belonged.
</li>
782 <li>Replaced all uses of strnset with memset.
</li>
783 <li>Changed all default constructors so that they initialise all data types
784 to zero if they didn't already.
</li>
785 <li>Fixed bug in FixedDatum, KDIS_EXPORT was defined inside the template
786 functions, caused by a replace all at some point in the past. Would have
787 caused problems if compiling to use a DLL.
</li>
788 <li>Added new function to all enumerations - GetEnumAsString
<i><Enum Name
></i>(
789 KINT32 Value ). These functions will return the string value for an
790 enumeration. E.G If you wanted to know what the value
39 represented in the
791 enumeration
<i>EmitterFunction
</i>you would call
<i>
792 GetEnumAsStringEmitterFunction(
39 )
</i>and in this case the returned value
793 would be
<i>"ClickJammingFunction
".
</i> This feature can be enabled/disable
794 by declaring a macro KDIS_USE_ENUM_DESCRIPTORS in the pre-processor
795 definitions or the KDefines.h file. This feature can make your generated
796 exe/dll/lib significantly larger so disable it if you don't plan to use it.
797 When disabled the GetEnumAsString functions will simply return the
798 enumerated value as a string. E.G
<i>GetEnumAsStringEmitterFunction(
39 )
</i>
799 would now return
<i>"39"</i>. I am currently applying this change to all
800 GetAsString function in Data types and PDU. More infomation can be found
801 <a target=
"_blank" href=
"http://sourceforge.net/p/kdis/wiki/Converting_Enumerations_Into_Their_String_Values_Tutorial/">
802 here
</a>. This feature can also be enabled/disabled from CMake.
</li>
803 <li>KDIS has a new website based on MediaWiki. This site will feature all
804 documentation for KDIS including class docs, tutorials etc. You can find it
805 <a target=
"_blank" href=
"http://sourceforge.net/p/kdis/wiki/Main_Page/">
807 <li>Small change to the Send example showing how to correctly use the time
808 stamp, a tutorial is now available for this example
809 <a target=
"_blank" href=
"http://sourceforge.net/apps/mediawiki/kdis/index.php?title=Sending_a_Entity_State_PDU_Tutorial">
811 <li>Class documentation is now also available at the KDIS website.
</li>
812 <li>Removed Old vc2008.zip. This is very out of date now.
</li>
814 <table border=
"0" cellSpacing=
"0" cellPadding=
"0" width=
"95%" ID=
"Table2">
816 <td><b>Version
1-
9-
0 </b></td>
817 <td><b>06 July
2009 </b></td>
822 <div style=
"color: blue">
825 <li>IsGroupOf_PDU
</li>
826 <li>IsPartOf_PDU
</li>
830 <li>Added MAX_PDU_SIZE
8192 taken from
1278.1-
200X standard.
</li>
831 <li>Removed all using namespace std; directives from header files to prevent
832 std attributes becoming exposed in the global namespace and causing
833 potential clashes with other peoples code.
</li>
834 <li>Added KRef_Ptr class. This is an implementation of referenced pointer,
835 designed to prevent memory leaks where memory needs to be dynamically
837 <li>Fixed potential bug, some exception handling catch blocks were catching
838 exception and instead of KException.
</li>
839 <li>Changed Country Type in EntityType constructor from KUINT8 to KUINT16.
841 <li>Added HeadingPitchRollToEuler to KConversions.h
</li>
843 <table border=
"0" cellSpacing=
"0" cellPadding=
"0" width=
"95%" ID=
"Table1">
845 <td><b>Version
1-
8-
2 </b></td>
846 <td><b>26 May
2009 </b></td>
851 <li>Several changes to help with compiling on linux platforms(Thanks
854 <li>KEncoderDecoders - Removed refrence to winsock2.h from
855 KEncoderDecoders, changed a refrence to UINT16 to KUINT16 and
856 changed all 'sizeof DataType' to 'sizeof( DataType )'.
</li>
857 <li>Changed all incldues to use forward slashes instead of back,
858 E.G #include
".\AggregateIdentifier.h
" to
859 #include
"./AggregateIdentifier.h
"</li>
860 <li>FixedDatum - changed all 'sizeof Type' to 'sizeof( Type )'.
</li>
861 <li>SystemIdentifier - small bug. union and struct were in the
863 <li>Changed all includes to match the case of the file names.
</li>
864 <li>Added ./ to all relative includes
</li>
867 <li>Removed additonal IntercomCommunicationsParameter includes from Cmake
869 <li>DIS_Logger_Record.cpp - throw qualifier missing on writeToFile.
872 <table border=
"0" cellSpacing=
"0" cellPadding=
"0" width=
"95%" ID=
"Table1">
874 <td><b>Version
1-
8-
1 </b></td>
875 <td><b>25 May
2009 </b></td>
880 <li>Fixed major bug in SwapBytes that caused the endian to not be correclty
883 <table border=
"0" cellSpacing=
"0" cellPadding=
"0" width=
"95%" ID=
"Table1">
885 <td><b>Version
1-
8-
0 </b></td>
886 <td><b>13 May
2009 </b></td>
891 <div style=
"color: blue">
894 <li>Record_R_PDU
</li>
895 <li>Record_Query_R_PDU
</li>
896 <li>Set_Record_R_PDU
</li>
900 <li><font color=
"#0000FF">Removed
<strong>RecordSpecification
</strong> data
901 type. Record Sets are now placed directly into a PDU, When a change was made
902 to the RecordSpecification parameter it was not allways possible to update
903 the PDU size. Removing RecordSpecification fixes this problem. This will
904 only effect the Transfer_Control_PDU.
</font></li>
905 <li>Fixed a bug in FixedDatumn that caused template functions to give linker
906 errors. This was due to me implementing the function in the cpp files, they
907 should be in the h files.
</li>
909 <table cellspacing=
"0" cellpadding=
"0" border=
"0" width=
"95%">
911 <td><b>Version
1-
7-
0 </b></td>
912 <td><b>11 May
2009</b>
918 <div style=
"color: blue">
927 <li>Event_Report_R_PDU
</li>
931 <li>Added some additional comments to existing PDU's to further explain
934 <li>Fixed some duplicate includes in the CMake file and added missing
935 Intercom_Control_PDU entry.
937 <li>Set_Data_PDU - New constructor.
939 <li>Data_Query_PDU - New constructor.
941 <li>Set_Data_PDU - New constructor.
<font SIZE=
"2"> </font>
943 <li>Event_Report_PDU - New constructor.
945 <li>Data_PDU - Changed constructor Data_PDU( KUINT32 RequestID ) to
946 Data_PDU(
<font COLOR=
"#0000ff">const
</font> EntityIdentifier
&
947 OriginatingEntityID,
<font COLOR=
"#0000ff">const
</font> EntityIdentifier
&
948 ReceivingEntityID, KUINT32 RequestID );
950 <li>Action_Request_PDU/Action_Request_R_PDU- Changed constructor
951 Action_Request_PDU( KUINT32 RequestID, KUINT32 ActionID ) to
952 Action_Request_PDU(
<font COLOR=
"#0000ff">const
</font> EntityIdentifier
&
953 OriginatingEntityID,
<font COLOR=
"#0000ff">const
</font> EntityIdentifier
&
954 ReceivingEntityID, KUINT32 RequestID, KUINT32 ActionID );
956 <li>Updated PDU_Factory to support all new PDU.
</li>
958 <table cellspacing=
"0" cellpadding=
"0" border=
"0" width=
"95%">
960 <td><b>Version
1-
6-
0 </b></td>
961 <td><b>30 March
2009</b>
967 <div style=
"color: blue">
970 <li>Transfer_Control_Request_PDU
972 <li>Create_Entity_R_PDU
974 <li>Remove_Entity_R_PDU
976 <li>Start_Resume_R_PDU
978 <li>Stop_Freeze_R_PDU
980 <li>Acknowledge_R_PDU
982 <li>Action_Request_R_PDU
984 <li>Action_Response_R_PDU
986 <li>Comment_R_PDU
</li>
990 <li><font color=
"#0000ff">IFF_ATC_NAVAIDS_L2_PDU - This PDU was missing some
991 fundamental parts which are now in place.
</font>
993 <li>Fixed bug in GetData in the Signal_PDU.
995 <li>Create_Entity_PDU - Fixed bug in Decode function.
997 <li>Removed KDIS_NEWORK_ENDIAN from KDefines.h - Unused.
999 <li>Moved all enumerations that belong to Entiy Info/Interaction into one
1000 file(EnumEntityInfoInteraction.h) and the same for Simulation
1001 Management(EnumSimulationManagement.h)
1003 <li>Changed DatumID enumerations, they are now appended with 'Record'
1004 instead of 'Datum'. Added additional enumeration values taken from
1005 'SISO-REF-
010 Changes'
1007 <li>Fixed a bug in 'CMakeLists.txt, Entity_State_Update_PDU.h was not being
1008 included in projects.
1010 <li>Start_Resume_PDU - Added new constructors
1012 <li>Stop_Freeze_R_PDU - Added new constructors.
1014 <li>Simulation_Management_Header - Fixed bug in constructor protocol family
1017 <li>SEES - Fixed bug in constructor protocol family not being set..
1019 <li>All PDU now automatically set the Protocol Version.
1021 <li>Example_Send - Removed line that sets the Protocl Family as this is now
1022 done automatically in the constructor.
1024 <li>Electromagnetic_Emission_PDU - Added
2 new constructors.
1026 <li>IFF_ATC_NAVAIDS_L1_PDU - Added new constructor
</li>
1029 <table cellspacing=
"0" cellpadding=
"0" border=
"0" width=
"95%">
1031 <td><b>Version
1-
5-
4 </b></td>
1032 <td><b>12 March
2009 </b></td>
1037 <li>Fixed bug in GetData in the Signal_PDU.
</li>
1039 <table cellspacing=
"0" cellpadding=
"0" border=
"0" width=
"95%">
1041 <td><b>Version
1-
5-
3 </b></td>
1042 <td><b>11 March
2009 </b></td>
1047 <a name=
"ArachTempDocPos"></a>
1048 <li>VariableDatum Encoding and Decoding bug fixed.
1050 <li>Interface for setting an arbitrary binary stream added to VariableDatum
1052 <li>Bits/Bytes mix up bugs fixed in VariableDatum
1054 <li>Some small comment fixes/spelling mistakes etc
1056 <li>Fixed the changelog, Microsoft Word filled the source with useless junk
1057 so re wrote by hand.
</li>
1059 <table cellspacing=
"0" cellpadding=
"0" border=
"0" width=
"95%">
1061 <td><b>Version
1-
5-
2 </b></td>
1062 <td><b>04 March
2009 </b></td>
1067 <li>Fixed Comment_PDU constructor, PDU type and length were not
1070 <li>DESIGNATOR_PDU_SIZE was incorrect, should be
88. This is due to a typo
1071 in the IEEE standard.
1073 <li>EncodingScheme bits were incorrect on Big Endian machines.
</li>
1075 <table cellspacing=
"0" cellpadding=
"0" border=
"0" width=
"95%">
1077 <td><b>Version
1-
5-
1 </b></td>
1078 <td><b>02 March
2009 </b></td>
1083 <li>Fixed FuseType enumeration, values were incorrect.
1085 <li>Fixed PDU_Factory so it now supports DIS version
5.
1087 <li>Fixed some small CMake bugs when building DIS version
5.
</li>
1089 <table cellspacing=
"0" cellpadding=
"0" border=
"0" width=
"95%">
1091 <td><b>Version
1-
5-
0 </b></td>
1092 <td><b>20 Feb
2009 </b></td>
1097 <div style=
"color: blue">
1100 <li>Intercom_Control_PDU
1102 <li>Aggregate_State_PDU
</li>
1106 <li>Changed KDataStream To only accept KUINT16 instead of KUINT32, this
1107 could have caused some buffer overrun problems.
1109 <li>Added new examples KDIS_LIB(Builds a
static library version)
and
1110 KDIS_DLL(Builds a
shared library version)
1112 <li>I have now introduced
<a href=
"http://www.cmake.org/">CMake
</a> into
1113 KDIS, CMake is a cross-platform, open-source build system. It will allow
1114 users to build custom project files for the compiler they choose. I have
1115 added some options to the CMake file to allow users to specify what version
1116 of DIS they want to use(
5 or
6) and if they wish to link against a library
1117 version(Static or Shared). A tutorial for using CMake with KDIS can be found
1118 <a href=
"http://www.karl-jones.com/KDIS/CMake.html">here.
</a> The visual
1119 studio
2008 examples are still included; however any future examples will
1120 require using CMake.
1122 <li>Changed how the KDIS_EXPORT macro works, it now looks for preproccesor
1123 deflagrate in the project. use either EXPORT_KDIS
or IMPORT_KDIS. E.g: /D
1124 "EXPORT_KDIS
".
</li>
1126 <table cellspacing=
"0" cellpadding=
"0" border=
"0" width=
"95%">
1128 <td><b>Version
1-
4-
0 </b></td>
1129 <td><b>05 Feb
2009 </b></td>
1134 <div style=
"color: blue">
1137 <li>Intercom_Signal_PDU
</li>
1141 <li><font color=
"#0000FF">DIS_Logger_Record and DIS_Logger_Playback added to
1142 Extras, Logs PDUs to a text file so that they can be played back later.
</font></li>
1143 <li>Added Examples DIS_Logger_Record and DIS_Logger_Playback. I have
1144 included some data I captured with theese examples (Generated by MAK
1145 VR-Forces
3.10).
1147 <li>Added GetAsString and ReadFromString to KDataStream. This will allow you
1148 to convert a data stream into a hex string for debugging, using
1149 ReadFromString will convert the string back into a KDataStream. With theese
1150 2 functions DIS data can be logged to a file and read at a later time. This
1151 is how the DIS_Loggers work.
1154 <table cellspacing=
"0" cellpadding=
"0" border=
"0" width=
"95%">
1156 <td><b>Version
1-
3-
1 </b></td>
1157 <td><b>30 Jan
2009 </b></td>
1162 <li>Removed references to Intercom_Signal_PDU from PDU_Factory. This is an
1163 unfinished PDU that should not have been in v1-
3-
1</li>
1165 <table cellspacing=
"0" cellpadding=
"0" border=
"0" width=
"95%">
1167 <td><b>Version
1-
3-
0 </b></td>
1168 <td><b>24 Jan
2009 </b></td>
1173 <li>Fixed bugs in Signal_PDU, SetData did not set the DataSize and GetData
1174 was returning the padding that was added to the data.
1176 <li>Fixed bug in Entity_State_PDU. EntityAppearance was being encoded
1179 <li>Fixed typing error in SurfacePlatformAppearance::GetAsString - It said
1180 "Space Platform Appearance
" instead of
"Surface Platform Appearance
".
</li>
1182 <table cellspacing=
"0" cellpadding=
"0" border=
"0" width=
"95%">
1184 <td><b>Version
1-
2-
0 </b></td>
1185 <td><b>21 Dec
2009 </b></td>
1190 <div style=
"color: blue">
1193 <li>Collision_Elastic_PDU
1195 <li>Entity_State_Update_PDU
1197 <li>FF_ATC_NAVAIDS_PDU
</li>
1201 <li><font color=
"#0000FF">Added new class PDU_Factory, found in Extras
1202 folder. This class will convert a data stream into the correct PDU and
1203 return a auto_ptr to the new PDU.
</font></li>
1204 <li><font color=
"#0000FF">Added new example to show how to use the
1205 PDU_Factory and also re structured all examples into one directory. All
1206 examples now use an updated version of KSOCKETS, however I still recommend
1207 you use your own socket library.
</font></li>
1208 <li><font color=
"#0000FF">Changed all GetFunctions that return an object to
1209 return a reference/const reference.
</font></li>
1210 <li><font color=
"#0000FF">Introduced a new namespace UTILS.
</font></li>
1211 <li><font color=
"#0000FF">KConversions.h added to UTILS, holds RadToDeg,
1212 DegToRad, MetersToFeet, FeetToMeters, GeodeticToGeocentric
</font></li>
1213 <li><font color=
"#0000FF">Renamed Electronmagnetic_Emission_PDU to
1214 Electromagnetic_Emission_PDU
</font></li>
1215 <li><font color=
"#0000FF">Changed Licence text from GPL to LGPL
</font></li>
1216 <li>Removed #ifdef _win32 for primitive data types in KDefines.h, this was
1219 <li>KDIS from working on any other OS.
1221 <li>Converted change log to Html
1223 <li>Changed IsMachineBigEndian to use static variables. Should provide a
1224 very small performance boost.
1226 <li>Added the DIS version a PDU belongs to in the header comments.
1228 <li>Fixed a bug in Comment_PDU, PDU Length when reading variable datum
1229 lengths was incorrect due to the returned variable datum lengths value being
1233 <table cellspacing=
"0" cellpadding=
"0" border=
"0" width=
"95%">
1235 <td><b>Version
1-
1-
1 </b></td>
1236 <td><b>28 Oct
2008 </b></td>
1241 <li>Added vc9 send example
</li>
1243 <table cellspacing=
"0" cellpadding=
"0" border=
"0" width=
"95%">
1245 <td><b>Version
1-
1-
0 </b></td>
1246 <td><b>27 Oct
2008 </b></td>
1251 <li>Fixed bug in vc9 example - was checking for a Data_PDU instead of
1254 <li>AntennaLocation - Added new constructor.
1256 <li>BurstDescriptor - Added new constructor / changed SetMunition to pass by
1259 <li>Renamed m_ui16Fire to m_ui16Fuse.
1261 <li>DeadReckoningParameter - Added new constructor / changed
1262 setDeadReckoningAlgorithm function to pass by value.
1264 <li>EmissionSystem - Added new constructor.
1266 <li>EmitterBeam - Added new constructor. Removed typing error in
1267 Set6BeamParamIndex.and Get6BeamParamIndex.
1269 <li>EncodingScheme - Added
2 new constructors.
1271 <li>GeneralAppearance - Added new constructor.
1273 <li>TimeStamp - Added new constructor.
1275 <li>Entity_State_PDU - Added new constructor.
1277 <li>Collision_PDU - Added new constructor.
1279 <li>Repair_Complete_PDU - Added new constructor.
1281 <li>Repair_Response_PDU - Added new constructor.
1283 <li>Radio_Communications_Header - Added new constructor.
1285 <li>Receiver_PDU - Added new constructor.
1287 <li>Signal_PDU - Added new constructor.
1289 <li>Transmitter_PDU - Added new constructor.
1292 <div style=
"color: blue">
1293 Acknowledge_PDU - Added new constructors to auto generate a response
1294 depending on the PDU.
</div>
1297 <table cellspacing=
"0" cellpadding=
"0" border=
"0" width=
"95%">
1299 <td><b>Version
1-
0-
1 </b></td>
1300 <td><b>24 Oct
2008 </b></td>
1305 <li>Signal_PDU : Data length changed to number of bits instead of octets.
</li>