python-OBD
python-OBD copied to clipboard
Rewrite the command tables
There are a few issues that lend themselves to a rewrite of the command tables that python-OBD currently carries:
- As python-OBD grows, we may want to support an "experimental" section, where user-submitted/reverse-engineered PIDs can live. These may be make/model-specific PIDs that aren't backed by any documentation. This could also be viewed as a flag on individual commands, rather than separate buckets, which may be helpful in cases where we have documentation for some PIDs, but not others, for the same car. As long as it's clearly "opt-in".
- The current structure of the command tables doesn't have nearly enough (any) granularity to categorize commands by make/model/subsystem. Not a hard problem to solve, just takes time and possibly API changes.
- It may also be worth transitioning the storage format away from inline-python-object-instantiation to a more concrete text-based format. The existing tables actually take a silly amount of time to load in the interpreter (you may notice "import obd" being a tad slow). Some Android apps out there have come up with their own CSV format: https://torque-bhp.com/wiki/PIDs It's worth considering using and/or extending it for interoperability's sake.
A release with any one of these changes may be a good release to solve the other two. I imagine that this will require some API changes, so best to consolidate any breaking changes.