Manual Tpfdd - Bse (MTB) is the name for a new capability in JAS that allow users to 'move' bses by deactivating them and then reactivating them at a later time at a different location. These moves can occur at specific sim times or be triggered by knowledge base changes.
Currently MTB data is read from a csv file. The location of this file is specified by the MtBseData setting under the Manual Tpfdd heading in the jasS.ini file. The name of this file is user-specified. Future development will include a gui.
; File: jasS.ini ; Title: Settings file for JAS Simulation System [Manual Tpfdd] MtBseData=C:\Documents and Settings\DefaultUser\My Documents\JAS\bseChanges.csv
There are 15 data fields in the input file:
During sim initialization, the JtfC2 object for each side reads the input file and selects the entries for its side. Each line in the file is checked for errors, the results are logged to the Jas message log, and each line that passes edit checks is stored in the JtfC2 of the specified side as a JwMtBseMove object. JwMtBseMove objects can be activated in two different ways:
Once the simulation is through with initialization, the JtfC2 object for each side selects all the JwMtBseMoves that have an explicit deactivateTime value. These JwMtBseMoves are scheduled for execution at the time specified.
JwMtBseMoves that have a deactivateFactValue rather than an explicit deactivateTime are scheduled for immediate execution if and when the fact that references them turns true in the knowledge base, and the bse is still alive (not dead and not dissolved).
Deactivation will occur at the time specified by deactivateTime or when the fact specified by deactivateFactValue goes true.
If only reactivateTimeStart is specified, an event will be scheduled to activate the bse at the current sim time plus reactivateTimeStart.
Sim Time | reactivateTimeStart | reactivateTimeEnd | reactivate scheduled |
---|---|---|---|
24 | 10 | nil | 34 |
If both reactivateTimeStart and reactivateTimeEnd exist, the difference between them will be calculated, a random number will be drawn, and the product of the difference multiplied by the random number will be added to the current sim time and then used as the time to schedule the reactivation event.
Sim Time | reactivateTimeStart | reactivateTimeEnd | difference | random number | reactivate scheduled |
---|---|---|---|---|---|
24 | 10 | 12 | 2 | 0.40 | 34.8 |
The bse will be reactivated at the location specified by the reactivationLocation or at the centerPoint of the specified common named map object. If dispersionRadius is specified, the reactivation location will be a random point in a circle having the original reactivationLocation as its center and a radius of dispersionRadius meters.
Entries with the same brigadeKey will be deactivated together at the time specified by deactivateTime or when deactivateFactValue becomes true. This time or factValue and all other information related to the 'move' will be the information contained in the first entry with the brigadeKey. All subsequent entries for this brigadeKey need have only the bseId and the isActive columns present. All three bses in the example below will be deactivated at sim time 10 and reactivated when activateFactValue moveBlueAir becomes true.
Brigade Key | deactivateTime | deactivateFactValue | isActive | bseId | activateFactValue |
---|---|---|---|---|---|
BKEY1 | 10 | nil | T | BM_A10_SQDN | moveBlueAir |
BKEY1 | nil | nil | T | BM_F22_SQDN | nil |
BKEY1 | nil | nil | T | BM_F35_SQDN | nil |
All the rules regarding randomization of spatial and temporal reactivation described above also apply to bse 'grouped' by brigadeKey.
To trigger resource changes from the knowledge base, first set up a fact that will eventually evaluate to true. This fact should logically be put on the JtfC2 knowledge base for the appropriate side. This example uses a ScheduledEvent that goes true at time = 4.0.
On the ScheduledEvent, select Process MT Bses as the action.
Then enter a value in the Requested MT Value field that corresponds to the factValue of the JwMtBseMoves that you want to execute on this fact.
To do
There is currently no specific MT instrumentation. You can see the results of MTB processing in the JAS message log by turning on the MTDebug message category.