Class Declarations for Modules in AppRoot

Modules are declared within class groups in AppRoot.SRC. These control how the module will be treated by the application. For example, all pages must be declared within the [ (PAGES) ...] class. All user-defined tag-types are declared in the [ (POINTS)... ] class, where "point" is another term for "tag".

Use the following list to decide where to declare your new modules. In each case, the text in bold should be used as the class designation, according to the following example:

[ (PAGES) 
  Overview Module "\Pages\Overview.SRC";
]

(CONTRIBUTORS)

Modules that plug into this one.

(CONTAINERS)

Modules that this one plugs into.

(PRIORITYSTART)

Items that are pre-started

(FUNCTIONS)

Modules included in the function library

(65282)

User-Defined widgets. VTScada will populate this list automatically with each new widget that you create.

(POINTS)

User-defined tag templates. Similar to user-defined widgets, each time that you run Create New Type on a Context tag, a new module declaration will be added to this class for you.

(GROUPS)

Modules that are collections of tag types such as "Analogs" and "Digitals". It is extremely unusual to declare your own tag groups, but if doing so, the module for that group definition must be declared in this class.

(LIBRARIES)

Modules that contain a listing (library) of widgets. This is a legacy feature. Rather than explore it, you are advised to use custom folders in the Widgets palette.

(GRAPHICS)

Modules that are shared widgets for tag types. Trihedral does not document how to create custom widgets from code. You are advised to create custom widgets using the Idea Studio, then modify the resulting .SRC file if needed.

(PAGES)

Application pages. VTScada will automatically add a module declaration to this class for every new page that developers create in the application.

(SERVICES)

Service modules start when the application starts, and then run continuously. As an example, a custom security service would be declared in this class. See: HideVAM Based on Security Privileges

(PLUGINS)

By far, the most commonly used class for user-defined modules. Examples include custom reports, custom tag configuration panels, modules for use with Script tags, etc.

(PRIORITYSTART)

Modules that are to be started before the application loading process finishes. The VTScada Time Synchronization Service is an example. It is unlikely that you will have a reason to add modules to this class.

(SESSIONSTART)

Each SESSIONSTART module is launched using the user's session object as its parent / caller. That means that any windows created from that SessionStart object will display on the UI where the session is being displayed: on the machine running VTScada, a VIC, or an Anywhere Client. (See also: ActiveWindow)

(SHUTDOWN_HOOK)

Any module in this class will run automatically when during the application shutdown process. These may be used to write extra information to disk, send a notification, or perform any other task before the shutdown process completes.

Note: In the case of a shutdown caused by the time limit of a trial license expiring, the shutdown_hook module can delay shutdown by up to ten minutes, but cannot prevent that shutdown.

(TSERVICES)

Modules that are to be run as threaded services. For use only by advanced VTScada programmers.