Suppose I have a customer that one of our tech support guys is updating from v8 to v10. They run our installer, but because the INtime installer is not really automate-able (e.g. it requires 1-3 reboots), I can’t just bundle the installs together. Then, suppose the tech forgets to update INtime to a sufficiently recent version, and instead starts our software.
Are there ways that a RapidCode client can detect an INtime version problem?
When I start RapidSetup v10.3.1 with INtime 6.3.18110.7 (the runtime we’ve used for v8), the app just fails to start INtime over and over without giving me any indication of a version mismatch.
It seems like with some, perhaps v6.4, runtime in the past, I noticed that RapidSetup gave me a warning that INtime wasn’t new enough.
I don’t see any RTOS* functions in the interface (rsi.h) that suggest version numbers or checking.
I do see RSIPlatformMessageINTIME_VERSION_UNSUPPORTED in rsienums.h, but I don’t know under what circumstances I might get an RsiError with that number.
Is there any way for me to detect the (actual) problem so that I can provide some meaningful guidance to the tech/operator?
The only way to detect it would be to run any of our utilities which attempt to initialize the MotionController (RapidSetup, VM3, rsiconfig, etc.), or to do so in your code using one of the MotionController::Create methods.
We report RSIPlatformMessageINTIME_VERSION_UNSUPPORTED if your version is less than 6.4. (As of 10.3.1.)
I agree that RTOS::VersionGet() would be nice. The API we use to read the version doesn’t give us more detail than 6.4 or 6.3.
RapidSetup checks that INtime is running before initializing the MotionController. In this case, if you start INtime, the next step should fail (and it should report the version issue).