Echelon LNS Plug-in User Manual

Page 26

Advertising
background image

Field Description

Scope A

ComponentAppScope value identifying the scope of the

plug-in’s command. This is known as the command scope,
which should not to be confused with the registration scope or
plug-in scope (see the Glossary in Appenidx E for details).

Note: The LNS Plug-in Framework currently only
automatically supports the registration of commands at the
ObjectServer and System command scopes; however, you will
typically want to use the DeviceTemplate and/or
LonMarkObject
scopes for device plug-ins.

See Registering DeviceTemplate and LonMarkObject Scoped
Plug-in Commands
later in this chapter for a description of the
code your plug-in must implement to support plug-in
commands at these scopes.

7. If your plug-in will include a user interface (typical), create a hidden instance of your PluginForm

class in the PluginObject constructor, and assign it to the PluginObjectBase.PluginForm base
class property.

The following code demonstrates how your plug-in object class should appear (note that MyPlugin
represents the name of your plug-in):

using

System;

using

System.Runtime.InteropServices;

using

Echelon.LNS.Interop;

using

Echelon.LNS.Plugin;

namespace

YourCompany.DevicePlugin

{
[

ComVisible

(

true

),

Guid

(

"3CCF87F7-AEFD-4c8e-9936-FEEAB3BBA5A9"

),

ProgId

(

"YourCompany.DevicePlugin.MyPlugin"

),

ClassInterface

(

ClassInterfaceType

.None)

]

public

class

MyPluginObject

:

PluginObjectBase

{

// describe the plug-in

private

static

readonly

PluginInfo

_PluginInfo =

new

PluginInfo

(

// standard LNS Plug-in properties

"YourCompanyMyPlugin"

,

// PluginName

"Description of YourCompany’s MyPlugin"

,

// Description

"3.22"

,

// LcaVersion

"YourCompany Corporation"

,

// ManufacturerName

"YourCompany C# Device Plug-in"

,

// Name

ComponentAppScope

.System,

// Scope

"1.0"

,

// Version


// advanced LNS Plug-in properties (optional)

Feature

.Supported,

// MultiObject (default: Unsupported)

Feature

.Supported,

// SingleInstance (default: Unsupported)

Feature

.Unsupported

// Prelaunch (default: Unsupported)

);

public

static

PluginInfo

PluginInfo

{

get

{

return

_PluginInfo; }

}

// describe the plug-in commands

private

static

readonly

PluginCommand

[] _PluginCommands =

new

PluginCommand

[]

{

new

PluginCommand

(

"YourCompany Test Device"

,

// Name

Advertising