Collapse All Expand All

C#

Clarion Library 6.1.1
Agent..::..AgentParameters Class
Agent Class Members Example See Also Send Feedback

[This is preliminary documentation and is subject to change.]

This is the parameters class for the Agent class

Namespace: Clarion.Framework
Assembly: ClarionLibrary (in ClarionLibrary.dll) Version: 6.1.1.0 (6.1.1.0)

# Syntax

C#
    public class AgentParameters

# Remarks

This class contains all of the parameters that may be used by the Agent class. All classes that extend Agent should also contain their own parameters class that extends this class and adds any parameters that are used by those classes.

Note
The parameters classes can be found throughout the Clarion Library whenever a class contains parameters that may be set by a user. This concept was implemented to allow for some "special capabilities" and also to clean-up/streamline parameter usage throughout the system. The parameters classes enable parameters to be adjusted both locally and globally. In general, global parameter changes are performed statically through the GlobalParameters property and local parameter changes are performed on single instances through the Parameters property. Examples demonstrating how parameter adjustments may be performed using both methods can be found in the examples section.

Note
Global parameter settings are ONLY applicable prior to the initialization of an instance of an agent. During the initialization process, the global parameter settings are used to set the "default" values of the local parameters for an agent. Once initialized, the agent will only use the local parameters. Therefore, global parameter changes SHOULD ALWAYS be performed BEFORE instances of an agent are initialized. This is the case for both the Agent class itself, as well as ALL of the subsystems (i.e., ActionCenteredSubsystem, NonActionCenteredSubsystem, MotivationalSubsystem). We say this because the subsystems, themselves, are initialized as part of the initialization of an agent. Therefore, any global parameter settings for these subsystems MUST ALSO be performed before any instances of an agent are initialized.

Copyright 2011. Nicholas Wilson

# Examples

Suppose you wanted to turn on the "IN_REAL_TIME" parameter for a single instance of an agent. This constitutes a "local" parameter change and is accomplished as follows:
CopyC#

    Agent someAgent = World.NewAgent();

    // Elided code containing the initialization of the agent using the <see cref="T:Clarion.AgentInitializer" />

    someAgent.Parameters.IN_REAL_TIME = true;

Now, suppose instead that you wanted to change the "IN_REAL_TIME" parameter for all agents. This constitutes a "global" (or static, in programming terms) parameter change and is accomplished as follows:
CopyC#

    Agent.GlobalParameters.IN_REAL_TIME = true;

    // Elided code containing the initialization of particular Agent instances (as was demonstrated above)

# Inheritance Hierarchy

System..::..Object
Clarion.Framework..::..Agent..::..AgentParameters

# See Also

Agent..::..AgentParameters Members
Clarion.Framework Namespace