Description
I'm mentoring a couple teams this season, and both have run into problems when updating their code with Android Studio, where the Robot Controller app takes a few minutes to launch after updating. Makes for some long programming sessions when you need to tweak a bunch of values.
I believe this is caused by a watchdog timer that exists in the Rev Control Hubs, that attempts to restart the RC app if it fails to report that it's alive for 10 seconds. The problem is that it takes roughly 10 seconds for the app to update, so the watchdog tries to restart the app while it's being updated, which causes it to go into some weird error state that can take minutes to recover.
I haven't dug super deep into this myself; I met with someone who has dug into this and explained it to me, so this may be a game of telephone 😉 They found a way to increase the watchdog timer from 10 seconds to 20 seconds, and that completely solved the problem, so that's pretty definitively the cause. I believe the watchdog process is called FtcAccessPointService, and only exists on the Rev Control Hubs (the 4 Google results for "FtcAccessPointService" all point to the Control Hub OS).
IMO the best solution would be to have the watchdog detect when the app is being updated, and disable itself until the update is finished. I'm not sure how difficult that is to implement, so an alternative solution could be to simply increase the timer value. For now, my workaround has been to have the Rev Hardware Client open while working, and force launch the app after updating.