Updated xPLlib, with support for large fragmented messages

After some discussion a proposal was made on the xPL forums to add fragmentation so the message size limit could be bypassed. The schema for this is ‘fragment.basic’ and support for it has been added to the xPL library for .NET in version 5.4.

There are some other minor updates too, check the changelog for those.

xPLLib for .NET is available for download on the xPLLib page


Some updates; xPLLib and WireShark xPL dissector

Today I posted some long overdue updates. Quite some time ago it was agreed to loosen up the xPL protocol with regard to the values in the xPL message body.

From pure ASCII it now allows UTF8 encoding for the values (keys remain ASCII only). At the same time the length restriction of 128 characters was lifted, which basically means that the value can be as long as the overall message size supports (which is set at 1500 bytes).

So todays updates are the xPLLib for .NET, version 5.3, updated to allow these changes and the WireShark dissector, version 1.1, which will now show a warning (for backward compatibility) in cases of UTF8 and long values.

There are some other minor updates too, check the changelog for those.

Continue reading

UPnP example in Visual Basic, an improved Network Light sample

In my attempt to further automate my home, I’m trying to create UPnP devices for my appliances. The simplest examples are power switches and lights that can be controlled using the UPnP protocol. Obviously that’s not very user friendly, so I decided to experiment with a webinterface for the interaction, while keeping the UPnP functionality. The UPnP part can then be connected to the RFXcom devices for actually controlling my X10 and HomeEasy equipment (still working on my DevCom project for the hardware connection part) Continue reading

Utility to add shortcuts to a network

What is it?

A shortcut/link to a URL visible on the network, by (ab)using UPnP technology. 

What does it do?

When Windows users on a network (local subnet) browse their network, they will see icons, with a description. When they double click them, a webpage pops up. Example: On my homeserver eMule runs as a peer-2-peer file sharing application. It features a webinterface and before I had a shortcut installed on each computer/laptop in the house. Now, I have installed the app on my homeserver and they simply double click the device “eMule downloader” from the network. Continue reading

UPnP device development with the Intel UPnP stack

When starting with UPnP development, some test projects, I initially started of with the Microsoft stack, as its already included in most Windows versions. But the documentation on the microsoft UPnP stack is so sparse, all examples I could find, were in C and then still only controlpoints, no devices. Hence I started using the Developer tools for UPnP (formerly by Intel). They contain a fully functional C# UPnP stack, and a code generator that generates a C stack. Just compile the C# stack and the resulting dll can be used from any (including VB) .NET language. Besides that the toolset contains a number of very usefull UPnP utilities.

The tools where initially available as the Intel UPnP tools, and after having disappeared from the Intel website for some time they have been relaunched as open source. Currently the stack is being maintained by Ylian Saint-Hilaire (Intel), and he does a good job at it (several bugfixes and improvements I submitted landed in the code quickly). Its a pitty that there isn’t a public forum for the UPnP tools.

This post is mostly about my experiences getting things up-and-running using the C# stack, which has its peculiarities, so here is what I learned; Continue reading