Cross platform program to record and display data from Graupner Ultramat 16 Charger
Data:
Sample: 82F6D000000000000026800000000000000000000000008FD0
Description: 1122223333444455556666777788889999AAAABBBBCCCCDDDD 1: ?? 2: voltage (mV) (12300) 3: ?? (0100) 4: Voltage (mV) (12600) 5: ?? 0138 (mA?) charge current 6: 023f 7: cell1 mV 8: cell2 mV 9: cell3 mV A: cell4 mV B: cell5 mV C: cell6 mV D: ??
Idea
- Program should detect start and end of charging, and record all "chargeruns" to a database
- Program should be able to display a "dashboard" with current values
- Program should be able to display a live trend of current values
- Program should be able to display trends of historical chargeruns
- Program should be able to calculate certain values, i.e.
- Avg chargerate (amps)
- Chargerate used the most in a run
- Charging vs discharging
- Something about the health of cells
- Cellcount
- Program should be flexible enough so that one can customize it to work with multiple chargers
- Config format: XML
- General Config file
- Charger Config file
- Serial Port
- Serial port speed etc
- Update interval if applicable
- Delimiter if applicable
- Data sectioning if applicable
Scratchboard
Cross platform -> Python Database -> Sqlite, one table for samples, one for "chargerun" Graphical or console? Graphical? -> QT ? Console -> curses (*nix) + Console(win) How to read data? Pipe, does it work on windows? Read serial port directly? -> evaluate pySerial (http://pyserial.wiki.sourceforge.net/pySerial) -> evaluate USPP (http://ibarona.googlepages.com/uspp) Classes needed: Logger: Logs data from serial port, detects starts and ends, writes it to database, exposes current values Dashboard: Displays currentdata gotten from Logger Trender: Trends current and historical data
