[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