Data Distribution Management
Data Distribution Management is based on some requirements in simulation. For example, in the air defense simulation, the ground radar only needs to know the air condition data within a certain range, therefore, the simulation members of the aircraft only need to transmit the data in the specified region to the radar members according to the data requirements of the ground radar, which can avoid the transmission of a large amount of useless data, improves the utilization of network bandwidth.
The purpose of data distribution management is to reduce the transmission and receipt of useless data during simulation operation.
So how can we explain the above example in simulation?
The radar is the ordering party and the aircraft is the publishing party. The radar only subscribes to air condition data within the range of 1000 meters (filtered by the recipient) from the plane ), however, aircraft only send air condition data within the range of 1000 meters based on radar data requirements (sender filtering ). Obviously, for the Federation, "sender filtering" is more meaningful, but it is more difficult to implement and the computing overhead is greater.
Data distribution is based on the path Space in the Fed file. Each path Space is multidimensional, and each dimension is a restricted domain. Next we will demonstrate the path space through radio communication between two people.
(Spaces
(Space radiospace
(Dimension channel)
)
Among them, the dimension channel is the channel for radio communication. We set a communication channel for each user. Only when both parties use the same channel can communication be performed. This statement also tells us that in simulation, there is at least one domain range in the path Space of both parties (that is, the dimension we are talking about) that overlaps with each other, both parties can communicate with each other. The Interaction Class is used to describe:
Radiohandle = _ rtiambassador. getroutingspacehandle ("radiospace ");
Idhandle = _ rtiambassador. getdimensionhandle ("channel", radiohandle );
Idregion = _ rtiambassador. createregion (radiohandle, 1 );
// Number 1 indicates that the path space only uses a limit field.
RRTI: ulong idrange = 4;
Idregion-> setrangelowerbound (0, idhandle, idrange );
The minimum value is 4.
Idrange = 4;
Idregion-> setrangeupperbound (0, idhandle, idrange );
_ Rtiambassador. policyaboutregionmodification (* idregion );
RRTI: ulong
In this example, the communication channel is limited to 4,
The interaction code of the sender's sending region is:
_ Rtiambassador. sendinteractionwithregion (_ messageid, * parameters, "0", * idregion );
The code for the receiver to order a region is:
_ Rtiambassador. subscribeinteractionclasswithregion (_ messageid, * idregion );
That is, the receiver can receive data only when the receiver's region is 4.
The two most important functions of the object class:
For senders:
_ Obid = _ rtiambassador. registerobjectinstancewithregion (_ objectid [0], "KZ", _ attributeidtext, idregion, 1 );
For the receiver:
_ Rtiambassador. subscribeobjectclassattributeswithregion (_ objectid [0], * idregion, * theattributes );
Rules for data distribution management:
An object class attribute must be explicitly bound to a declared path space or implicitly bound to the default path Space.
An interactive class must be explicitly bound to a declared path space or implicitly bound to the default path Space.
An object class property can be bound to a maximum of one path Space.
An interactive class can be bound to a maximum of one path Space.
All object class attributes and interaction classes that are not explicitly associated with a path Space (or "Bound") are implicitly associated with the default path Space.