I had school vacation last week, so I've been getting a lot done on the car.
I'm now using centrafuse 3. I've made my own plugin for it which controls all my electronics in the car through an interface with the fusion brain. This plugin also has my own HTTP server built into it which allows you to control centrafuse through GET requests.
That will set the volume to 50. Now what's cool is that I already had a python web server running on my sheeva plug, so that recognizes requests that need to go to the real computer and then passes them on. This continues to work up the chain to my AIM bot and therefore to text messaging.
Sending the text message: vs:75 to my AIM bot will set the volume to 75 in under 2 seconds. Nice.
I then needed to get more performance out of my setup because in the car, I programmed the centrafuse plugin single threaded so the requests would block the GUI thread. Real annoying. So what I did was made the web server on the sheeva plug run in 2 threads on 2 different ports. So the car computer accesses it on port 81 and the web accesses it on port 80. I then went a step further and made every command you send execute in its own thread so that web server can respond instantly to requests. Massive performance increase.
This performance increase has allowed me to expand some more... I now made an AJAX web page for controlling the car. Works great delay is less than half a second with good service.
I'm working on an IPOD touch app too so that when I have my IPod touch in range of my car's wifi network, I can control everything.
I finally put in underglow and door handle lights. All LEDs.
I installed a light senor on the fusion brain which determines when it's dark out and then turns on the underglow, door handle LEDs, and the interior blue lights. To prevent it from flicking on/off with street lights it takes samples of the light over the course of 30 seconds before doing anything. Flawless.
I finally ran a power/ground wire from the computer PSU to the touch screen and I now got rid of the ground loop there and also the interference lines in the screen.
Tonight I've been working on building a gas price plugin for centrafuse 3. I'm opening it up a little bit more though and I'm providing a DLL for gas information. This way, my DLL does the heavy lifting and anyone can interface with it to make an interface for it however they like.
So far, it successfully downloads and interprets the gas prices, gas station name, and the address of the gas station. Now I need to make the information sortable and interface with google maps to get the gps coordinates of each gas station. From there I'll be able to get accurate distance measurement from GPS. Maybe I'll even take it a step further and make it interface with iGuidance or garmin.