$EEHack Changelog

Steal trimalyzer's knock analyzer (which is better in several ways)
Implement variable playback speed multiplier and better limits on display rates
Fix (mostly silent) crash if playback was active when closing the window
Fix some bugs in how speed logging (message 5 with a patch) is handled.
Rewrite log playback routine to use main event loop (it was very old, very poor code)
Allow boolean switches and other message element in the user parameters.
Fix some logic in the update notifier so it might actually work.
Combine the launcher and datalog window as the primary window, I always liked it better that way
Re-enable dashboard field caching to reduce CPU load
Improve the performance and appearance of the debug log.
Major UI overhaul to fix scaling and performance issues with dashboard and other modules
Ensure packet checksums are actually checked everywhere
Allow multiple graphing windows to be opened at once (just click the graph button again)
Add timestamp to moouseover of each knock event in analyzer
Fix a bug that prevented the 'bad checksum' override for bin reading to fail
Fix colored field indicator operation in dashboard for high/low conditions in the definition file
Fix hard crash when selecting custom dashboard parameter with no parameter selected
Code cleanup to fix compliation with newer QT versions
Maybe fix a bug that causes flash write to fail sometimes (initial connect timer)
Allow multiple log selections in the load log dialog
Dropping github RCS so remove references to it in 'about' dialog
Fix minor bug that prevented settings from propogating to the dashboard
Add large font button for driving or the elderly (Disabled for now due to bugs)

Fix bug that prevented 'silence extra modules' setting from working
Fix bug that sometimes prevented 'dump ram' setting from working
Stop counting errors during initial connection (unnatural serial events may be normal...)
Allow crazy values in linear voltage to AFR mapping (for lambada or edge cases)
Seperate left and right BLM values in the closed loop performance analyzer
Fix some tooltips and stuff
Parameter selector now defaults to 'Extended'
Add option to always draw the dashboard
Tabs in settings to make room for more settings in the future

New connection routine should help a lot for y-body users
Experimental B-Body connection method
Minor code cleanup
Some definition corrections
Add automatic transmission "line pressure" control
Add EGR duty cycle control
Add 'expert mode' button to the controller window

Restore loop/blm setting after using force AFR target
Try harder to re-prime the security key if it doesn't work
Add arbitrary text search in parameter selector, supports basic regexp
Enable variable acquisition priorities
More reliable packet rate display
Fix 'data age' display
Improve connectivity for b-body and y-body vehicles? (Experimental)

Fix some issues that can display stale data when moving log playback position

Enable multiple message support and datalog playback interface
New data elements:
Over 1,000 parameters!
External definition file, human readable
Patch-level specific definitions possible
ODM (onboard diagnostic module) full readout
OBD-II transitional codes from corvette's secondary diagnostic module
Windows binary builds now compiled against QT5.6 with mingw32:
Build can be replicated 100% with free software
Improved memory usage during logging
Potentially improved windows XP and windows 10 stability
Improved 'high resolution dpi' display
No more dependance on visual C++ libraries
Reworked analyzer to support multiple messages
Moved 'speed logging' to seperate message (more work to enable, but more correct)
New log format (old logs no longer load!!)
Seperate graphing module and improve with new selector window
Seperate memory io module, reneable BLM cell memory retrieval
Update to patch version 3.0:
Mode 1, 2, and 3 comms from E-Side (thanks kur4o)
Remember 'read bin' as previous bin in flash window
Add graph log position indicator (double click to set position)
Add MAF AFGS average to idle analyzer
Fix some misc. analyzer bugs
Improve force AFR command (seems to work better now)
Add programming stability test mode to flash module
Add several 'custom parameters' to the dashboard

Complete UI reorganization into seperate modules
New concurrently threaded datastream manager for consistent performance
New independant log selection interface replaces old log-append behavior
Fix small bug that prevented clear DTC from working
Reworked serial comms for optimal performance
Enabled many features to be used while connected
Many core changes that I can't be bothered to explain...
Enable flash READ speed display, and reconfigure sliders
Fix major bugs in per-record timestamps
Fix possible crash if rpm=0
Many other misellaneous changes

Internal transitional release into threading

Improve flash write checksum verification
Major update to how timing is handled for improved stability
Faster writes due to better timing, larger block size, and more blank regions
Flash write speed display
More accurate packet rate display
Add selectable binary overlays to graph
Fix bug that prevented indicator lights from working
Fix bug in WOT/PE graphing when 'smooth lines' is enabled
Fix bug that prevented raw INT/BLM from being displayed on main tab
Fix linux filename bug, and improve behavior of file save/load cancellation
Integrate "compression" and "fill unused" to one function: "skip unused regions"
Fix one-off error in the size of the VIN field
Fix minor bug in autospark

Change font configuration and move some elements to improve display with high DPI
Add error counter and better log messages to flash routine
Improve debug log a bit, add select+copy button, clarify and add some new errors
Add pre-load "Reset Settings" option to start menu (command line option --reset)
Remove extraneous V6 code, no more support for that platform right now
Fix a network bug which could cause a crash on startup if auto-update is enabled
Increase some timing delays in the flash route by a few milliseconds 'just in case'
Fix various bugs in graph refresh logic
Add optional graph auto-refresh disable
Add optional graph datapoint dots (slow...)
Rearrange graphing window
Remove graphing presets
Add 'Save PNG' function per-graph
Knock Scope:
Enlarge the display area
Hover mouse over a knock event to get details
Knock events are now time-domain (count increment per msec)

Main Display:
* Add current AFR target to main display (requires patch upload)
* Enable higher-rate logging (requires patch upload)
* Optional percentage display for BLM/INT trims
* Add shift actuator manual activitation (Gear selector) and force TCC On/Off
* Add new version notification (optional)
* Added knock warning, turns entire screen red for 200ms when knock occurs (optional)
* Add options for temperature and vss display in metric/imperial
* "Notes" are now in a seperate (resizable) window to free up space on the main window
Less display overhead in main display, doesn't try to update anything that hasn't changed.
General layout and appearance improvements
Add auto trans TCC, P/N, and current gear to main tab
Add Fan 1/2, A/C, AIR, and CCP actuator logging and override (on/off/auto)
Added spark skew knock response, optionally removes 1 degree of spark when knock occurs
Add optional conditional wideband display smoothing (see settings)
Allow autospark to function without being enabled
Fix 'dropped cyl' numbering error (again)
Overlay closed loop status on top graph
Overlay PE status on bottom graph
Add preset buttons for common graph combos
Display record position in graph tab
Add some new graphing items
Flash Write/Read:
* Enable flash write compression and blank filler
* Improve timing to speed up writes (optional)
* Enable EEHack passive patch upload during flash (Optional)
* Automatically remember last written bin (Auto-compare!)
Decrease time necessary to detect a flash erase failure and retry
Fix "Fail to reset" error message appearing in false context
Automatically disable compression, large block write, and improved timing in recovery mode
Add "Clear" function to compare bin
Syntax hiliting in flash read/write routine status
Make rejection of bad checksum bin read optional (for debugging)
* Fix percentage display precision and field width bugs
* Optional precision decrease for percentage trims to increase readability
* Analyze actual AFR to target AFR percentage (requires patch)
* Add idle AFR analyzer (logs trim/afr during BLM cell 16)
* Add high-accuracy mode to narrowband analyzer
* Add BLM population analysis (for grid border optimization)
* Wideband PE Fuel analyzer now charts per-map range
* Colorize and improve appearance of knock map
Add delay option to the wb afr analyzer (experimental)
Filter out DFCO events from wideband analysis
Provide installer and bundled libraries for windows
Load log file from command line, or double click associated .eedata file
Update QT libraries to 5.5.1 for windows binary builds
Complete re-write of two-point wideband calibration system
Possibly more functional approach to cylinder drop test
Fix a few inaccuracies and rounding bugs in the wideband system
Add preset buttons for common widebands
Display actual wideband formula during config
Prompt user on exit if there is unsaved log data or memos (optional)
Prompt user to save/discard log buffer on load/save
Improve data parser per-function to increase synchronzation between elements
Move "Tests" to "Extended" tab, no need for seperate tests tab for now
Add warning message before resetting all settings
Add MODE4 command display to 'advanced' tab
Save selected serial port. Move serial port to settings.
Fix bug that omitted the last digit of the VIN.
Fix a bug that momentarily froze the program when changing some settings.
Correct flaw in temperature calculations
Add donate button to 'about' tab (links to paypal)
Add bug report button to 'about' tab (links to github)
Make links in text followable in some text fields (opens external browser)

Fix rounding bug in wideband analyzer
Add timestamp display to main parameters tab

** FLASH WRITE is enabled! (LT1 only) Ready for mainstream testing!
** Add Pin D27 as an optional wideband input
** Add wideband open loop analyzer mode
Too many changes to flash routine to list....
Flash COMPARE fixed up a bit
Flash READ improvements
Much more verbose flash error reporting, and nicer looking logs
Allow custom commands to be sent when disconnected
Add debug logging window for serial comms
Re-enable CCM/BCM traffic when disconnecting
Increase to 1 decimal point of precision for temperature readouts
Fix bug that can cause a crash when using the debug window
Maybe fix the bug that causes crashes with autospark?
Re-enable mode3 during autospark

** Preliminary V6 support! (Seperate binary..)
** Program VIN/Cal ID EEPROM
** READ bin fixes, incl. datastream stability pre-inspection, and autoconnect
** Fullscreen programming status
** More accurate temperature readings (use lookup table instead of linear calc)
** Flash Write almost ready, contact me to test it! (Don't blame me if it bricks your ECM...)
Autoload VIN/Cal ID Number on connect
Way faster BLM cell memory retrieval
No more 'skip ram' option... just skip ram. But include internal EEPROM...
Optionally disable the datastream while connected and just keep alive instead
Make more room in interface for more stuff
Fix bugs in custom command fields, increase length to theoretical maximum
Add button to clear the custom command log
Improve what happens when you disconnect and lots of stuff is enabled
Improve reaction to large amounts of connection errors
Improve M4 cancellation on disconnect
Remove redundant panic button (just disconnect instead, alt-enter.)
Remove useless CORRCL monitor
Resume normal comms on disconnect (adhere to aldl standards)

** Preliminary flash i/o capability, read only
Major changes to how event timing works
Major changes to how queries are made
** Better serializaton of mode4 request
** Two custom commands, with a log, hex entry
Add adjustable polling performance setting

Add fan, BLM, CL Update control
Now works with Corvette! (I think)
More playing around with cylinder drop test accuracy
Improve graph ranging defaults
Improve data rate a bit by tweaking how even loops work
Improve connection reliability and success chance
Improve log playback and add traversal slider
Clicking graph now jumps to that record in the main data screen
Selecting new graph data automatically replots
Improve some defaults in analyzer
Improve MAP KPA calculation accuracy
Log timestamp now starts when you first connect, to avoid blank space
Fix BLM Reset button

Add very basic log playback
Add default log save/load directory
Autospark hystersis/blend (optional, disabled by default)
Add percentage display option in analyzer
Use MAP instead of RPM in cyl drop test for more accuracy
Add minimum MAP filter for PE analyzer
Add message 4 preliminary support, reads vin only for now
Rearrange the analyzer screen to make more space for stuff

** "More awesome than DataMaster_EE in every way unless you have a 4L60E"(tm)
** Add 4 line graphing.... whaaat!! (Actually wasn't that hard)
** Increase accuracy of RPM in tests and analyzer (use RPM16 everywhere)
Add reset BLM and clear DTC functions
Make some things more visible
All records are now timestamp sequential, even when loading multiple logs.
Misc. bug fixes, more analyzer tuning

** Fix improper cylinder numbering (again)
** Add wideband trim compensation
** Add wideband analyzer
** Add analyzer configurable data integrity
Improve many small analyzer issues
Move some settings to more logical places
Set smart defaults instead of rembering settings
Add progress bars for some long operations
More bug fixes and testing for log read/write
Better code in analyzer

** Fix raw log write and change format
** Implement raw log read
Code cleanup release!
Remove a bunch of useless config options (using combinations of them
could break things anyway, and they were just for testing)
Remove development cruft
Remove idle traffic checking, deemed completely unnecessary.

Fix bug in CSV log output
Fix bugs in analyzer
Add option for cell 16/17 ignore

Enable **autospark spark table skew system**
Enable **static data analyzer** for knock and NB AFR
Enable configurable **wideband input**
Raw log write (import not done yet)
Improve field display performance
Many small UI improvements
Improve connection stability and timing
Add manual connect/disconnect
Restrict some features to 'while disconnected' only

Less intrusive reconnect/disconnect behavior
Re-enable analyzer

Add "Memo" buttons system for tracking positive modifications in a
modifiable text field.
Add AFR target extended parameter
Huge update to cyl drop tests, base cylinder drop test on current
IAC opening (lower RPM for test), lock absolute spark, force no BLM
updates, clarify notes, better scaling of results.
Start building autospark interface
Lots of other small fixes.

Attempt to fix AFR behavior
Fix huge inversion bug in cyl. numbering
Export CSV data feature
Reset log feature
More improvements to UI unblocking and timing
More code cleanup
More available settings
Some logic changes

MAJOR code cleanup
Removed tons of scrap code
Add some icons and junk
Add new timing mode (optional)
Add keyboard shortcut for panic button
Add fairly useless CORRCL monitor
Add optional slower request serialization

Add extended parameter for BLM memory read
Remove some latency for added datalogging performance
More rearranging and bug fixing
Initial source release for Linux/FreeBSD

Make welcome warning a bit more friendly
Optional hack-keep-alive packet at interval
Enable AFR override after some fixes, thanks kur4o!
Added a settings window, we'll need one
Add two timing skew range modes (for bumpy roads)
Hover over BLM cell for a reminder chart

Add progress bar for cyl drop test.
Add credits/about screen.
Add some more tooltips.
Add warning about no ports detected.
Fix behavior if running a test while disconnected.

Fix bugs in cyl drop test.

Timing fixes.
Enable cyl drop test.

Corrections to reconnect behavior.

Initial Release.