package Ġorg . first insp ires . ft c . team code . bert Ċ Ċ import Ġcom . qual comm . robot core . event loop . op mode . Linear Op Mode Ċ import Ġcom . qual comm . robot core . event loop . op mode . Tele Op Ċ import Ġcom . qual comm . robot core . util . Elapsed Time Ċ import Ġcom . qual comm . robot core . util . Range Ċ import Ġorg . first insp ires . ft c . team code . robot . B ert Robot Ċ Ċ @ Tele Op ( name Ġ= Ġ"\ uD 8 3 D \ u DC 1 D ĠB ert ", Ġgroup Ġ= Ġ" B ert ") Ċ class ĠBy rt Ġ: ĠLinear Op Mode () Ġ{ ĊĊĠĠĠ Ġ// ĠShow Ġrunning Ġtime . ĊĠĠĠ Ġprivate Ġval Ġruntime Ġ= ĠE lapsed Time () ĊĠĠĠ Ġprivate Ġval Ġspinner Positions Ġ= ĠlistOf ( Spinner Position . HALF , ĠSp inner Position . OUT ) ĊĠĠĠ Ġprivate Ġvar Ġcurrent Spinner Position Ġ= Ġ 0 ĊĊĠĠĠ Ġprivate Ġvar Ġdebounce A Ġ= Ġfalse ĊĠĠĠ Ġprivate Ġvar Ġdebounce X Ġ= Ġfalse ĊĠĠĠ Ġprivate Ġvar Ġdebounce Y Ġ= Ġfalse ĊĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠRuns Ġthe Ġop mode ! ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun Ġrun Op Mode () Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠInitialize Ġb ert ĊĠĠĠĠĠĠĠ Ġval Ġb ert Ġ= ĠB ert Robot ( hardware Map , Ġtelemetry ) ĊĊĠĠĠĠĠĠĠ Ġ// ĠWait Ġfor Ġthe Ġgame Ġto Ġstart Ġ( driver Ġp resses ĠP LAY ) ĊĠĠĠĠĠĠĠ ĠwaitFor Start () ĊĠĠĠĠĠĠĠ Ġruntime . reset () ĊĊĠĠĠĠĠĠĠ Ġ// Ġrun Ġuntil Ġthe Ġend Ġof Ġthe Ġmatch Ġ( driver Ġp resses ĠSTOP ) ĊĠĠĠĠĠĠĠ Ġwhile Ġ( op Mode IsActive ()) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdrive Ġ= Ġ(- gamepad 1 . left _ stick _ y ). toDouble () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġturn Ġ= Ġgame pad 1 . right _ stick _ x . toDouble () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( gamepad 1 . left _ stick _ y Ġ< Ġ- 0 . 1 3 Ġ|| Ġgame pad 1 . left _ stick _ y Ġ> Ġ 0 . 1 3 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġleft Power Ġ= ĠRange . clip ( drive Ġ+ Ġturn , Ġ- 1 . 0 , Ġ 1 . 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġright Power Ġ= ĠRange . clip ( drive Ġ- Ġturn , Ġ- 1 . 0 , Ġ 1 . 0 ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġb ert . stra ight Drive ( left Power , Ġright Power ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( gamepad 1 . left _ stick _ x Ġ< Ġ- 0 . 1 3 Ġ|| Ġgame pad 1 . left _ stick _ x Ġ> Ġ 0 . 1 3 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġb ert . str afe Right ( gamepad 1 . left _ stick _ x . toDouble ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġb ert . stra ight Drive ( 0 . 0 , Ġ 0 . 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( gamepad 1 . left _ trigger Ġ> Ġ 0 . 1 3 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġb ert . nom Nom Nom ( Range . clip ( gamepad 1 . left _ trigger . toDouble (), Ġ 0 . 0 , Ġ 1 . 0 )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġb ert . nom Nom Nom ( 0 . 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( gamepad 1 . dp ad _ up ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġb ert . lift ( 0 . 5 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( gamepad 1 . dp ad _ down ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġb ert . lift (- 0 . 5 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġb ert . lift ( 0 . 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif ( gamepad 1 . a Ġ&& Ġ! de bounce A ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcurrent Spinner Position ++ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcurrent Spinner Position Ġ% = Ġspinner Positions . size ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġb ert . spinner Position Ġ= Ġspinner Positions [ current Spinner Position ] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( gamepad 1 . b ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcurrent Spinner Position Ġ= Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġb ert . spinner Position Ġ= ĠSp inner Position . IN ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif ( gamepad 1 . x Ġ&& Ġ! de bounce X ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġb ert . cl aw Is Open Ġ= Ġ! bert . cl aw Is Open ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif ( gamepad 1 . y Ġ&& Ġ! de bounce Y ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġb ert . f lick er Is Out Ġ= Ġ! bert . f lick er Is Out ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġdebounce A Ġ= Ġgame pad 1 . a ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdebounce X Ġ= Ġgame pad 1 . x ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdebounce Y Ġ= Ġgame pad 1 . y ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġtelemetry . addData (" Status ", Ġ" Run ĠTime : Ġ$ runtime ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtelemetry . update () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ