I am looking at implementing this using a python module per interface version. Python modules can inherit from each other, so each time a new version comes out I can just add the new functionality - and if it has changed, just redefine the behaviour in the new module.Fred wrote:Aaron and/or Ben and anyone else :
I would VERY strongly encourage you to put a LOT of thought into configurations and firmware versioning etc. There are a few ways to go, but I'm told the tuning tool build per firmware option isn't a good one. It is one that you can guarantee no user induced bugs with though! Having stuff like the INI file in megatune is NASTY but there does need to be some form of configuration to some extent regardless.
For JEMSTuner I was thinking about a sort of dependency hierarchy where an interface version maps to one protocol, one data mapping, one config and any number of front ends map over the top of those. I'm no expert on this, but it needs to be considered carfully.
The data you will have access to is laid out in FixedConfig.c and the various tables files.
I'll be posting here again tomorrow with a few words about the new release of the firmware (if all goes well)
Fred.
Also, I will define "required functionality", methods that must be defined in the firmware module to display an interface element.