/BlinkenLights

A .NET library for ThingM's blink(1) multicoloured USB LED.

Primary LanguageF#

BlinkenLights is a set of .NET extensions for ThingM's blink(1) multi-colored LED.

What You Need
=============

To run BlinkenLights, you'll need at least one blink(1) LED, which you can get here: http:/thingm.com.

You'll also need Visual Studio 2012.

Getting Started
===============

Get the source and build.  Plug in your blink(1).  Run the Demo project and watch the console window.

What BlinkenLights Gives You
============================

The basic .NET library for the blink(1) allows you to set blink(1)'s color and to fade between colors.  That's about it.

The BlinkenLights type adds the following features:

- The ability to set the LED colour using the constants in System.Drawing.Color, which supplements the native method of passing R/G/B values.

- The ability to switch on the LED for a specified length of time, without the calling thread blocking.

- The ability to flash the LED repeatedly between two colours, again without the calling thread blocking.  Flashing can continue for a specified number of iterations, or until some specified condition returns 'true'.

- The ability to cycle between an array of colors, without the calling thread blocking.

What's The Point?
=================

See ThingM's web site (http:/thingm.com) for an explanation of the background to blink(1).

The point of BlinkenLights is to:

- extend the very basic software functionality provided by ThingM.

- illustrate how F# and C# can interact to provide interesting features with very concise code.

- illustrate some basic asynchronous processing in F#.

Acknowledgements
================

Backgrounding code is derived from ThrottlingAgent by Tomas Petricek: http://fssnip.net/snippet/5o/1

Blink1Lib - Basic blink(1) Library for .net - ThingM