Manual

Table Of Contents
Field Description
ObjectName The fully specified name of the LNS object on which to
perform the command, as specified by the director.
LcaObject A reference to the LNS object on which to perform the
command, as decoded by the LNS Plug-in Framework (or null
if unable to decode).
Note: The Actions array will contain only one item unless the plug-in MultiObject feature is
specified as Supported. You can also obtain a reference to the LNS Object Server through the
framework’s LcaClass.Instance method, or to the currently open Network and System objects
through the LcaClass.Network and LcaClass.System properties, respectively.
The following code demonstrates how your plug-in form class should appear (note that MyPlugin
represents the name of your plug-in):
using System;
using System.Windows.Forms;
using System.Runtime.InteropServices;
using Echelon.LNS.Plugin;
using Echelon.LNS.Interop;
namespace YourCompany.DevicePlugin
{
public partial class MyPluginForm : PluginFormBase
{
public MyPluginForm()
{
InitializeComponent();
}
protected override void ActivatePlugin()
{
// carry out each queued command action
foreach (PluginAction action in Plugin.Actions)
{
// extract information from command action
EnumCommandIds commandId = action.CommandId;
EnumClassIds classId = action.ComponentClassId;
string objectName = action.ObjectName;
object lcaObject = action.LcaObject;
// perform the command action
switch (commandId)
{
case EnumCommandIds.Test:
// TODO: add command handler here
break;
// TODO: add other command handlers here
}
}
}
}
}
Note: Typically, a device plug-in is launched from the director, and it then allows the user to select
various device configuration options from a user interface that is customized to the device
functionality. After creating your basic PluginForm class, you can add most of your plug-in
functionality to this user interface class, adding controls using Visual Studio’s Form Designer and
updating your controls from your command handlers.