Announcement

Collapse
No announcement yet.

Purpose of idle()

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • #16
    Indeed. That said, I'm reminded that when the new system first started being available early last year one of the very first things I did was to decompile the whole RC APK (using bytecodeviewer.com) and put the results into a repository precisely because I wanted to be able to track subsequent changes in detail as you are talking about here. Not ideal, I know, but perhaps helpful.

    Comment


    • #17
      I only look at the decompiled source code when absolutely necessary and I don't keep it in source control. Regardless, it is a lot of work to verify everything still works when they do a new release with or without sources.

      Comment


      • #18
        I may be missing a point here, but a fair amount of code of the robot controller is in the GitHub repo, including the idle() method of LinearOpMode.

        Specifically, idle() no longer throws an Interrupted Exception when isStopRequested is true.

        You can to emulate the old behavior of idle(), you can create the following function (dependent on idle()):
        Code:
        public void oldIdle() {
             // Abort the OpMode if we've been asked to stop
            if (this.isStopRequested())
                throw new InterruptedException();
        
            // Otherwise, yield back our thread scheduling quantum and give other threads at
            // our priority level a chance to run
            idle();
        }
        In the new version idle() seems to be synonymous with Thread.yield().

        Comment


        • #19
          Originally posted by mikets View Post
          I only look at the decompiled source code when absolutely necessary and I don't keep it in source control. Regardless, it is a lot of work to verify everything still works when they do a new release with or without sources.
          While I can understand the sentiment, I found last year that with the approach I outlined I could in about half an hour assess exactly and precisely what had changed in a new release. If that is one's goal, this could help.

          It's also worth mentioning that the character of the first release at the beginning of the season is qualitatively different than those made as the season is ongoing. In the former, the emphasis is on features and functionality, which sometimes comes at the expense of compatibility with code from previous seasons, while the latter releases are much more incremental in nature.

          Comment


          • #20
            It looks like the beta branch has just been pushed to the master branch and the only difference between master and beta is the removal of doc\tutorial files.

            Comment

            Working...
            X