I have an untested dashboard application that allows you to create your own views of the dashboard data and dynamically load them into a GUI. The application loads a set of controls that inherit from a shared base class into tabs on a form. The host application does all of the serial IO and packet decoding so you only need to worry about processing the packets as they come it.
The current version has five sample views, including one that displays the information from the CMUCam data struct. Currently it shows the centroid and the bounding box only. In order to view the data within the dashboard application you will need to use the user_bytes to pass back the information as follows:
Code:
User_Byte1 = cam.x;
User_Byte2 = cam.y;
User_Byte3 = cam.x1;
User_Byte4 = cam.y1;
User_Byte5 = cam.x2;
User_Byte6 = cam.y2;
If you would like to give it a shot you can download the program
HERE. Once I know its all working correctly I'll post instructions for creating your own views.
If you really want to hack at it, all you do is create a new user control that inherits from Team116.Dashboard.UI.DashboardView found in DashboardTypeLib.dll. There are four virtual methods defined in that class that you can override, one to process each of the four data packet types. Your new control is then compiled into an assembly and copied to the folder with dashboard.exe. Edit DashboardTabs.xml to add a reference to your new control and you're all set.
The CommBase.dll assembly is from a sample in MSDN Magazine, Ref: "Serial Comm: Use P/Invoke to Develop a .NET Base Class Library for Serial Device Communications" John Hind, MSDN Magazine, Oct 2002. V1.3 February 2004.