diff --git a/MobileApp/app/src/main/java/com/example/lfrmobileapp/ui/home/HomeFragment.java b/MobileApp/app/src/main/java/com/example/lfrmobileapp/ui/home/HomeFragment.java index e8f0b8b..c9a6f01 100644 --- a/MobileApp/app/src/main/java/com/example/lfrmobileapp/ui/home/HomeFragment.java +++ b/MobileApp/app/src/main/java/com/example/lfrmobileapp/ui/home/HomeFragment.java @@ -38,6 +38,8 @@ public class HomeFragment extends Fragment { MainActivity mainActivity; Communication com = new Communication(); + long lastOnMoveCall = System.currentTimeMillis(); + private FragmentManuellBinding binding; @@ -105,36 +107,47 @@ public class HomeFragment extends Fragment { joystick.setOnMoveListener(new JoystickView.OnMoveListener() { @Override public void onMove(int angle, int strength) { + boolean send = false; + if (System.currentTimeMillis() - lastOnMoveCall > 250){ + send = true; + lastOnMoveCall = System.currentTimeMillis(); + } + String telegram = ""; + homeViewModel.setText(Integer.toString(angle), Integer.toString(strength)); //8 segments of the joystick if((angle >= 338 || angle < 22) && strength != 0){ joystick.setBackgroundResource(R.mipmap.right); - mainActivity.sendTelegram(com.telegram(new int[]{1, -1, -1, 1}, strength)); + telegram = com.telegram(new int[]{1, -1, -1, 1}, strength); }else if((angle >= 22 && angle < 67) && strength != 0){ joystick.setBackgroundResource(R.mipmap.right_forward); - mainActivity.sendTelegram(com.telegram(new int[]{1, 0, 0, 1}, strength)); + telegram = com.telegram(new int[]{1, 0, 0, 1}, strength); }else if((angle >=67 && angle < 112) && strength != 0){ joystick.setBackgroundResource(R.mipmap.forward); - mainActivity.sendTelegram(com.telegram(new int[]{1, 1, 1, 1}, strength)); + telegram = com.telegram(new int[]{1, 1, 1, 1}, strength); }else if((angle >=112 && angle < 157) && strength != 0){ joystick.setBackgroundResource(R.mipmap.left_forward); - mainActivity.sendTelegram(com.telegram(new int[]{0, 1, 1, 0}, strength)); + telegram = com.telegram(new int[]{0, 1, 1, 0}, strength); }else if((angle >=157 && angle < 202) && strength != 0){ joystick.setBackgroundResource(R.mipmap.left); - mainActivity.sendTelegram(com.telegram(new int[]{-1, 1, 1, -1}, strength)); + telegram = com.telegram(new int[]{-1, 1, 1, -1}, strength); }else if((angle >=202 && angle < 247) && strength != 0){ joystick.setBackgroundResource(R.mipmap.left_back); - mainActivity.sendTelegram(com.telegram(new int[]{-1, 0, 0, -1}, strength)); + telegram = com.telegram(new int[]{-1, 0, 0, -1}, strength); }else if((angle >=247 && angle < 292) && strength != 0){ joystick.setBackgroundResource(R.mipmap.back); - mainActivity.sendTelegram(com.telegram(new int[]{-1, -1, -1, -1}, strength)); + telegram = com.telegram(new int[]{-1, -1, -1, -1}, strength); }else if((angle >=292 && angle < 337) && strength != 0){ joystick.setBackgroundResource(R.mipmap.right_back); - mainActivity.sendTelegram(com.telegram(new int[]{0, -1, -1, 0}, strength)); + telegram = com.telegram(new int[]{0, -1, -1, 0}, strength); } else{ joystick.setBackgroundResource(R.mipmap.blank); - mainActivity.sendTelegram(com.telegram(new int[]{0, 0, 0, 0}, strength)); + telegram = com.telegram(new int[]{0, 0, 0, 0}, strength); + } + if (send) + { + mainActivity.sendTelegram(telegram); } } });