WSF 1.7.3 - 10 Apr 2012¶
General¶
Changed names for input and script types in the optional wsf_hel project, in order to adhere to the “WSF_” naming convention, as follows:
INTERSECT_PROCESSOR -> WSF_INTERSECT_PROCESSOR
LASER_WEAPON -> WSF_LASER_WEAPON
HEL_LETHALITY -> WSF_HEL_LETHALITY
HEL_ASPECT_LETHALITY -> WSF_HEL_ASPECT_LETHALITY
BEAM_DIRECTOR -> WSF_BEAM_DIRECTOR
LaserWeapon -> WsfLaserWeapon
BeamDirector -> WsfBeamDirector
Corrections¶
(CR 8265) Modified on_message so it would accept either WSF_DROP_TRACK_MESSAGE or WSF_TRACK_DROP_MESSAGE as a handler for WsfTrackDropMessage. When WSF was created, the type of WsfTrackDropMessage was confusingly named WSF_DROP_TRACK_MESSAGE instead of WSF_TRACK_DROP_MESSSAGE. This provides a transition path by allowing either form.
(CR 9290) Corrected a problem where a platform using a WSF_6DOF_MOVER would continue to fly straight & level after being told to change course. This error could previously be achieved by commanding it to WsfPlatform.GoToLocation (or WsfPlatform.FollowRoute), then command it to WsfPlatform.TurnToHeading, and then command it to fly to the original location (or route).
(CR 9339) Corrected several problems with the evaluation of incidentally engaged targets when the weapon_effects attribute allow_incidental_damage is provided.
When an incidental target was MISSED (i.e.: event_output WEAPON_MISSED) the status said KILLED instead of MISSED if any previously evaluated incidental target in the same engagement was hit and killed.
The PkDrawn on the WEAPON_MISSED event_output was reported even if a Pk draw was not required (i.e.: outside the maximum possible lethal radius). It was showing the result from the last incidentally hit target in the same engagement.
Incidentally engaged targets that were moving at the time when the engagement was terminated used an out-of-date location for evaluating miss distance. This could cause a target to be incorrectly categorized as hit or missed.
(CR 9341) The script method WsfPlatform.Route would crash if called on a platform that did not have a mover.
(CR 9365 and 9393) Corrected a problem where the WSF_6DOF_MOVER would report a higher speed externally, but would propagate at a slower rate than reported.
(CR 9370) Fixed a bug where imperfect correlation with the cluster method was not working when a filter was also being used on a track_manager.
(CR 9374) Fixed a bug where a WSF_ESM_SENSOR was not reporting a type whenever a multi-transmitter system’s last transmitter was not detected.
(CR 9390) Fixed an issue with the WSF_SIMPLE_FT_EFFECT not working correctly with embedded WSF_RADIUS_EFFECT commands.
(CR 9391) Corrected a problem where the WSF_GUIDED_MOVER command thrust_vectoring_time_limits was not accepting valid values.
(CR 9400) WSF_6DOF_MOVER would sometimes fail to detect that it had reached the target waypoint if navigation_errors were being used.
(CR 9402) Corrected a problem where the speed flown by WSF_6DOF_MOVER was different from the requested speed by 2-3% due to a different atmosphere model being used by the underlying model.
(CR 9416) Corrected a missing capability in the WSF_SIMPLE_FT_EFFECT implementation where the false_target_screener target forcing commands and the WSF_RADIUS_EFFECT effects were not being accounted for in the WSF_SIMPLE_FT_EFFECT implementation.
Fixed an issue with propagating the track errors associated with EW Effects in a WSF_RADAR_SENSOR types when compute_measurment_errors was set to true.
Fixed an issue where WsfArticulatedPart methods X,Y,Z,Yaw,Pitch,Roll could return old information.
(CR 9441) Corrected a problem where the SENSOR_MODE_DEACTIVATED event was not being issued when a mode was implicitly deselected as a result of the selection of a new mode of a single-select sensor.
(CR 9485) Corrected a problem where programs would crash if the script method WsfPlatformPart.ProcessInput was erroneously used to edit a non-existing sensor mode. The program will now issue a warning message and ignore the attempt.
(CR 9493) Corrected a problem where multi-hop WSF_RADIO_TRANSCEIVER relays were causing a crash. This only occurred if the final relay attempt in a multi-hop scenario failed.
(CR 9511) Corrected three problems with script compile errors in the behavior_tree. The behavior tree now reports script compile errors found in its script blocks, said errors now do not cause a crash, and “unknown script” errors are now reported.
(CR 9512) Fixed an interpolation problem with the WSF_TSPI_MOVER. When mover updates occurred in-between points defined in the input file, the calculated intermediate position was wrong.
(CR 9541) Corrected an infinite loop problem in the WSF_RADIO_TRANSCEIVER when multiple comm devices on the same network could all act as relays but none could deliver the message.
(CR 9564) Corrected a problem where WSF_GUIDED_MOVER could miss detecting the end of the burn phase of a stage if the thrust_duration time was exceeded before all the fuel was consumed.
Enhancements¶
Added a new concept called [[Reference Values]], which allow the value of a many commands to be derived from a script variable.
Added WSF_MESSAGE_PROCESSOR, which provides the mechanisms to implement message processing delays and message routing. This replaces WSF_DELAY_PROCESSOR and offers new capabilities while still being compatible. WSF_DELAY_PROCESSOR can still be referenced from input files, but it actually use the new capability.
Added the synchronous operating mode to WSF_COMPOSITE_SENSOR. This allows multiple-aperture systems (such as multi-faced ESA systems) to be more easily modeled.
Added the ability to specify how sensor detection attempts are scheduled when using the default sensor scheduler. (See scan_scheduling)
Added the script method WsfWaypoint.SetTimeToPoint to WsfWaypoint.
Added script methods WsfWeaponEngagement.CompletionTime, WsfWeaponEngagement.PkDrawn and additional forms of WsfWeaponEngagement.MissDistance and WsfWeaponEngagement.TargetLocation (additional form) to WsfWeaponEngagement.
Provided a default implementation for WsfImplicitWeapon, and added WSF_IMPLICIT_WEAPON as a new weapon type. This implementation allows engagement both against specific platforms, as well as using a track to provide a target location. If a launch computer is provided in the weapon definition, the estimated time to intercept will be used as the duration of the implicit engagement. Otherwise one must call CeaseFire to end an engagement.
Added in support for creating triangular lattice arrays for the Electronic Steered/Scanned Array (ESA) Pattern.
Added in support for defining element patterns (normalize wrt isotropic (dBi)) in Electronic Steered/Scanned Array (ESA) Pattern.
Modified the navigation_errors model to use parameters that make more closely correspond to the performance specifications for real IMU systems. Also updated WSF_6DOF_MOVER and WSF_GUIDANCE_COMPUTER to consider navigation errors when making its computations.
(CR 8675) Added the capability to specify receiver and antenna commands in the WSF_SLB_EFFECT and WSF_SLC_EFFECT.
(CR 9344) Added the command track_processor to WSF_TASK_PROCESSOR, which allows the selection of an alternate track processor to be used as the source of tracks for evaluation.
(CR 9401) Modified the sensor script methods WsfSensor.EM_RcvrCount and WsfSensor.EM_XmtrCount (and the underlying framework calls) to return 0 if called prior to initialization and modified many script methods to check for a null antenna pointer. This is to prevent crashes if the user attempts to call sensor script methods prior to the sensor completing initialization. Most methods that directly or indirectly access modes, transmitters, receivers or antennas will be not perform any useful function if called prior to the completion of initialization.
Added the script method WsfPlatform.FutureLocation to WsfPlatform to retrieve the anticipated location of a platform at some specified time in the future. This only works for platforms that employ specific types of movers.
Documented the formerly undocumented WsfPlatform.RoutePointIndex in WsfPlatform.
(CR 9442) Added the capability to report the range rate reports_range_rate of a track by a sensor.
Added more script methods to WsfFuel to allow for improved fuel management in scripting and behaviors.
Added the callback SIMULATION_INITIALIZING to observer.
Added the script method MATH.Log(value,base) to return the logarithm of a number with respect to a specified base.
Added script methods WsfGeoPoint.OffsetNED and WsfGeoPoint.OffsetRBE to WsfGeoPoint.
(CR 9487, 9488, 9489) Added script methods WsfPlatform.InfraredRadiantIntensity, WsfPlatform.OpticalCrossSection and WsfPlatform.RadarCrossSection to WsfPlatform. These methods provide to return the signature of a platform when viewed from a specified location.
Added the capability for zones to draw themselves using WsfDraw. This is similar to the existing “DebugDraw…” capability but uses a WsfDraw object that is passed as an argument to the script methods.
(CR 9490) Updated WSF_IMAGE_PROCESSOR and WSF_VIDEO_PROCESSOR to allow specification of a time duration that must elapse before declaring detection, classification or identification.
Added static script methods WsfComm.IsA_TypeOf(), WsfMover.IsA_TypeOf(), WsfProcessor.IsA_TypeOf(), WsfSensor.IsA_TypeOf() and WsfWeapon.IsA_TypeOf(), which allows one to determine if an object of specified type inherits (or derives from) an object of a specified base type.
(CR 9496) Added the ability to set the “Type of Network Enabled Weapon” field in the J11.0 Initial word. It was currently a spare.
Added MGRS (Military Grid Reference System) conversions to/from lat, lon. In code these are available in UtEllipsoidalEarth. In script one may use the methods WsfPlatform::LocationMGRS() and WsfPlatform::SetLocationMGRS().
(CR 9577) Added the simple_miss_reporting command to the ‘dis_interface’, which causes all detonation reports that are not 1 to be reported as 6.
Added timing_method command to change how WSF maintains the realtime clock.