However here is what I have implemented:
1. XML based definitions for all items, you can add and remove items at will.
2. Object oriented abstraction of all lower levels functions, protocol structure, etc.
2. Multithreaded model that moves each function into a prioritized thread with queing functionality. The focus is on communicating with the ECU as fast as the serial port will allow (and as accurately timed as possible), and offloading processing to lower priority threads. Data is que-able to the limits of system ram, so in effect all other processing is infinitely deferrable.
3. Virtual register implementation, information such as current gear, acceleration, torque, horsepower, etc are calculated. (This is waaay harder than one might think)
4. Virtual gauge display. I designed a GDI+ gauge control that looks almost indestinguishable from the 05 LGT gauges, full vector graphics, anti-aliased, etc, quite trick.
I still have a few things I want to do like cleaning up some of the classes, some things are kind of hacks since the proper way to do things isn't always clear. Also I need to implement high performance counters, currently it is only really accurate to 1 ms resolution. Ideally new functionality is just lines of code away because of abstraction. i.e. if I ever get my hands on a SSM
I still haven't decided what I want to do with it :/ *shrug*
