WSF 2.2.0 - 2 Nov 2017

General

  • DEPRECATED Visual Studio 2013 Support, to support full C++11 Compliance.

Known Issues

  • Linux 32-bit builds currently not supported due to 3rd party library issues for Wizard, result Vis and Warlock (i.e. GUI based applications).

Corrections

  • (Issue #119) The shortest path is not being found correctly when using a road mover on a route network.

  • (Issue #221) Added LocalTrackList to WsfTrackManager to also get the local track list similar to the already implemented RawTrackList.

  • (Issue #236) (MANTIS #231) Fixed issue with reading in and converting byte data size type unit.

  • (Issue #281) Corrected an issue where the initial track report fused into a local track was not being saved in that track’s track history.

  • (Issue #309) Removal of “default” and “default2” from dis_interface and xio_interface to enforce use of proper network interfaces and addresses by the user.

  • (Issue #332) (MANTIS #241) When the WSF_MESSAGE_PROCESSOR queuing_method is set to ‘none’, the simulation would crash.

  • (Issue #333) (MANTIS #240) The WSF_MESSAGE_PROCESSOR sender command implementation was not working as described in the documentation. The sender command may be repeated to build a set of acceptable senders. A message will be selected for processing if it comes from ANY of the acceptable senders that are listed.

  • (Issue #354) The Zone method on a WsfPlatform was not always returning the correct zone. This resulted in failures when using the WsfZone.PointIsInside methods.

  • (Issue #355) Fixed an issue where externally controlled DIS platforms were not properly copying over the DIS marking characters onto the representative AFSIM platform.

  • (Issue #362) Fixed an issue with undefined geometry data in the SENSOR_DETECTION_ATTEMPT event_output data when the transmitter and/or receiver was masked by the horizon.

  • (Issue #382) (MANTIS #286) Fixed a crash in the event_pipe when a sensor is used not containing an antenna.

  • (Issue #406) (MANTIS #235) Miscellaneous grammar and documentation fixes.

  • (Issue #413) Fixed a grammar issue with quantitative_track_quality expecting a Real value instead of a Boolean.

  • (Issue #415) Fixed issue with not correctly setting the commander when using the WsfPlatform.SetCommander script method and not correctly removing a commander from existing command chains if that platform gets deleted.

  • (Issue #431) Fixed an issue with duplicate mover updates calls for event-stepped simulations that were not required.

  • (Issue #213) Modified WSF_BALLISTIC_MISSILE_LAUNCH_COMPUTER so it would compute intercepts for space targets modeled using WSF_SPACE_MOVER, WSF_NORAD_SPACE_MOVER or WSF_GUIDED_MOVER. Before this change computations involving space targets would typically cause the simulation to crash. To circumvent the problem the space object had to be replaced with one that used WSF_GUIDED_MOVER and modified so it would eventually hit the Earth’s surface. With the change the standard space movers can be used directly.

  • (Issue #214) (Issue #409) Significantly improved the ‘launch-to-orbit’ capabilities of WSF_GUIDED_MOVER and WSF_GUIDANCE_COMPUTER. Trajectories are now more realistic and transitions into orbit are smoother. Orbital launch computers will need to be regenerated.

  • (Issue #277) During initialization of a WSF_JTIDS_TERMINAL comm, each command chain mapped to a slot group is verified to be a valid command chain on the platform.

  • (Issue #285) (MANTIS #263) Corrected an issue with the WSF_TSPI_MOVER incorrectly extrapolating its route to due a sin/cos swap when calculating the NED velocity.

  • (Issue #294) The target track being used in the Air-to-Air Launch Computer generator had the wrong location information. This caused the generator to fire at the center of the earth and never find any intercept solutions.

  • (Issue #311) (MANTIS #186) When in route following mode, the WSF_GUIDANCE_COMPUTER was not correctly determining when a waypoint was passed.

  • (Issue #323) Improved documentation for aimpoint offsets in WSF_GUIDANCE_COMPUTER and updated the model to issue an error if the aimpoint offset input values are inconsistent (If either aimpoint_azimuth_offset and aimpoint_range_offset is non-zero then both must be non-zero.)

  • (Issue #345) Fixed an issue with comm jamming_perception_threshold not operating properly for the receiver side of the comm devices. Also fixes to grammar for proper parsing of jamming perception commands.

  • (Issue #365) Fixed a crash in the Air to Ground launch computer when using the script method CanIntercept.

  • (Issue #402) (MANTIS #292) Fixed a grammar issue in detection_thresholds for the frequency ratio value not being properly parsed.

  • (Issue #403) (MANTIS #237) Fixed a error in the WSF_JTIDS_TERMINAL when reading in user-specified time slot blocks.

  • (Issue #405) (MANTIS #266) Deprecated aero base-type of WSF_2D_AERO in lieu of WSF_AERO base-type, no capability loss. Other miscellaneous grammar and documentation fixes.

  • (Issue #404) (MANTIS #239) Fixed missing grammar issue in target_recognition and in Target Recognition Commands.

  • (Issue #407) (MANTIS #238) Fixed a error in the WSF_JTIDS_TERMINAL not using user-specified time slot blocks.

  • (Issue #426) (MANTIS #300) Fixed a error in the WSF_JTIDS_TERMINAL not using user-specified maximum_range.

  • (Issue #436) (MANTIS #265) Fixed issue with WSF_LINK16_COMPUTER registering to receive ALL messages being sent in the simulation between comm devices.

  • (Issue #441) Fixed an issue where the event_output for the event MOVER_GUIDANCE_PHASE_CHANGED was missing the trailing ‘D’ in the event name.

  • (Issue #360) (MANTIS #297) Fix runtime and grammar issues in hellfire_demos.

  • (Issue #408) Fixed specific issues relating to execution of Orbital Events, especially when multiple orbital maneuvers are executed sequentially. Also corrected a bug where the Intercept and Rendezvous methods were not correctly optimizing on delta-V.

  • Fixed an issue in WSF_ORBITAL_LAUNCH_COMPUTER where the file in the leo_data command was not being found if the path specification was not relative to the execution directory.

  • (Issue #288) (MANTIS #259) Correct a couple of input command issues for the WSF_LINK16_COMPUTER for unknown commands being properly identified to the user.

  • (Issue #284) (MANTIS #272) Corrected an issue with sensor_plot horizontal_map capability executing incorrectly defined target region, causing an infinite loop in some cases.

  • (Issue #414) Fixed an issue with sensor_plot not creating the contour file when using the sedit_file command.

Enhancements

  • (Issue #239) Implemented a rocket-based orbital maneuvering model that expends delta-V according to the Tsiolkovsky rocket equation. Mass properties and thrust must be provided as rocket stage inputs.

  • (Issue #251) Added the access_reports output feature, providing reports of start time, end time, and the duration of platforms’ visibility to each other.

  • (Issue #346) Implement eclipse computations for WSF_SPACE_MOVER, including eclipse methods and eclipse constraints for execution of orbital mission events.

  • (Issue #377) Added the eclipse_reports output feature, providing reports of start time, end time, and the duration of platforms’ being eclipsed by the Earth.

  • (Issue #392) Implement attitude controller models used by WSF_SPACE_MOVER and WSF_NORAD_SPACE_MOVER.

Development

  • Relocated changelogs into a subfolder in the docs directories to enable appending sections of the changelog by projects. This enhancement allows for changelogs to be built by the projects that are included, alleviating the issue with having a single source.

  • Code signature of WsfApplicationExtension::ProcessCommandLine changed to pass the Options structure from WsfStandardApplication to the extension when processing command line arguments.

  • (Issue #457) UtMath has been converted to constexpr constants and into a namespace

  • (Issue #479) Refactored of sensor detector and error models to classes and sensor support for compositional architecture of these sub-models.

  • (MANTIS #305) Fixed a possible overflow condition with random_seed_time due to casting from double to integer. Now using a long int type to cast to for initial random seed value.

  • Updated Build Instructions documentation to add in regression testing instructions.

  • Updates to CMake to include GENERATE_EXPORT_HEADER commands for plug-ins. Also added in static compilation of included libraries into plug-ins to enhance ease of sharing through less file includes.

  • Removed many of the include directories in the projects to simplify CMake files and ease integration with external tools.

  • Coding standards and formatting updates.

  • Updated :doc`../developer/integration_guide` to support changes in interface for projects and plug-ins.

  • (Issue #172) Replaced the use of the so-called ‘fast’ versions of the sin() and cos() math functions with those from the standard library. Using the standard library versions results in approximately 10% increase in CPU utilization, but results in improved precision that is beneficial in certain situations (e.g. vertical flight of a rocket) where the approximations caused by the ‘fast’ versions were causing problems. NOTE: This change can result in small differences to event output, and could even result in different simulation outcomes (although not likely).

  • (Issue #210) Fix multiple issues with VS2017 compiling code-base.

  • (Issue #214) Modified UtEntity::GetSpeed so it always returns the speed in whatever coordinate system was last used to update the position of the object (e.g.: ECI speed if ECI coordinates were used, WCS for WCS/LLA coordinates). Also added UtEntity::GetSpeedECI and UtEntity::GetSpeedWCS when a specific speed must be used.

  • (Issue #380) Replaced the so-called ‘fast’ versions of the map call *fast_map* in the util project with C++ STL map and unordered_map as appropriate throughout the code-base.

  • (Issue #389) Changed underlying graph representations used throughout AFSIM to accept floating point values for future usage with enhanced communications.

  • (Issue #432) Changed WsfSimpleComponentT class template to use component type rather than parent type as template argument, providing flexibility to create simple components for specialized component types (such as WsfWeaponComponent rather than WsfComponentT<WsfWeapon>).