Example #1
0
        public void Initialize(ref SimulationModelInfo simModel, ref Blackboard blackboard, ref SimulationEventDistributor distributor)
        {
            this.blackboard  = blackboard;
            this.bbClient    = new BlackboardClient();
            this.distributor = distributor;
            this.distClient  = new SimulationEventDistributorClient();
            this.simModel    = simModel;

            distributor.RegisterClient(ref distClient);
            //distClient.Subscribe("NewObject");
            //distClient.Subscribe("RevealObject");
            //distClient.Subscribe("TimeTick");
            //distClient.Subscribe("StateChange");
            //distClient.Subscribe("ResetSimulation");

            blackboard.RegisterClient(ref bbClient);
            bbClient.Subscribe("PhysicalObject", "ID", true, false);
            bbClient.Subscribe("PhysicalObject", "StateTable", true, false);
            bbClient.Subscribe("PhysicalObject", "Throttle", true, false);
            bbClient.Subscribe("PhysicalObject", "FuelCapacity", true, true);
            bbClient.Subscribe("PhysicalObject", "FuelAmount", true, true);
            bbClient.Subscribe("PhysicalObject", "FuelConsumptionRate", true, true);
            bbClient.Subscribe("PhysicalObject", "FuelDepletionState", true, true);
            bbClient.Subscribe("PhysicalObject", "DockedToParent", true, false);

            objectProxies = new Dictionary <string, SimulationObjectProxy>();
        }
Example #2
0
        public void Initialize(ref SimulationModelInfo simModel, ref Blackboard blackboard, ref SimulationEventDistributor distributor)
        {
            this.blackboard  = blackboard;
            this.bbClient    = new BlackboardClient();
            this.distributor = distributor;
            this.distClient  = new SimulationEventDistributorClient();
            this.simModel    = simModel;

            distributor.RegisterClient(ref distClient);
            //distClient.Subscribe("NewObject");
            //distClient.Subscribe("RevealObject");
            //distClient.Subscribe("TimeTick");
            //distClient.Subscribe("HandshakeInitializeGUIDone");
            //distClient.Subscribe("ResetSimulation");

            blackboard.RegisterClient(ref bbClient);
            bbClient.Subscribe("PhysicalObject", "ID", true, false);
            bbClient.Subscribe("PhysicalObject", "OwnerID", true, false);
            bbClient.Subscribe("PhysicalObject", "ClassName", true, false);
            bbClient.Subscribe("PhysicalObject", "Location", true, false);
            bbClient.Subscribe("PhysicalObject", "Capability", true, false);
            bbClient.Subscribe("PhysicalObject", "Vulnerability", true, false);
            bbClient.Subscribe("PhysicalObject", "IsWeapon", true, false);
            bbClient.Subscribe("PhysicalObject", "PursueStarted", true, false);
            bbClient.Subscribe("PhysicalObject", "PursueTargetID", true, false);
            bbClient.Subscribe("PhysicalObject", "SelfDefenseStartAttack", true, true);
            bbClient.Subscribe("PhysicalObject", "SelfDefenseCapability", true, true);
            bbClient.Subscribe("PhysicalObject", "SelfDefenseTargetID", true, true);
            bbClient.Subscribe("PhysicalObject", "TargetsInRange", true, false);
            bbClient.Subscribe("PhysicalObject", "CurrentAttacks", true, false);
            bbClient.Subscribe("PhysicalObject", "AttackState", true, false);
            objectProxies = new Dictionary <string, SimulationObjectProxy>();
        }
        public void Initialize(ref SimulationModelInfo simModel, ref Blackboard blackboard, ref SimulationEventDistributor distributor)
        {
            this.blackboard  = blackboard;
            this.bbClient    = new BlackboardClient();
            this.distributor = distributor;
            this.distClient  = new SimulationEventDistributorClient();
            this.simModel    = simModel;

            distributor.RegisterClient(ref distClient);
            //distClient.Subscribe("NewObject");
            //distClient.Subscribe("MoveObject");
            //distClient.Subscribe("TimeTick");
            //distClient.Subscribe("ResetSimulation");

            blackboard.RegisterClient(ref bbClient);
            bbClient.Subscribe("PhysicalObject", "ID", true, false);
            bbClient.Subscribe("PhysicalObject", "Location", true, false);
            bbClient.Subscribe("PhysicalObject", "Velocity", true, false);
            bbClient.Subscribe("PhysicalObject", "Size", true, false);
            bbClient.Subscribe("PhysicalObject", "DockedToParent", true, false);
            bbClient.Subscribe("PhysicalObject", "Capability", true, false);
            bbClient.Subscribe("PhysicalObject", "Vulnerability", true, false);
            bbClient.Subscribe("PhysicalObject", "TargetsInRange", true, true);
            bbClient.Subscribe("PhysicalObject", "State", true, false);
            //bbClient.Subscribe("PhysicalObject", "MaximumSpeed", true, false);
            //bbClient.Subscribe("PhysicalObject", "Throttle", true, false);
            //bbClient.Subscribe("PhysicalObject", "DestinationLocation", true, false);
            objectProxies = new Dictionary <string, SimulationObjectProxy>();
        }
Example #4
0
        public BlackboardClient GetBlackboardClient()
        {
            BlackboardClient c = new BlackboardClient();

            blackboard.RegisterClient(ref c);
            return(c);
        }
 public BlackboardManagerSim()
 {
     blackboard  = null;
     bbClient    = null;
     distributor = null;
     distClient  = null;
     simModel    = null;
 }
Example #6
0
 public StaticAttributeSim()
 {
     blackboard    = null;
     bbClient      = null;
     distributor   = null;
     distClient    = null;
     simModel      = null;
     objectProxies = null;
 }
 public CollisionDetectionSim()
 {
     time          = 0;
     blackboard    = null;
     bbClient      = null;
     distributor   = null;
     distClient    = null;
     simModel      = null;
     objectProxies = null;
 }
Example #8
0
 public FuelHandlingSim()
 {
     time          = 0;
     blackboard    = null;
     bbClient      = null;
     distributor   = null;
     distClient    = null;
     simModel      = null;
     objectProxies = null;
 }
Example #9
0
 public ExternalCommunicationSim()
 {
     blackboard    = null;
     bbClient      = null;
     distributor   = null;
     distClient    = null;
     simModel      = null;
     objectProxies = null;
     v3            = null;
 }
Example #10
0
 public DynamicRegionSim()
 {
     time          = 0;
     blackboard    = null;
     bbClient      = null;
     distributor   = null;
     distClient    = null;
     simModel      = null;
     objectProxies = null;
 }
Example #11
0
 public AttackProcessorSim()
 {
     time          = 0;
     blackboard    = null;
     bbClient      = null;
     distributor   = null;
     distClient    = null;
     simModel      = null;
     objectProxies = null;
     randomSeed    = 0;
     random        = new Random(randomSeed);
 }
Example #12
0
        public ScoringSim()
        {
            time          = 0;
            blackboard    = null;
            bbClient      = null;
            distributor   = null;
            distClient    = null;
            simModel      = null;
            objectProxies = null;

            lastScore = new Dictionary <string, double>();
            //regions = new Dictionary<string, BlockingRegion>();
        }
Example #13
0
        private void Start()
        {
            if (System.IO.File.Exists(simulationModelTextBox.Text))
            {
                simEngine.Initialize(simulationModelTextBox.Text, Int32.Parse(serverPortTextBox.Text));
                simEngine.StartSimCore();
                hostnameTextBox.Text = simEngine.GetServerHostName();
                UpdateForm();
                bbClient = simEngine.GetBlackboardClient();



                SubscribeToObject("PhysicalObject");
                SubscribeToObject("DecisionMaker");
                SubscribeToObject("Team");
                SubscribeToObject("SensorNetwork");
                SubscribeToObject("LandRegion");
                SubscribeToObject("ScoringRegion");
                SubscribeToObject("ActiveRegion");


                simulationModelButton.Enabled  = false;
                simulationModelTextBox.Enabled = false;
                serverPortTextBox.Enabled      = false;

                //start logging thread
                if (checkBoxReplayLog.Checked)
                {
                    string logPath = "log.txt";
                    string logMode = "Detailed";
                    if (textBoxReplayLog.Text != "")
                    {
                        logPath = textBoxReplayLog.Text;
                    }
                    if (radioButtonLimited.Checked)
                    {
                        logMode = "Limited";
                    }

                    simEngine.StartReplayLogger(logPath, logMode, SimCoreServer.SimCoreServer.GetProductVersion(), SimCoreServer.SimCoreServer.GetCompileDate());
                }
                checkBoxReplayLog.Enabled = false;
                startReplayButton.Enabled = true;
            }
            else
            {
                MessageBox.Show("Must set simulation model file first");
            }
        }
Example #14
0
        public void Initialize(ref SimulationModelInfo simModel, ref Blackboard blackboard, ref SimulationEventDistributor distributor)
        {
            this.blackboard  = blackboard;
            this.bbClient    = new BlackboardClient();
            this.distributor = distributor;
            this.distClient  = new SimulationEventDistributorClient();
            this.simModel    = simModel;

            distributor.RegisterClient(ref distClient);
            blackboard.RegisterClient(ref bbClient);
            bbClient.Subscribe("PhysicalObject", "ID", true, false);
            bbClient.Subscribe("PhysicalObject", "Location", true, false);

            objectProxies = new Dictionary <string, SimulationObjectProxy>();
        }
Example #15
0
        public void Initialize(ref SimulationModelInfo simModel, ref Blackboard blackboard, ref SimulationEventDistributor distributor)
        {
            this.blackboard  = blackboard;
            this.bbClient    = new BlackboardClient();
            this.distributor = distributor;
            this.distClient  = new SimulationEventDistributorClient();
            this.simModel    = simModel;

            distributor.RegisterClient(ref distClient);
            //distClient.Subscribe("NewObject");
            //distClient.Subscribe("ResetSimulation");

            blackboard.RegisterClient(ref bbClient);
            bbClient.Subscribe("BaseObject", "ID", true, true);
        }
Example #16
0
        //private Dictionary<string, Team> teams;
        //private Dictionary<string, DecisionMaker> decisionMakers;

        public SelfDefenseSim()
        {
            time          = 0;
            blackboard    = null;
            bbClient      = null;
            distributor   = null;
            distClient    = null;
            simModel      = null;
            objectProxies = null;
            randomSeed    = 0;
            random        = new Random(randomSeed);

            //teams = new Dictionary<string, Team>();
            //decisionMakers = new Dictionary<string, DecisionMaker>();
        }
Example #17
0
 public SeamateProcessorSim()
 {
     time                          = 0;
     blackboard                    = null;
     bbClient                      = null;
     distributor                   = null;
     distClient                    = null;
     simModel                      = null;
     objectProxies                 = null;
     scoreRulesExist               = null;
     handledAttacks                = null;
     dms                           = null;
     classifications               = null;
     _terminalToDMMap              = null;
     IndividualDMIsLoggedIn        = false;
     objectAssignmentList          = null;
     _attackTargetHashes           = null;
     mostRecentItemsForStimulators = null;
 }
Example #18
0
        private void Stop()
        {
            simEngine.Stop();
            UpdateForm();
            bbClient = null;
            ObjectCheckBox();

            simulationModelButton.Enabled  = true;
            simulationModelTextBox.Enabled = true;
            serverPortTextBox.Enabled      = true;
            //stop logging thread
            if (checkBoxReplayLog.Checked)
            {
                simEngine.StopReplayLogger();
            }
            checkBoxReplayLog.Enabled = true;
            //historyLogger.StopThread();
            startReplayButton.Enabled = false;
        }
Example #19
0
        public void Initialize(ref SimulationModelInfo simModel, ref Blackboard blackboard, ref SimulationEventDistributor distributor)
        {
            this.blackboard  = blackboard;
            this.bbClient    = new BlackboardClient();
            this.distributor = distributor;
            this.distClient  = new SimulationEventDistributorClient();
            this.simModel    = simModel;

            distributor.RegisterClient(ref distClient);
            //distClient.Subscribe("NewObject");
            //distClient.Subscribe("RevealObject");
            //distClient.Subscribe("StateChange");
            //distClient.Subscribe("ResetSimulation");

            blackboard.RegisterClient(ref bbClient);
            bbClient.Subscribe("BaseObject", "ID", true, false);
            bbClient.Subscribe("DecisionMaker", "RoleName", true, true);
            bbClient.Subscribe("DecisionMaker", "TeamMember", true, true);
            bbClient.Subscribe("PhysicalObject", "ObjectName", true, true);
            bbClient.Subscribe("PhysicalObject", "OwnerID", true, true);
            bbClient.Subscribe("PhysicalObject", "ClassName", true, true);
            bbClient.Subscribe("PhysicalObject", "Size", true, true);
            bbClient.Subscribe("PhysicalObject", "MaximumSpeed", true, true);
            bbClient.Subscribe("PhysicalObject", "State", true, true);
            bbClient.Subscribe("PhysicalObject", "StateTable", true, true);
            bbClient.Subscribe("PhysicalObject", "Sensors", true, true);
            bbClient.Subscribe("PhysicalObject", "Emitters", true, true);
            bbClient.Subscribe("PhysicalObject", "LaunchDuration", true, true);
            bbClient.Subscribe("PhysicalObject", "AttackDuration", true, true);
            bbClient.Subscribe("PhysicalObject", "EngagementDuration", true, true);
            bbClient.Subscribe("PhysicalObject", "DockingDuration", true, true);
            bbClient.Subscribe("PhysicalObject", "IsWeapon", true, true);
            bbClient.Subscribe("PhysicalObject", "IconName", true, true);
            bbClient.Subscribe("PhysicalObject", "RemoveOnDestruction", true, true);
            bbClient.Subscribe("PhysicalObject", "CustomAttributes", true, true);
            bbClient.Subscribe("PhysicalObject", "CanOwn", true, true);
            bbClient.Subscribe("PhysicalObject", "SubplatformLimit", true, true);
            bbClient.Subscribe("PhysicalObject", "DefaultClassification", true, true);
            bbClient.Subscribe("PhysicalObject", "ClassificationDisplayRules", true, true);
            bbClient.Subscribe("PhysicalObject", "CurrentClassification", true, true);
            objectProxies = new Dictionary <string, SimulationObjectProxy>();
        }
Example #20
0
        public void Initialize(ref SimulationModelInfo simModel, ref Blackboard blackboard, ref SimulationEventDistributor distributor)
        {
            this.blackboard  = blackboard;
            this.bbClient    = new BlackboardClient();
            this.distributor = distributor;
            this.distClient  = new SimulationEventDistributorClient();
            this.simModel    = simModel;

            distributor.RegisterClient(ref distClient);
            //distClient.Subscribe("RevealObject");
            //distClient.Subscribe("SubplatformLaunch");
            //distClient.Subscribe("WeaponLaunch");
            //distClient.Subscribe("SubplatformDock");
            //distClient.Subscribe("TimeTick");
            //distClient.Subscribe("ResetSimulation");
            //distClient.Subscribe("StateChange");

            blackboard.RegisterClient(ref bbClient);
            bbClient.Subscribe("PhysicalObject", "ID", true, false);
            bbClient.Subscribe("PhysicalObject", "ParentObjectID", true, true);
            bbClient.Subscribe("PhysicalObject", "OwnerID", true, false);
            bbClient.Subscribe("PhysicalObject", "DockedToParent", true, true);
            bbClient.Subscribe("PhysicalObject", "ChildObjects", true, true);
            bbClient.Subscribe("PhysicalObject", "DockedObjects", true, true);
            bbClient.Subscribe("PhysicalObject", "DockedWeapons", true, true);
            bbClient.Subscribe("PhysicalObject", "LaunchStarted", true, true);
            bbClient.Subscribe("PhysicalObject", "LaunchEndTime", true, true);
            bbClient.Subscribe("PhysicalObject", "LaunchDestinationLocation", true, true);
            bbClient.Subscribe("PhysicalObject", "LaunchDone", true, false);
            bbClient.Subscribe("PhysicalObject", "LaunchDuration", true, false);
            bbClient.Subscribe("PhysicalObject", "DockingStarted", true, true);
            bbClient.Subscribe("PhysicalObject", "DockingEndTime", true, true);
            bbClient.Subscribe("PhysicalObject", "LaunchIsWeapon", true, true);
            bbClient.Subscribe("PhysicalObject", "LaunchWeaponTargetID", true, true);
            bbClient.Subscribe("PhysicalObject", "DockingDuration", true, false);
            bbClient.Subscribe("PhysicalObject", "IsWeapon", true, false);
            bbClient.Subscribe("PhysicalObject", "ClassName", true, false);

            objectProxies = new Dictionary <string, SimulationObjectProxy>();
        }
Example #21
0
        public void Initialize(ref SimulationModelInfo simModel, ref Blackboard blackboard, ref SimulationEventDistributor distributor)
        {
            this.blackboard  = blackboard;
            this.bbClient    = new BlackboardClient();
            this.distributor = distributor;
            this.distClient  = new SimulationEventDistributorClient();
            this.simModel    = simModel;

            distributor.RegisterClient(ref distClient);
            //distClient.Subscribe("NewObject");
            //distClient.Subscribe("RevealObject");
            //distClient.Subscribe("AttackObject");
            //distClient.Subscribe("RandomSeed");
            //distClient.Subscribe("TimeTick");
            //distClient.Subscribe("StateChange");
            //distClient.Subscribe("ResetSimulation");

            blackboard.RegisterClient(ref bbClient);
            bbClient.Subscribe("PhysicalObject", "ID", true, false);
            bbClient.Subscribe("PhysicalObject", "Location", true, false);
            bbClient.Subscribe("PhysicalObject", "OwnerID", true, false);
            bbClient.Subscribe("PhysicalObject", "State", true, false);
            bbClient.Subscribe("PhysicalObject", "StateTable", true, false);
            bbClient.Subscribe("PhysicalObject", "Capability", true, true);
            bbClient.Subscribe("PhysicalObject", "Vulnerability", true, true);
            bbClient.Subscribe("PhysicalObject", "AttackState", true, true);

            bbClient.Subscribe("PhysicalObject", "CurrentAttacks", true, true);
            bbClient.Subscribe("PhysicalObject", "AttackerList", true, true);
            bbClient.Subscribe("PhysicalObject", "SelfDefenseStartAttack", true, false);
            bbClient.Subscribe("PhysicalObject", "SelfDefenseCapability", true, false);
            bbClient.Subscribe("PhysicalObject", "SelfDefenseTargetID", true, false);
            bbClient.Subscribe("PhysicalObject", "IsWeapon", true, false);
            bbClient.Subscribe("PhysicalObject", "AttackDuration", true, false); //set in static att sim, true for all attacks per state per species
            bbClient.Subscribe("PhysicalObject", "EngagementDuration", true, false);
            objectProxies = new Dictionary <string, SimulationObjectProxy>();
        }
Example #22
0
        public void Initialize(ref CommonComponents.SimulationModelTools.SimulationModelInfo simModel, ref CommonComponents.SimulationObjectTools.Blackboard blackboard, ref CommonComponents.SimulationEventTools.SimulationEventDistributor distributor)
        {
            IndividualDMIsLoggedIn = false;
            this.blackboard        = blackboard;
            this.bbClient          = new BlackboardClient();
            this.distributor       = distributor;
            this.distClient        = new SimulationEventDistributorClient();
            this.simModel          = simModel;
            scoreRulesExist        = new Dictionary <string, bool>();
            handledAttacks         = new List <string>();
            classifications        = new Dictionary <string, string>();
            _terminalToDMMap       = new Dictionary <string, string>();
            dms = new List <string>();
            objectAssignmentList          = new Dictionary <string, string>();
            mostRecentItemsForStimulators = new Dictionary <string, ItemInfo>();
            _attackTargetHashes           = new List <string>();
            dms.Add("BAMS DM");
            dms.Add("Firescout DM");
            dms.Add("Individual DM");
            distributor.RegisterClient(ref distClient);

            blackboard.RegisterClient(ref bbClient);
            //only need to register for attributes we're concerned with: ID, OwnerID, Location, DefaultClassification
            bbClient.Subscribe("PhysicalObject", "ID", true, false);
            bbClient.Subscribe("PhysicalObject", "Location", true, false);
            bbClient.Subscribe("PhysicalObject", "OwnerID", true, false);
            bbClient.Subscribe("PhysicalObject", "State", true, false);
            bbClient.Subscribe("PhysicalObject", "ClassName", true, false);

            bbClient.Subscribe("PhysicalObject", "DefaultClassification", true, false);
            bbClient.Subscribe("PhysicalObject", "CurrentClassification", true, false); //this might not be sent to simulators, only DDD Clients
            bbClient.Subscribe("PhysicalObject", "InActiveRegions", true, false);
            bbClient.Subscribe("PhysicalObject", "DestinationLocation", true, false);
            bbClient.Subscribe("PhysicalObject", "Intent", true, true);


            #region Attributes Specifically For SEAMATE
            bbClient.Subscribe("PhysicalObject", "RevealTime", true, true);    //int
            bbClient.Subscribe("PhysicalObject", "DetectTime", true, true);    //int
            bbClient.Subscribe("PhysicalObject", "IdentifyTime", true, true);  //int
            bbClient.Subscribe("PhysicalObject", "TrackingTime", true, true);  //int, not sure how this will be changed yet.
            bbClient.Subscribe("PhysicalObject", "DestroyedTime", true, true); //int
            bbClient.Subscribe("PhysicalObject", "TrackedBy", true, true);
            bbClient.Subscribe("PhysicalObject", "DestroyedBy", true, true);
            bbClient.Subscribe("PhysicalObject", "IdentifiedBy", true, true);
            bbClient.Subscribe("PhysicalObject", "ClassifiedBy", true, true);
            bbClient.Subscribe("PhysicalObject", "DetectedBy", true, true);

            /*
             * GroundTruthIFF is either "Hostile", "Unknown", or "Friendly".  On reveal, everything should be set to Unknown.
             * If this object attacks any sea vessel, it should be set to "Hostile".
             * UserClassifiedIFF is either "Hostile", "Unknown", or "Friendly", and is set when a user classifies an object.
             * This is their PERCEIVED friendliness of an object.
             */
            bbClient.Subscribe("PhysicalObject", "GroundTruthIFF", true, true);     //string
            bbClient.Subscribe("PhysicalObject", "UserClassifiedIFF", true, true);  //string
            bbClient.Subscribe("PhysicalObject", "HostileActionTime", true, true);  //int
            bbClient.Subscribe("PhysicalObject", "IsInSeaLane", true, true);        //bool
            bbClient.Subscribe("PhysicalObject", "IsGoingTowardsPort", true, true); //bool

            #endregion

            objectProxies = new Dictionary <string, SimulationObjectProxy>();
        }
Example #23
0
        public void Initialize(ref SimulationModelInfo simModel, ref Blackboard blackboard, ref SimulationEventDistributor distributor)
        {
            this.blackboard  = blackboard;
            this.bbClient    = new BlackboardClient();
            this.distributor = distributor;
            this.distClient  = new SimulationEventDistributorClient();
            this.simModel    = simModel;

            //distributor.RegisterClient(ref distClient);
            //distClient.Subscribe("NewObject");
            //distClient.Subscribe("RevealObject");
            //distClient.Subscribe("AttackSucceeded");
            //distClient.Subscribe("AttackObject");
            //distClient.Subscribe("WeaponLaunch");
            //distClient.Subscribe("ExternalApp_SimStop");

            blackboard.RegisterClient(ref bbClient);
            bbClient.Subscribe("PhysicalObject", "ID", true, false);
            bbClient.Subscribe("PhysicalObject", "Location", true, false);
            bbClient.Subscribe("PhysicalObject", "ParentObjectID", true, false);
            //bbClient.Subscribe("PhysicalObject", "ClassName", true, true);
            //bbClient.Subscribe("PhysicalObject", "Size", true, true);
            //bbClient.Subscribe("PhysicalObject", "MaximumSpeed", true, true);
            //bbClient.Subscribe("PhysicalObject", "State", true, true);
            //bbClient.Subscribe("PhysicalObject", "StateTable", true, true);
            //bbClient.Subscribe("PhysicalObject", "Sensors", true, true);
            //bbClient.Subscribe("PhysicalObject", "Emitters", true, true);
            //bbClient.Subscribe("PhysicalObject", "LaunchDuration", true, true);
            //bbClient.Subscribe("PhysicalObject", "AttackDuration", true, true);
            //bbClient.Subscribe("PhysicalObject", "DockingDuration", true, true);
            bbClient.Subscribe("PhysicalObject", "IsWeapon", true, false);
            //bbClient.Subscribe("PhysicalObject", "IconName", true, true);
            //bbClient.Subscribe("PhysicalObject", "RemoveOnDestruction", true, true);
            //bbClient.Subscribe("PhysicalObject", "CustomAttributes", true, true);
            objectProxies = new Dictionary <string, SimulationObjectProxy>();


            v3 = new V3DVTE_Publisher();
            string errMsg = string.Empty;

            //v3.Initialize("Aptima_DDD_Test",
            //              @"C:\svnroot\phoenix\DataFiles\v3_dvte.fed",
            //              @"C:\svnroot\phoenix\DataFiles\v3_dvte.xml",
            //              out errMsg);
            bool v3Result = v3.Initialize(ServerOptions.HLAFederationExecutionName,
                                          ServerOptions.HLAFederationFilePath,
                                          ServerOptions.HLAXMLFilePath,
                                          out errMsg);

            if (!v3Result)
            {
                ServerOptions.HLAExport = false;
                throw new Exception("Error initializing V3DVTE Publisher. " + errMsg);
            }
            List <string> interactions = new List <string>();

            interactions.Add("DamageAssessment");
            interactions.Add("DVTEVehicleEmbark.DVTEDisembarkResponse");
            interactions.Add("WeaponFire");
            interactions.Add("MunitionDetonation");

            List <string> attributes = new List <string>();

            attributes.Add("comment");
            attributes.Add("WorldLocation");
            bool bInteractions = v3.PublishInteractions(interactions);
            bool bObjects      = v3.PublishObjectClass(_physicalEntity, attributes);

            bObjects = v3.PublishObjectClass(_aircraft, attributes);
            bObjects = v3.PublishObjectClass(_seaSurface, attributes);
            bObjects = v3.PublishObjectClass(_landUnit, attributes);
            bObjects = v3.PublishObjectClass(_munition, attributes);
        }
Example #24
0
        public void Initialize(ref SimulationModelInfo simModel, ref Blackboard blackboard, ref SimulationEventDistributor distributor)
        {
            this.blackboard  = blackboard;
            this.bbClient    = new BlackboardClient();
            this.distributor = distributor;
            this.distClient  = new SimulationEventDistributorClient();
            this.simModel    = simModel;

            distributor.RegisterClient(ref distClient);

            blackboard.RegisterClient(ref bbClient);
            bbClient.Subscribe("PhysicalObject", "ID", true, false);
            bbClient.Subscribe("PhysicalObject", "State", true, false);
            bbClient.Subscribe("PhysicalObject", "OwnerID", true, false);
            bbClient.Subscribe("PhysicalObject", "Location", true, false);
            bbClient.Subscribe("PhysicalObject", "DockedToParent", true, false);

            ScoringDB.Score s = new ScoringDB.Score("DEFENSE", null, null, 1000);
            s.calculateDMs = new List <string>();
            s.calculateDMs.Add("BluePlayer01");
            s.calculateDMs.Add("BluePlayer02");
            s.displayDMs = s.calculateDMs;


            s.rules.Add(new ScoringDB.ScoringRule(new ScoringDB.ActorInfo(new ScoringDB.ActorInfo.OwnerInfo(ScoringDB.ActorInfo.OwnerInfo.OwnerType.HostileDM),
                                                                          new ScoringDB.ActorInfo.IdentifierInfo(ScoringDB.ActorInfo.IdentifierInfo.IdentifierType.Any, ""),
                                                                          new ScoringDB.ActorInfo.LocationInfo(ScoringDB.ActorInfo.LocationInfo.LocationType.Anywhere, "")),
                                                  new ScoringDB.ConditionInfo(ScoringDB.ConditionInfo.ConditionType.ObjectExists, "", ""),
                                                  null,
                                                  -1));

            /*
             * s.rules.Add(new ScoringDB.ScoringRule(new ScoringDB.ActorInfo(new ScoringDB.ActorInfo.OwnerInfo(ScoringDB.ActorInfo.OwnerInfo.OwnerType.Myself),
             *                                                            new ScoringDB.ActorInfo.IdentifierInfo(ScoringDB.ActorInfo.IdentifierInfo.IdentifierType.Any, ""),
             *                                                            new ScoringDB.ActorInfo.LocationInfo(ScoringDB.ActorInfo.LocationInfo.LocationType.Anywhere, "")),
             *                                    new ScoringDB.ConditionInfo(ScoringDB.ConditionInfo.ConditionType.StateChange, "Dead"),
             *                                    new ScoringDB.ActorInfo(new ScoringDB.ActorInfo.OwnerInfo(ScoringDB.ActorInfo.OwnerInfo.OwnerType.HostileDM),
             *                                                            new ScoringDB.ActorInfo.IdentifierInfo(ScoringDB.ActorInfo.IdentifierInfo.IdentifierType.Any, ""),
             *                                                            new ScoringDB.ActorInfo.LocationInfo(ScoringDB.ActorInfo.LocationInfo.LocationType.Anywhere, "")),
             *                                    200));
             * s.rules.Add(new ScoringDB.ScoringRule(new ScoringDB.ActorInfo(new ScoringDB.ActorInfo.OwnerInfo(ScoringDB.ActorInfo.OwnerInfo.OwnerType.Myself),
             *                                                            new ScoringDB.ActorInfo.IdentifierInfo(ScoringDB.ActorInfo.IdentifierInfo.IdentifierType.Any, ""),
             *                                                            new ScoringDB.ActorInfo.LocationInfo(ScoringDB.ActorInfo.LocationInfo.LocationType.Anywhere, "")),
             *                                    new ScoringDB.ConditionInfo(ScoringDB.ConditionInfo.ConditionType.StateChange, "PartlyFunctional"),
             *                                    new ScoringDB.ActorInfo(new ScoringDB.ActorInfo.OwnerInfo(ScoringDB.ActorInfo.OwnerInfo.OwnerType.FriendlyDM),
             *                                                            new ScoringDB.ActorInfo.IdentifierInfo(ScoringDB.ActorInfo.IdentifierInfo.IdentifierType.Any, ""),
             *                                                            new ScoringDB.ActorInfo.LocationInfo(ScoringDB.ActorInfo.LocationInfo.LocationType.Anywhere, "")),
             *                                    -300));
             * s.rules.Add(new ScoringDB.ScoringRule(new ScoringDB.ActorInfo(new ScoringDB.ActorInfo.OwnerInfo(ScoringDB.ActorInfo.OwnerInfo.OwnerType.HostileDM),
             *                                                            new ScoringDB.ActorInfo.IdentifierInfo(ScoringDB.ActorInfo.IdentifierInfo.IdentifierType.Any, ""),
             *                                                            new ScoringDB.ActorInfo.LocationInfo(ScoringDB.ActorInfo.LocationInfo.LocationType.Anywhere, "")),
             *                                    new ScoringDB.ConditionInfo(ScoringDB.ConditionInfo.ConditionType.StateChange, "Dead"),
             *                                    new ScoringDB.ActorInfo(new ScoringDB.ActorInfo.OwnerInfo(ScoringDB.ActorInfo.OwnerInfo.OwnerType.Myself),
             *                                                            new ScoringDB.ActorInfo.IdentifierInfo(ScoringDB.ActorInfo.IdentifierInfo.IdentifierType.Any, ""),
             *                                                            new ScoringDB.ActorInfo.LocationInfo(ScoringDB.ActorInfo.LocationInfo.LocationType.Anywhere, "")),
             *                                    -1000));
             */

            //ScoringDB.scores["DEFENSE"] = s;

            objectProxies = new Dictionary <string, SimulationObjectProxy>();
        }