Graph Widget

A project log for USB Multimeter

All in one open source device to monitor and data log power usage of USB devices and other connection types.

MobileWillMobileWill 05/29/2016 at 18:430 Comments

Currently the graph is made up of an bitmap (converted into an array) that contains the axis and tick marks to divide up the axis. To speed up graph redraw performance, I had used a bitmap converted to an array and then take the previous value and reset that pixel from the bitmap array and then draw the new point. This worked very well over redrawing the entire graph.

I wanted to make the graph data that is displayed configurable by the user. Originally (as seen in the pictures), the graph has four radials on the right side. The fourth being a split screen graph. The problem lays in where to put the data for the second graph? I could overlay it. but that takes away from the graph data. So I think the way to go is to remove the low info bar and then each graph (top and bottom) will have its own info bar. It is hard to cram all of the needed info for the user in a small screen and still be easily viewable. I wish I could find cell phone displays readily available. The final version will most likely be a capacitive touch display. Then to configure the graph you would just tap the graph. Here is a mock up of what I was thinking.

It would be a self contained widget with properties you can set, being able to push data to it. They will auto scale on the y-axis and possibly have the option for the user to force the scale if needed. They key is going to optimize for faster refresh rates which is one of my goals. The ability to select which graph is on top and bottom allows you to compare various data points.

Here are the graphs I am thinking of including, at least initially.

Current, Voltage, Wattage, mAh, and mWh.

There still needs to be a place for other data such as peaks, mins and consumption. Once this is complete I can expand upon features such as building out the SD card data logging options and the serial command interface.