I've been trying to work the best way to work detection of recovery into the UNO app. I have things working to some extent: But it's clunky, the wait for a reply takes a lot of extra time, enough to where this doesn't work without several seconds added to the timeout. I'd call that a loss, as that creates uncertainty.
I have noticed that almost immediately after failing the OSID check, the PCM begins to spam command A2 back.
I've scoured my logs of every successful communications attempt I have, and I don't see where that has any use on a functional PCM. I can actually see in MockPCM that this is labeled as "Programming Prompt". Could this be used to detect recovery instead? In reality it would solve all issues and the loop can retain a low timeout. We will be expecting the OSID to fail in recovery mode, so we will either need to increase the timeout by just a mere couple of seconds, or make the OSID test fail faster. I'm also going out on a limb here, but I'm going to assume under the influence of a live kernel, this spamming wouldn't happen either. I only have experience with P01 right now, so I'll need to know if this is unique to the P01 or a constant between units.
I have connections to the yard down the road from me, I'm going to try to talk him into grabbing a bulk of different ECUs to play with for the good of humanity
If this isn't a viable option, I have other ideas around this, but I'll hold off for the moment.
Thank you!