# L060ShapingOpMode What each lesson's patch does to this file, in the order the lessons come, from applying `solutions/` on `solutions-auto-schedules.1`. A line marked + is new, and a line marked - is gone; each number is the line's place in the file after the lesson. ## L060 ```{code-block} diff :class: answer-diff --- mytry/L060ShapingOpMode.java (before L060) +++ mytry/L060ShapingOpMode.java (after L060) @@ lines 75 to 93 @@ 75 // When on L060S040, see 76 // https://msb-stitt.github.io/ftc31459-26-27-biobuzz/guide/tasks/l060.html#l060s040 77 // for what to do here. + 78 double band = 0.05; + 79 double leftPower = deadband(leftSpeed, band); + 80 leftPower = signedSquared(leftPower); + 81 Tracker.publish("power/left", leftPower); + 82 double rightPower = deadband(rightSpeed, band); + 83 rightPower = signedSquared(rightPower); + 84 Tracker.publish("power/right", rightPower); 85 - hardware.frontLeft.setPower(leftSpeed); - hardware.backLeft.setPower(leftSpeed); + 86 hardware.frontLeft.setPower(leftPower); + 87 hardware.backLeft.setPower(leftPower); 88 - hardware.frontRight.setPower(rightSpeed); - hardware.backRight.setPower(rightSpeed); + 89 hardware.frontRight.setPower(rightPower); + 90 hardware.backRight.setPower(rightPower); 91 } 92 93 // 'public' to match the parent class. 'public' allows access from any code. @@ lines 99 to 117 @@ 99 // When on L060S030, see 100 // https://msb-stitt.github.io/ftc31459-26-27-biobuzz/guide/tasks/l060.html#l060s030 101 // for what to do here. + 102 double deadband(double value, double band) { + 103 double alwaysPositiveMagnitude = Math.abs(value); + 104 boolean isCloseToZero = alwaysPositiveMagnitude < band; + 105 if (isCloseToZero) { + 106 return 0.0; + 107 } + 108 return value; + 109 } 110 111 // When on L060S050, see 112 // https://msb-stitt.github.io/ftc31459-26-27-biobuzz/guide/tasks/l060.html#l060s050 113 // for what to do here. + 114 double signedSquared(double value) { + 115 return value * Math.abs(value); + 116 } 117 } ```