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
Changes
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
Downloads:
- xPLLib for .NET (downloaded 1473 times).
- xPL sample/test application (Visual Studio 2008) (downloaded 1387 times). PLEASE NOTE: as of version 5.2 the source code in the SVN contains a more detailed sample application
Support: xPL project forums and if it can’t be resolved there; the bugtracker
Source code: xPL project SVN