xPLLib for .Net

The xPLLib for .NET is a .NET library supporting xPL. It provides an object model that represent all major items in xPL; devices, messages, xPL network, etc.

The original versions were created by John Bent and Tom Van Den Panhuyzen. Late 2009 I started of with version 4.4 by Tom.

Object model description

The xPLLib contains the base library for creating applications that support xPL. The object model has 4 main objects, and a number of supporting objects. In visual studio use the Object Browser to examine the different objects and their properties, most have fairly detailed descriptions.

Main objects

xPLDevice: This object represents the core of a device. Basically create a device and set its property Enabled to True and you have created a new working xPL device on your xPL network. The object provides numerous properties, methods and events to manage device behaviour. You can create as many devices as you need.

xPLMessage: Communicating on the xPL network happens through xPL messages. This object provides all properties and methods to work with messages. Sending and receiving of messages is done through the xPLDevice object.

xPLNetwork: This is an all shared object (no instances can be created) and it collects information regarding the xPL network and the devices seen on that network. Status of other devices can be followed and methods for discovery of the entire network are provided.

xPLListener: This object contains the core network functionality of sending and receiving messages, most of it is behind the scenes within the xPLLib. The listener is (like the xPLNetwork object) an all shared object and hence no instances can be created. Every xPLDevice registers itself upon creation with the listener, so the listener can maintain a list of devices. Messages received from the network are passed on to the created xPLDevice objects and to the xPLNetwork object.

xPLPluginStore (new in 5.1): Downloading and parsing vendor xml plugin files is supported through this object. A local shared store can be used to store the information updated locally. 2 collections (vendors and devices) are available after loading/updating the PluginStore. Two dialogs are included to show update progress to the enduser.

Supporting objects

xPL_Base: Provides a number of supporting functions and contains all xPL related constants

xPLAddress: Represents a single xPL device address

xPLConfigItem: Represents a single configurable item of an xPL device

xPLConfigItems: Maintains a list of xPLConfigItem objects for a device. Also includes the 4 generic configurable items; newconf, interval, group and filter

xPLExtConfigItem: Represents a single configuration item, as it applies to a remote device on the xPL network (external device, xPLExtDevice object)

xPLExtDevice: Represents a single device on the xPL network (external device) and all that is known of this device based upon messages seen on the network.

xPLFilter: Represents a single xPL message filter

xPLFilters: Maintains a list of message filters for a device

xPLFragmentedMsg (new in 5.4): Represents a fragmented message in case message size is larger than the xPL supported maximum.

xPLGroup: Represents a single xPL group a device belongs to

xPLGroups: Maintains a list of groups for a device

xPLKeyValuePair: Represents a single key-valuepair as used in the xPL message body

xPLKeyValuePairs: Maintains a list of key-valuepairs for an xPL message

xPLPluginVendor (new in 5.1): Represents the vendor information downloaded from the vendor plugin and vendor related information from the central list maintained by the xpl-project.

xPLPluginDevice (new in 5.1): Represents the device information downloaded from the vendor plugin.

xPLPluginUpdateDlgLog (form) (new in 5.1): Progress form that displays status, % complete and a complete message log of the process.

xPLPluginUpdateDlgSmall (form) (new in 5.1): Progress form that displays status and % complete of  the update process. No log is shown and it is automatically dismissed when the update completes

xPLSchema: Represents a single schema name


For a detailed change log, please see the readme.txt file in the download.

02-Nov-2011, version 5.5: Number of bugfixes (important one, related to restoring devices from a state-string, thx to Tony Tofts)

19-Aug-2011, version 5.4: Updated for message fragmentation support

05-Aug-2011, version 5.3: Updated for protocol changes and some bugfixes

18-Aug-2010, version 5.2: A few additions and some bugfixes

26-May-2010, version 5.1: Support for downloading plugin information has been added (see ‘object model description’ above).

Downloads and support


Support: xPL project forums and if it can’t be resolved there; the bugtracker
Source code: xPL project SVN

Leave a Reply

Your email address will not be published. Required fields are marked *


This site uses Akismet to reduce spam. Learn how your comment data is processed.

Subscribe without commenting