WSF 1.7.5 - 28 Mar 2013

General

Corrections

  • Corrected a bug found in WsfTerrain::GetHeightExtremaIn() function, which intermittently failed to find terrain height maxima within a zone.

  • (CR 6564) Fixed errors with script parsing/compiling. The file/line/column was not being reported correctly when an error was found.

  • (CR 9040) Corrected an issue with the WSF_THREAT_PROCESSOR. It was erroneously classifying every track that lacked location and velocity data as a threat. Added two more input parameters that allow for such tracks to be threats, but their default value will not.

  • (CR 9779) Corrected errors when using casting in script.

  • Corrected an issue with WSF_TRACK_EFFECT where it would not use the required_j_to_s value to limit the effects requirements.

  • Corrected an issue with WSF_ESM_SENSOR where the signal list for detected multi-beam systems would list all of the signals on the detected system instead of just those that met threshold once one of the beams were detected.

  • Corrected an issue with WSF_SIMPLE_FT_EFFECT where default data was being used after the first interaction instead of input data for the EA interaction.

  • Corrected an issue with waypoint movers where flying to far away points would sometimes not work.

  • Corrected an issue where the spatial domain of the WSF_HARM_MOVER was being reported incorrectly.

  • Corrected an issue where the distance limit given to a WsfClusterManager was being doubled and so it created clusters twice the desired size.

  • Corrected an error that caused a crash when using the “job_board_comm” feature of the WSF_RIPR_PROCESSOR.

  • Corrected an issue with comm routing that erroneously classified some routing as a relay and then failed to route messages.

  • Corrected an issue when comm routing with WSF_RADIO_TRANSCEIVER where routes with more than one hop would fail.

  • Corrected an issue where engagements with a weapon impacting a location, with no specific target and incidental damage turned on, resulted in erroneous incidental kills.

  • Corrected an issue relating to route movers computing accelerations using waypoint speeds. This behavior will now be triggered any time a waypoint speed is specified and no acceleration is specified on the mover or route. Previously, the computed acceleration would occur for only the first waypoint.

  • Corrected an issue with the use_zone command. If the <shared-zone-type> does not exist the simulation will halt with an error.

  • (CR 10079) Corrected an issue where frequencies in RCS tables with the “plt_file” format weren’t being read correctly.

  • Corrected a problem in the WSF_RADAR_SENSOR when compute_measurement_errors is enabled, where errors in az and el were being computed using standard deviation values from the transmitter, rather than the receiver.

  • (CR 10118) Corrected an issue with the Doppler shift calculation in WSF_ACOUSTIC_SENSOR; it now uses the appropriate equation for the calculation.

  • (CR 10137) Corrected an error with the observer PLATFORM_APPEARANCE_CHANGED event. The expected script method is now PlatformAppearanceChanged not PlatformAppearance.

  • (CR 10146) Corrected an error in the RIPR Job Board allocation algorithm: if there were more jobs than bidders, only the first jobs posted to the job board were allocated and awarded to the bidders.

Enhancements

  • Extensively improved WsfExchange functionality so that exchanges of named goods types may occur across a DIS connection (i.e., a Tanker supplying JP8_Fuel to a Receiver). See WSF_EXCHANGE_PROCESSOR.

  • Added in the capability to check if a given WSF_EP_TECHNIQUE is active (i.e., in use/turned on) for a sensor via script interface call IsTechniqueActive.

  • Added WSF_MOBILITY_AND_FIREPOWER_LETHALITY weapon effect. Allows an explicit weapon to impart a Mobility or Firepower Kill, in addition to Catastrophic Kill.

  • Added Mover “Mode” switching, via either waypoint crossing or upon script command. Effect is Mover implementation defined. See WSF_ROTORCRAFT_MOVER for more details.

  • (CR 5718) Script now supports operators +=, -=, *=, /=.

  • (CR 6786) script_struct added, allowing user-defined structs in script.

  • (CR 9364) Script strings may now contain comment characters, i.e., string abc = “This #2 isn’t a /* */ //

    comment”;

  • (CR 9894) Add the ability to set a purge interval on WSF_COMM_TRANSCEIVER and WSF_RADIO_TRANSCEIVER. For any message waiting in the transmission queue for a time greater than the purge interval will be dropped. The MESSAGE_DISCARDED event will be generated.

  • (CR 9928) When using simple_miss_reporting in the dis_interface block a detonation result of 1 was being set when either the target was killed or damaged. This enhancement restricts the reporting of the Detonation PDU’s detonation result to 1 when the target is killed otherwise a detonation result of 6 is reported for all other conditions.

  • (CR 10022) If a probability of detection (Pd) vs range table is defined in the WSF_GEOMETRIC_SENSOR the required Pd will now be random variable unless use_constant_required_pd is set to true.

  • Added the capability to the false_target_screener to specify a j_to_s_delta_threshold for limiting the sector count to only the false targets within the threshold wrt to the target threshold return.

  • Added the capability for the WSF_COMM_ROUTER to use the proper comm device for outbound routed messages if that comm is on the same network as the next receiver.

  • It is now possible to execute scripts on other objects, and access script variables on other objects, using the ‘->’ operator.

    WsfPlatform plat = WsfPlatform.FindPlatform("plat");
    double x = plat->x;        // Get variable 'x' on the platform
    plat->y = 1.0;             // Set variable 'y' on the platform
    plat->local_script(1,2,3); // Call script 'local_script()' on the platform
    

    See Script Right Arrow Operator

  • New script functions: __print_callstack(), assert(), has_attr(…), has_script(…)

  • Added the “priority_selector” and “weighted_random” intermediate connector node types to the behavior_tree for prioritized node selection and weight random selection, respectively. Also added the complimentary parameters “run_selection” and “make_selection”.

  • Added the “channel_job_type” feature to the WSF_RIPR_PROCESSOR for allowing designation of some job channels for certain types of jobs.

  • Added the WsfRouteFinder capability. Generates a route around given avoidance regions and returns a WsfRoute to you for use.

  • Added indirect fire capability with the wsf_fires library. This capability allows for relatively easy definition of new indirect fire types (both explicit and implicit), and time-on-target. New types defined in wsf_fires include WSF_FIRES_MOVER and associated launch computer, WSF_FIRES_LAUNCH_COMPUTER. Also included is the script object, WsfBallisticPath, which allows for impact prediction, time-of-flight prediction, and trajectory visualization. The input option, ballistic_types is used to categorize all launched platform types that are used for indirect fire. Test cases and unclassified definitions for rocket, artillery, and mortars are provided in the “fires_demo” directory.

  • Added a global selection to utilize quantitative_track_quality. This selection enforces computation of track quality based on the track’s state covariance, allowing for track “coasting.” It will be desirable to use this feature for more sophisticated tracking studies; however, it may invalidate task manager logic that uses track quality to make decisions (do not use with the WSF IADS, for instance). This feature defaults to “disabled.”

  • (CR 10058) radio entity type fields now populated in DIS transmitter PDUs.

  • Added a high-energy laser (HEL) model, WSF_LASER_WEAPON, to the WSF core. This includes a core default fluence model.

  • Moved thermal_system model to the WSF core. This is optionally used with the HEL weapons (e.g., WSF_LASER_WEAPON) to model the total available shot time.

  • Added the simulation control command, start_time_now, for the purpose of synchronizing real-time simulations to the system clock.

  • Added wsf_weapon_server interface. If defined, the interface listens for ASCII interface RELEASE_STORE commands and fires weapons.

  • Added the script function System.Time().

  • Added a filter option for the WSF_DIRECTION_FINDER_PROCESSOR, as in use a Kalman filter.

  • Added options to retain track history in the track_manager and WSF_TRACK_PROCESSOR. The option to retain track a track history is specified using retain_raw_tracks, and the length of history to keep is set with the track_history_retention_interval option.

  • (CR 10109) Allows the user to specify that each event be written as a single line in the event output file. A new flag was added to the event_output block called print_single_line_per_event.

  • (CR 10110) Added the SetDamageFactor script method to the WsfPlatform script object.

  • (CR 10119) Added the WsfPlatform.SetCommander() script access method.

  • Implemented a much more extensive set of clutter data in the ALARM clutter model than either the original ALARM data or the later tables that it replaces. These data include most of the table sets from the book <u>Low-Angle Radar Clutter</u>, by Billingsley.

Developer Items

  • (CR 10020) Moved the WsfScriptGeoPointClass out of the WsfGeoPoint.cpp file and into a separate file. Performed some cleanup to the WsfScriptGeoPointClass.

  • Refactored WsfSpaceMover and WsfNORAD_SpaceMover to derive from the base class WsfSpaceMoverBase. This moves the orbital propagator object into the base class, along with common code for Initialize and Update methods.

  • Removed, moved WsfCovariance::InitializeProcessNoiseECS into WsfKalman filter for clarity. It masked what the position values were being set to.

  • Code for the script parsing and execution was reworked to support features in this release and in support of a future script debugger.

Data Items

  • Added fires_demo to illustrate the use of WSF_FIRES_MOVER and WSF_FIRES_LAUNCH_COMPUTER.

  • Added acoustic_demo to illustrate how to set up acoustic sensors and acoustic signatures.

  • Added exchange_proc_demo to illustrate the use of the WSF_EXCHANGE_PROCESSOR.