Understanding xAP with .Net

May 24, 2009 at 3:42 AMJoshua Harley

I am currently writing a .Net application to listen, log and graph the temperatures and fan speeds of my servers using the xAP protocol. I’ll be using SpeedFan to monitor the temperatures and fan speeds of the servers because SpeedFan includes the ability to broadcast the current sensors using xAP. Sounds complicated right? We’ll lets look at the xAP protocol first.

The xAP Home Automation Protocol is a lightweight, ASCII based communication protocol. It’s a simple protocol that takes very little processing power to use and is actually easy to work with. It seems their goal is to work across multiple mediums (ethernet, serial, parallel) and multiple systems (full machine, light embedded systems, and even audrino boards!) while remaining simple and human readable.

xAP protocol message from SpeedFan
xAP-header
{
v=12
hop=1
uid=FF671100
class=PC.status
source=Almico.SpeedFan.NARU
}
temp.1
{
id=Core
curr=48.0
want=40
warn=50
}
temp.2
{
id=CPU Off Die
curr=40.0
want=40
warn=50
}
temp.3
{
id=Motherboard
curr=40.0
want=40
warn=50
}
temp.4
{
id=HD0
curr=48.0
want=40
warn=50
}
fan.1
{
id=Fan1
curr=3342
}

As you can see in the message above you can easily read the following information:

  • The class of the message is the type of PC.Status.
  • The source is from SpeedFan by Almico on the computer Naru.
  • There are 4 temperature sensors and 1 fan sensor on the server as reported by SpeedFan.

xAP over Ethernet uses a UDP broadcast on port 3639. Now, armed with this information, writing a simple .Net console application doesn’t seem too hard does it?

Hopefully by now you can already see a way or two in processing this text-based message. Believe me, it isn’t as hard as it seems! Over the next couple posts we’ll see a method for parsing the message and the incorporation of a few of the newer .Net technologies (some extension methods and lambda expressions)! Stay tuned!

TFS 2008, Server 2008, SQL 2008

January 19, 2009 at 10:56 PMJoshua Harley

Oye, so apparently I like pain. I keep doing it to myself too. I decided to set up a virtual machine (through Hyper-V) running Windows Server 2008 that would host a new instance of Team Foundation Server 2008. If any of you have heard of TFS before you may know that it is a pain in the ass to install. Out of the three installs I have completed I have never had one work the first time. So while following every step of the instructions to the letter, I still ended up with a failed install. As much as I would love to contribute to helping people, I have lost any idea of what I was doing  so there's no way a decent write up is happening. So here I am, wrestling with TFS yet again... so that's why I figure I like pain... I keep doing this to myself.

I changed it again!

January 18, 2009 at 12:30 AMJoshua Harley

Well, in less than one week of using dasBlog I went ahead and switched blogging systems again. Surprise, surprise. I guess it was coming. Anyway the major reasons I switched is I liked their theme engine better, they allow the ability to have pages not part of the blog timeline, they can use a database if needed, and seems to be a bit more active.

As you can see I am already importing my theme that Jared designed for me for my old blog. While it isn't completed yet it should be in the next day or so (I hope).

Naturally with this engine change the syndication feed changed so make sure you update your feed readers!

Now, after many infomercials about Obama coins and listening to Chuck Norris talk about how great the Total Gym is I am headed to bed at 5:30am.

Posted in: General

Tags: , ,

Playing with Dictation

January 15, 2009 at 7:56 AMJoshua Harley

So there I was showing David the new Windows 7 beta when we decided to play with the dictation features of Windows (speech-to-text). Naturally during the tutorial we wouldn't say exactly what was requested we would either leave out syllables or leave out whole words directly. We noticed that the tutorial would actually continue as long as you said about 50% of the words but what we didn't know until the end when it told us was it was using that initial tutorial to start training itself. Even more entertaining was their disclaimer and opt-in feature to scan my documents and emails to pick up on words and phrases that were commonly used on my computer. While it seemed like a good idea at the time, we soon found out it was a very bad idea to let it read all of that.

Here are a few sentences produced by speaking (we don't remember what we originally said unfortunately):

None of the league agreed on a dynamic built-in David built-in booya and financing built-in the event is that you cross the border town of Larry G5 to one Friday in your beta kit that the Olympic club at the very thing the government meddling in the economy that reenactment of the right file a will he do for a reenactment Cameron raveling and the only and I you are still in the lending law violate the no while they by know about one.

And here is a slightly later one:

I think the people will be downloaded it will really actually help them.

And one more:

Dictating is a bathtub edition and that the man down at the event that palin group that led by David name the other man on the red onion home directory and the drug and weapon that the file recently moved and the government the real leaders believe you're a aggressive e-mail at it but dictating is a pain the ass.

You can tell that the dictating engine had scanned my emails and documents by noticing the references to the government, the economy and Sarah Palin (don't worry, it's her Wikipedia article). I must say, it was quite an entertaining experience and I will definitely need to reset and retrain the engine if I'm ever going to use it properly.

Inspired by the YouTube video Microsoft Vista Speech Recognition Tested - Perl Scripting.

Bonus YouTube video: An Engineer's Guide to Cats.