How to manage firmware versions / interface versions from package C/Lisp code?
When we add custom functions to the C-interface we'd like to be able to check whether it is safe to attempt that call. Maybe some kind of a signature or such. Checking the firmware version and hardware string would also be useful, but the high level version number may not be sufficient, we need sub-version numbers without resorting to betas. Open to suggestions
If you have the practice of adding functions to the end of the C interface (which you should) you can check if they exist by checking if they are null. I have initialized the memory region to null where the C interface is, so if you have a vesc_c_if file that has more functions than the running firmware has they will be null.