package Ġcom . example . first app . activity Ċ Ċ import Ġandroid . annotation . Suppress Lint Ċ import Ġandroid . graphics . Color Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . View Ċ import Ġandroid . widget .* Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġcom . example . first app . R Ċ import Ġcom . example . first app . mqtt . Mqtt Handler ĊĊ Ċ class ĠAut onomous Activity Ġ: ĠAppCompatActivity (), ĠView . OnClickListener Ġ{ ĊĊĠĠĠ Ġprivate Ġvar Ġm Mqtt Handler : ĠM qtt Handler ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġm Pattern One : ĠButton ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġm Pattern Two : ĠButton ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġm Start Btn : ĠButton ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġm Size Field : ĠEditText ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġm Seek Bar : ĠSeek Bar ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġm Speed Text Ġ: ĠTextView ? Ġ= Ġnull ĊĊĠĠĠ Ġ// Messages ĊĠĠĠ Ġprivate Ġval ĠP ATTERN _ ONE Ġ= Ġ 1 ĊĠĠĠ Ġprivate Ġval ĠP ATTERN _ TWO Ġ= Ġ 2 ĊĠĠĠ Ġprivate Ġvar Ġm Speed Ġ= Ġ 0 ĊĠĠĠ Ġprivate Ġvar Ġm Pattern Ġ= Ġ 0 ĊĠĠĠ Ġprivate Ġvar Ġm Size Ġ= Ġ 0 ĊĊĠĠĠ Ġ// Seek bar Ġpointers ĊĠĠĠ Ġprivate Ġvar Ġm Start Point Ġ= Ġ 0 ĊĠĠĠ Ġprivate Ġvar Ġm EndPoint Ġ= Ġ 0 ĊĊĠĠĠ Ġ@ Suppress Lint (" SetText I 1 8 n ") ĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . activity _ auto _ option ) ĊĊĠĠĠĠĠĠĠ Ġm Pattern One Ġ= ĠfindViewById ( R . id . pattern 1 ) ĊĠĠĠĠĠĠĠ Ġm Pattern Two Ġ= ĠfindViewById ( R . id . pattern 2 ) ĊĠĠĠĠĠĠĠ Ġm Speed Text Ġ= ĠfindViewById ( R . id . velocity ) ĊĠĠĠĠĠĠĠ Ġm Seek Bar Ġ= ĠfindViewById ( R . id . seek Bar ) ĊĠĠĠĠĠĠĠ Ġm Start Btn Ġ= ĠfindViewById ( R . id . start _ clean ing ) ĊĊĠĠĠĠĠĠĠ Ġm Pattern One ?. setOnClickListener ( this ) ĊĠĠĠĠĠĠĠ Ġm Pattern Two ?. setOnClickListener ( this ) ĊĠĠĠĠĠĠĠ Ġm Start Btn ?. setOnClickListener ( this ) ĊĊĠĠĠĠĠĠĠ Ġval Ġaction Bar Ġ= Ġsupport ActionBar ĊĠĠĠĠĠĠĠ Ġaction Bar !!. title Ġ= Ġ"" ĊĊĠĠĠĠĠĠĠ Ġval Ġ Ġm Bag Capacity Ġ: ĠTextView Ġ= ĠfindViewById ( R . id . bin Progress ) ĊĊĠĠĠĠĠĠĠ Ġ// Mqtt Ġcar Ġhandler ĊĠĠĠĠĠĠĠĠ Ġm Mqtt Handler Ġ= ĠM qtt Handler ( this . application Context , Ġm Bag Capacity ) ĊĠĠĠĠĠĠĠĠ Ġm Mqtt Handler !!. connect To Mqtt Broker () ĊĊĠĠĠĠĠĠĠ Ġ// Seek bar Ġto Ġget Ġinput Ġfrom Ġuser Ġregarding Ġvelocity ĊĠĠĠĠĠĠĠ Ġm Seek Bar ?. setOn Seek Bar ChangeListener ( object Ġ: ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSeek Bar . On Seek Bar ChangeListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Progress Changed ( seek : ĠSeek Bar , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprogress : ĠInt , Ġfrom User : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Speed Text ?. text Ġ= Ġprogress . toString () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Speed Ġ= ĠInteger . parseInt ( m Speed Text ?. text Ġas ĠString ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonStart Tracking Touch ( seek : ĠSeek Bar ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Start Point Ġ= Ġm Seek Bar !!. progress ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Stop Tracking Touch ( seek : ĠSeek Bar ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm EndPoint Ġ= Ġm Seek Bar !!. progress ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonClick ( v : ĠView ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( v ?. id ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . pattern 1 Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġv . set BackgroundColor ( Color . LT GRAY ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Pattern Ġ= ĠP ATTERN _ ONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Pattern Two ?. set BackgroundColor ( Color . WHITE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . pattern 2 Ġ-> { ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġv . set BackgroundColor ( Color . LT GRAY ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Pattern Ġ= ĠP ATTERN _ TWO ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Pattern One ?. set BackgroundColor ( Color . WHITE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . start _ clean ing Ġ-> { ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget Size Input () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsend Messages ( m Size , Ġm Speed , Ġm Pattern ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġget Size Input (){ ĊĠĠĠĠĠĠĠ Ġm Size Field Ġ= ĠfindViewById ( R . id . size _ input ); ĊĠĠĠĠĠĠĠ Ġval Ġtemp : ĠString Ġ= Ġm Size Field ?. text . toString () ĊĠĠĠĠĠĠĠ Ġval Ġvalue : ĠInt ĊĠĠĠĠĠĠĠ Ġif Ġ( "" Ġ!= Ġtemp ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvalue Ġ= ĠInteger . parseInt ( temp ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Size Ġ= Ġvalue ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠ Ġprivate Ġfun Ġsend Messages ( size Ġ: ĠInt , Ġspeed Ġ: ĠInt , Ġpattern Ġ: ĠInt ) Ġ{ ĊĠĠĠĠĠ Ġif Ġ( size Ġ!= Ġ 0 Ġ&& Ġspeed Ġ!= Ġ 0 Ġ&& Ġpattern Ġ!= Ġ 0 Ġ){ ĊĠĠĠĠĠĠĠĠĠ Ġm Mqtt Handler !!. drive Auto ( size , Ġspeed , Ġpattern ," ") ĊĠĠĠĠĠ Ġ} ĊĠ Ġ} Ċ }