Scott Quibell

Welcome to Scott Quibell Sign in | Join | Help
in
Home Blogs Files

Scott Quibell's Blog

Continuous Integration with CC.Net and Dell XPS LED "Ambient" Lights

Automated Continuous Integration and using an Ambient orb for notification was very well described in Mike Swanson's post here

At my current job, we've decided to use the LED Lights on our Dell XPS M170 laptops for notification of the state of our current builds.

 

 

I actually finished this mini-project in my spare time back in June.  However, after much proding from Rob Cecil and Mike Swanson I have finally written this post detailing how this project was accomplished. 

This project requires three items -- A Dell XPS M170 (or M1710 or other device you can control), a modified version of CruiseControl's CCTray and finally a control program to change the light colors.

These Dell XPS laptops are fantasic machines.  In fact one of the best machines I've ever used.  I could get a faster computer, but I couldn't carry it.  They are described as gaming machines.  But truth to the matter, they are great for development because of their fast system components -- disk, memory,etc.

The first challenge was to figure out how Dell controls their lights with their Quickset application that comes with this laptop.  I could have decoded the sequence of events using an application called "APIMONITOR."  However, I found that someone named Johannes Brodwall had already taken his time to figure out what Dell's Quickset was doing and also create a console application to control the Dell XPS LED Lights.  Bingo! We've got our second piece of the puzzle.

I added a -cycle option to the original source code.  The binaries and source code project are located on this site. 

The last part of this equation was to modify the CCTray application we use with our Continuous Integration process.  The projects we work on are pretty complicated and rewarding.  We use CC.Net, mbunit, Visual Studio 2005, CAB, SQL Server 2005, NHibernate, Lucene.net, and Perst.net so we need to have instant notification if any of our pieces and parts stop working with each other.

These are the modifications to CCTray to support executing a specific program whenever the CCTray icon changes state:

 

 

The new commands you see above in CCTray use the xpslc.exe program to change the lights on the laptop.  We use green for good, yellow for building, red for bad build and purple for no connection to the CruiseControl.net build server.

A video of the final product can be seen here -- only 15 seconds so take a look!

Please excuse the quality I used a miniDV video camera and Sony Vegas but the quality/light conditions were a bit challenging for this article to show the colors.

In the video, you'll see two Dell XPS M170's with "Red Lights" signalling a bad build.  The build is actually fixed and checked in.  CCTray changes the lights to "Yellow" while it's building and finally you see the "Green" lights signaling a successful build with successful unit testing.  (We fail our builds if a mbunit test fails...  Hopefully Nitin Gupta will write an entry on getting CC.Net and MBUnit to talk to each other... good fun)

The next step is to figure out who broke the build and then send an electric shock to them.  :)  Happy coding !

 

Other info on these laptops and addins:

CNET video review of the M170 and the M1710.

Anandtech review of new model  M1710

WinAMP XPS Gen2 Plugin

Published Sunday, July 23, 2006 10:10 AM by Scott

Comments

 

Michael Swanson's Blog said:

Nearly two years ago, while I was still working for Microsoft Consulting Services in the field, I posted...
July 23, 2006 11:41 AM
 

Use the Dell XPS LEDs to Monitor Your Build Status » Wagalulu - Microsoft » » Use the Dell XPS LEDs to Monitor Your Build Status said:

July 23, 2006 11:55 AM
 

Brian Keller - Technical Evangelist for Visual Studio Team System said:

Check this out - Scott Quibell and Rob Cecil figured out how to make the LED lights on...
July 23, 2006 8:37 PM
 

I need a new laptop. » Wagalulu - Microsoft » » I need a new laptop. said:

July 23, 2006 8:42 PM
 

Patrick Altman said:

This is too cool. 
July 23, 2006 9:05 PM
 

john said:

Great stuff! Any chance of posting the amended CCTray?
August 6, 2006 2:18 PM
 

Dell said:

This is very neat. Thanks much for this.
June 17, 2007 10:30 AM
 

kris said:

i am new at this and i have no idea what to do, can someone help me
July 16, 2007 1:38 AM
 

Au del?? de l’Int??gration Continue : le Monitoring Continu « Codingly said:

May 23, 2008 5:13 PM
New Comments to this post are disabled

This Blog

Post Calendar

<July 2006>
SuMoTuWeThFrSa
2526272829301
2345678
9101112131415
16171819202122
23242526272829
303112345

Syndication

Powered by Community Server, by Telligent Systems