package com.example.agvcontroller; import static android.content.ContentValues.TAG; import androidx.appcompat.app.AppCompatActivity; import androidx.recyclerview.widget.RecyclerView; import android.content.Context; import android.content.Intent; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.os.Vibrator; import android.util.Log; import android.view.KeyEvent; import android.view.MotionEvent; import android.view.View; import android.widget.Button; import android.widget.CompoundButton; import android.widget.GridLayout; import android.widget.RelativeLayout; import android.widget.Switch; import com.example.agvcontroller.action.AllResetAction; import com.example.agvcontroller.action.BackPaddle; import com.example.agvcontroller.action.CameraResetAction; import com.example.agvcontroller.action.ForkResetAction; import com.example.agvcontroller.action.ForwardBackAction; import com.example.agvcontroller.action.FrontPaddle; import com.example.agvcontroller.action.GyroResetAction; import com.example.agvcontroller.action.HandExtendCollect; import com.example.agvcontroller.action.HandForkRotatopn; import com.example.agvcontroller.action.HandInAction; import com.example.agvcontroller.action.HandLift; import com.example.agvcontroller.action.LiftResetAction; import com.example.agvcontroller.action.LoadResetAction; import com.example.agvcontroller.action.RotatopnLeftRight; import com.example.agvcontroller.action.SingleSwitchAction; import com.example.agvcontroller.action.SingleSwitchRunAction; import com.example.agvcontroller.protocol.AgvAction; import com.example.agvcontroller.action.HandOutAction; import com.example.agvcontroller.socket.NettyServerHandler; import com.example.agvcontroller.socket.SocketManager; import com.example.agvcontroller.utils.DialogUtil; import com.example.agvcontroller.utils.SnowflakeIdWorker; import java.net.Socket; import java.util.List; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; public class MainActivity extends AppCompatActivity { public static final Map map = new ConcurrentHashMap(); public static final Map car_num = new ConcurrentHashMap(); private RecyclerView recyclerView; private ItemAdapter itemAdapter; private List itemList; private Vibrator vibrator; private Button stopBtn; // 急停按钮 // private Button forceSwitchBtn; // 手自动强制开关 private Button rotatopnLeftBtn; // 左旋转 private Button rotatopnRightBtn; // 右旋转 private Button goForwardBtn; // 前进 private Button goBackwardBtn; // 后退 private Button modelSwitchBtn; // 进入、退出 手动 private Button frontPaddleExtendBtn; private Button frontPaddleCollectBtn; private Button backPaddleExtendBtn; private Button backPaddleCollectBtn; private Button riseBtn; private Button dropBtn; private Button extendForkBtn; private Button collectForkBtn; private Button turnLeftBtn; private Button turnRightBtn; private Button cameraResetBtn; private Button loadResetBtn; private Button forkResetBtn; private Button gyroResetBtn; private Button liftResetBtn; private Button allResetBtn; private Switch switchBtn1; // 单轴使能 private Switch switchBtn2; // 单轴使能 private Switch switchBtn3; // 单轴使能 private Switch switchBtn4; // 单轴使能 private Switch switchBtn5; // 单轴使能 private Switch switchBtn6; // 单轴使能 private Switch switchBtn7; // 单轴使能 private Switch switchBtn8; // 单轴使能 private Switch switchBtn9; // 单轴使能 private Button axleFrontBtn1; private Button axleBackBtn1; private Button axleFrontBtn2; private Button axleBackBtn2; private Button axleFrontBtn3; private Button axleBackBtn3; private Button axleFrontBtn4; private Button axleBackBtn4; private Button axleFrontBtn5; private Button axleBackBtn5; private Button axleFrontBtn6; private Button axleBackBtn6; private Button axleFrontBtn7; private Button axleBackBtn7; private Button axleFrontBtn8; private Button axleBackBtn8; private Button axleFrontBtn9; private Button axleBackBtn9; private Button bodySwitchBtn; // 底盘/货叉切换 private Socket socket; private String AgvNo = "1"; private RelativeLayout layout_bottom; private RelativeLayout layout_top; private GridLayout layout_single; private RelativeLayout layout_reset; int liftHeight = 400; int extendWidth = -450; int angle = -91; // 7 度 SocketManager socketManager; // 按钮长按事件 private int autoVal = 1; private boolean isAuto = true; private boolean isGoForward = false; private boolean isGoBackward = false; private boolean isRotatopnRight = false; private boolean isRotatopnLeft = false; private boolean isFront1 = false; private boolean isBack1 = false; private boolean isFront2 = false; private boolean isBack2 = false; private boolean isFront3 = false; private boolean isBack3 = false; private boolean isFront4 = false; private boolean isBack4 = false; private boolean isFront5 = false; private boolean isBack5 = false; private boolean isFront6 = false; private boolean isBack6 = false; private boolean isFront7 = false; private boolean isBack7 = false; private boolean isFront8 = false; private boolean isBack8 = false; private boolean isFront9 = false; private boolean isBack9 = false; // 底盘前进、后退、左旋转、右旋转 private Handler handler = new Handler(new Handler.Callback() { @Override public boolean handleMessage(Message msg) { String substring = String.valueOf(new SnowflakeIdWorker().nextId()).substring(0,16); if (isGoForward) { Log.d(TAG, "isGoForward: " + isGoForward); AgvAction agvAction = new AgvAction<>(ForwardBackAction.class) .setAgvNo(AgvNo) .setSerialNo(substring) .setVal(1) .bodySync((action) -> action.setPwd((short) 50)); Log.d(TAG, "isGoForward: " + clientId); nettyServerHandler.sendMessageToClient(clientId, agvAction); // 发送消息到客户端 handler.sendEmptyMessageDelayed(0, 100); // 100ms 后发送下一条消息 } if (isGoBackward) { AgvAction agvAction = new AgvAction<>(ForwardBackAction.class) .setAgvNo(AgvNo) .setSerialNo(substring) .setVal(1) .bodySync((action) -> action.setPwd((short) -50)); nettyServerHandler.sendMessageToClient(clientId, agvAction); // 发送消息到客户端 handler.sendEmptyMessageDelayed(0, 100); } if (isRotatopnRight) { AgvAction agvAction = new AgvAction<>(RotatopnLeftRight.class) .setAgvNo(AgvNo) .setSerialNo(substring) .setVal(1) .bodySync((action) -> action.setPwd((short) 50)); nettyServerHandler.sendMessageToClient(clientId, agvAction); // 发送消息到客户端 handler.sendEmptyMessageDelayed(0, 100); } if (isRotatopnLeft) { AgvAction agvAction = new AgvAction<>(RotatopnLeftRight.class) .setAgvNo(AgvNo) .setSerialNo(substring) .setVal(1) .bodySync((action) -> action.setPwd((short) -50 )); nettyServerHandler.sendMessageToClient(clientId, agvAction); // 发送消息到客户端 handler.sendEmptyMessageDelayed(0, 100); } if (isFront1) { AgvAction agvAction = new AgvAction<>(SingleSwitchRunAction.class) .setAgvNo(AgvNo) .setSerialNo(substring) .setVal(1) .bodySync((action) -> action.setPwd((short) 99)); nettyServerHandler.sendMessageToClient(clientId, agvAction); // 发送消息到客户端 handler.sendEmptyMessageDelayed(0, 100); } if (isBack1) { AgvAction agvAction = new AgvAction<>(SingleSwitchRunAction.class) .setAgvNo(AgvNo) .setSerialNo(substring) .setVal(1) .bodySync((action) -> action.setPwd((short) -99)); nettyServerHandler.sendMessageToClient(clientId, agvAction); // 发送消息到客户端 handler.sendEmptyMessageDelayed(0, 100); } if (isFront2) { AgvAction agvAction = new AgvAction<>(SingleSwitchRunAction.class) .setAgvNo(AgvNo) .setSerialNo(substring) .setVal(2) .bodySync((action) -> action.setPwd((short) 99)); nettyServerHandler.sendMessageToClient(clientId, agvAction); // 发送消息到客户端 handler.sendEmptyMessageDelayed(0, 100); } if (isBack2) { AgvAction agvAction = new AgvAction<>(SingleSwitchRunAction.class) .setAgvNo(AgvNo) .setSerialNo(substring) .setVal(2) .bodySync((action) -> action.setPwd((short) -99)); nettyServerHandler.sendMessageToClient(clientId, agvAction); // 发送消息到客户端 handler.sendEmptyMessageDelayed(0, 100); } if (isFront3) { AgvAction agvAction = new AgvAction<>(SingleSwitchRunAction.class) .setAgvNo(AgvNo) .setSerialNo(substring) .setVal(3) .bodySync((action) -> action.setPwd((short) 99)); nettyServerHandler.sendMessageToClient(clientId, agvAction); // 发送消息到客户端 handler.sendEmptyMessageDelayed(0, 100); } if (isBack3) { AgvAction agvAction = new AgvAction<>(SingleSwitchRunAction.class) .setAgvNo(AgvNo) .setSerialNo(substring) .setVal(3) .bodySync((action) -> action.setPwd((short) -99)); nettyServerHandler.sendMessageToClient(clientId, agvAction); // 发送消息到客户端 handler.sendEmptyMessageDelayed(0, 100); } if (isFront4) { AgvAction agvAction = new AgvAction<>(SingleSwitchRunAction.class) .setAgvNo(AgvNo) .setSerialNo(substring) .setVal(4) .bodySync((action) -> action.setPwd((short) 99)); nettyServerHandler.sendMessageToClient(clientId, agvAction); // 发送消息到客户端 handler.sendEmptyMessageDelayed(0, 100); } if (isBack4) { AgvAction agvAction = new AgvAction<>(SingleSwitchRunAction.class) .setAgvNo(AgvNo) .setSerialNo(substring) .setVal(4) .bodySync((action) -> action.setPwd((short) -99)); nettyServerHandler.sendMessageToClient(clientId, agvAction); // 发送消息到客户端 handler.sendEmptyMessageDelayed(0, 100); } if (isFront5) { AgvAction agvAction = new AgvAction<>(SingleSwitchRunAction.class) .setAgvNo(AgvNo) .setSerialNo(substring) .setVal(5) .bodySync((action) -> action.setPwd((short) 99)); nettyServerHandler.sendMessageToClient(clientId, agvAction); // 发送消息到客户端 handler.sendEmptyMessageDelayed(0, 100); } if (isBack5) { AgvAction agvAction = new AgvAction<>(SingleSwitchRunAction.class) .setAgvNo(AgvNo) .setSerialNo(substring) .setVal(5) .bodySync((action) -> action.setPwd((short) -99)); nettyServerHandler.sendMessageToClient(clientId, agvAction); // 发送消息到客户端 handler.sendEmptyMessageDelayed(0, 100); } if (isFront6) { AgvAction agvAction = new AgvAction<>(SingleSwitchRunAction.class) .setAgvNo(AgvNo) .setSerialNo(substring) .setVal(6) .bodySync((action) -> action.setPwd((short) 99)); nettyServerHandler.sendMessageToClient(clientId, agvAction); // 发送消息到客户端 handler.sendEmptyMessageDelayed(0, 100); } if (isBack6) { AgvAction agvAction = new AgvAction<>(SingleSwitchRunAction.class) .setAgvNo(AgvNo) .setSerialNo(substring) .setVal(6) .bodySync((action) -> action.setPwd((short) -99)); nettyServerHandler.sendMessageToClient(clientId, agvAction); // 发送消息到客户端 handler.sendEmptyMessageDelayed(0, 100); } if (isFront7) { AgvAction agvAction = new AgvAction<>(SingleSwitchRunAction.class) .setAgvNo(AgvNo) .setSerialNo(substring) .setVal(7) .bodySync((action) -> action.setPwd((short) 99)); nettyServerHandler.sendMessageToClient(clientId, agvAction); // 发送消息到客户端 handler.sendEmptyMessageDelayed(0, 100); } if (isBack7) { AgvAction agvAction = new AgvAction<>(SingleSwitchRunAction.class) .setAgvNo(AgvNo) .setSerialNo(substring) .setVal(7) .bodySync((action) -> action.setPwd((short) -99)); nettyServerHandler.sendMessageToClient(clientId, agvAction); // 发送消息到客户端 handler.sendEmptyMessageDelayed(0, 100); } if (isFront8) { AgvAction agvAction = new AgvAction<>(SingleSwitchRunAction.class) .setAgvNo(AgvNo) .setSerialNo(substring) .setVal(8) .bodySync((action) -> action.setPwd((short) 99)); nettyServerHandler.sendMessageToClient(clientId, agvAction); // 发送消息到客户端 handler.sendEmptyMessageDelayed(0, 100); } if (isBack8) { AgvAction agvAction = new AgvAction<>(SingleSwitchRunAction.class) .setAgvNo(AgvNo) .setSerialNo(substring) .setVal(8) .bodySync((action) -> action.setPwd((short) -99)); nettyServerHandler.sendMessageToClient(clientId, agvAction); // 发送消息到客户端 handler.sendEmptyMessageDelayed(0, 100); } if (isFront9) { AgvAction agvAction = new AgvAction<>(SingleSwitchRunAction.class) .setAgvNo(AgvNo) .setSerialNo(substring) .setVal(9) .bodySync((action) -> action.setPwd((short) 99)); nettyServerHandler.sendMessageToClient(clientId, agvAction); // 发送消息到客户端 handler.sendEmptyMessageDelayed(0, 100); } if (isBack9) { AgvAction agvAction = new AgvAction<>(SingleSwitchRunAction.class) .setAgvNo(AgvNo) .setSerialNo(substring) .setVal(9) .bodySync((action) -> action.setPwd((short) -99)); nettyServerHandler.sendMessageToClient(clientId, agvAction); // 发送消息到客户端 handler.sendEmptyMessageDelayed(0, 100); } return false; } }); static String clientId; NettyServerHandler nettyServerHandler; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // 按钮震动 vibrator = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE); stopBtn = findViewById(R.id.btn_stop); // forceSwitchBtn = findViewById(R.id.btn_force_switch); goForwardBtn = findViewById(R.id.btn_go_forward); goBackwardBtn = findViewById(R.id.btn_go_backward); rotatopnLeftBtn = findViewById(R.id.btn_rotatopn_left); rotatopnRightBtn = findViewById(R.id.btn_rotatopn_right); modelSwitchBtn = findViewById(R.id.btn_model_switch); frontPaddleExtendBtn = findViewById(R.id.btn_front_paddle_extend); // 前拨杆 frontPaddleCollectBtn = findViewById(R.id.btn_front_paddle_collect); // 前拨杆 backPaddleExtendBtn = findViewById(R.id.btn_back_paddle_extend); // 后拨杆 backPaddleCollectBtn = findViewById(R.id.btn_back_paddle_collect); // 后拨杆 riseBtn = findViewById(R.id.btn_rise); dropBtn = findViewById(R.id.btn_drop); extendForkBtn = findViewById(R.id.btn_extend_fork); collectForkBtn = findViewById(R.id.btn_collect_fork); turnLeftBtn = findViewById(R.id.btn_turn_left); turnRightBtn = findViewById(R.id.btn_turn_right); bodySwitchBtn = findViewById(R.id.btn_body_switch); layout_bottom = findViewById(R.id.layout_bottom); layout_top = findViewById(R.id.layout_top); layout_single = findViewById(R.id.layout_single); layout_reset = findViewById(R.id.layout_reset); switchBtn1 = findViewById(R.id.switch1); switchBtn2 = findViewById(R.id.switch2); switchBtn3 = findViewById(R.id.switch3); switchBtn4 = findViewById(R.id.switch4); switchBtn5 = findViewById(R.id.switch5); switchBtn6 = findViewById(R.id.switch6); switchBtn7 = findViewById(R.id.switch7); switchBtn8 = findViewById(R.id.switch8); switchBtn9 = findViewById(R.id.switch9); axleFrontBtn1 =findViewById(R.id.btn_axle_1_front); axleBackBtn1 =findViewById(R.id.btn_axle_1_back); axleFrontBtn2 =findViewById(R.id.btn_axle_2_front); axleBackBtn2 =findViewById(R.id.btn_axle_2_back); axleFrontBtn3 =findViewById(R.id.btn_axle_3_front); axleBackBtn3 =findViewById(R.id.btn_axle_3_back); axleFrontBtn4 =findViewById(R.id.btn_axle_4_front); axleBackBtn4 =findViewById(R.id.btn_axle_4_back); axleFrontBtn5 =findViewById(R.id.btn_axle_5_front); axleBackBtn5 =findViewById(R.id.btn_axle_5_back); axleFrontBtn6 =findViewById(R.id.btn_axle_6_front); axleBackBtn6 =findViewById(R.id.btn_axle_6_back); axleFrontBtn7 =findViewById(R.id.btn_axle_7_front); axleBackBtn7 =findViewById(R.id.btn_axle_7_back); axleFrontBtn8 =findViewById(R.id.btn_axle_8_front); axleBackBtn8 =findViewById(R.id.btn_axle_8_back); axleFrontBtn9 =findViewById(R.id.btn_axle_9_front); axleBackBtn9 =findViewById(R.id.btn_axle_9_back); cameraResetBtn = findViewById(R.id.btn_camera_reset); loadResetBtn = findViewById(R.id.btn_load_reset); forkResetBtn = findViewById(R.id.btn_fork_reset); gyroResetBtn = findViewById(R.id.btn_gyro_reset); liftResetBtn = findViewById(R.id.btn_lift_reset); allResetBtn = findViewById(R.id.btn_all_reset); Intent intent = getIntent(); if (intent != null) { String newClientId = intent.getStringExtra("clientId"); if (newClientId != null) { clientId = newClientId; AgvNo = intent.getStringExtra("agvNo"); } } Log.i("message1",clientId); // 前拨杆伸出 frontPaddleExtendBtn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (vibrator != null && vibrator.hasVibrator()) { vibrator.vibrate(500); } String substring = String.valueOf(new SnowflakeIdWorker().nextId()).substring(0,16); AgvAction agvAction = new AgvAction<>(FrontPaddle.class) .setAgvNo(AgvNo) .setSerialNo(substring) .setVal(1) .bodySync((action) -> action.setPwd((short) 1)); nettyServerHandler.sendMessageToClient(clientId, agvAction); // 发送消息到客户端 } }); // 前拨杆收起 frontPaddleCollectBtn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (vibrator != null && vibrator.hasVibrator()) { vibrator.vibrate(500); } String substring = String.valueOf(new SnowflakeIdWorker().nextId()).substring(0,16); AgvAction agvAction = new AgvAction<>(FrontPaddle.class) .setAgvNo(AgvNo) .setSerialNo(substring) .setVal(1) .bodySync((action) -> action.setPwd((short) 0)); nettyServerHandler.sendMessageToClient(clientId, agvAction); // 发送消息到客户端 } }); // 后拨杆伸出 backPaddleExtendBtn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (vibrator != null && vibrator.hasVibrator()) { vibrator.vibrate(500); } String substring = String.valueOf(new SnowflakeIdWorker().nextId()).substring(0,16); AgvAction agvAction = new AgvAction<>(BackPaddle.class) .setAgvNo(AgvNo) .setSerialNo(substring) .setVal(1) .bodySync((action) -> action.setPwd((short) 1)); nettyServerHandler.sendMessageToClient(clientId, agvAction); // 发送消息到客户端 } }); // 后拨杆收起 backPaddleCollectBtn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (vibrator != null && vibrator.hasVibrator()) { vibrator.vibrate(500); } String substring = String.valueOf(new SnowflakeIdWorker().nextId()).substring(0,16); AgvAction agvAction = new AgvAction<>(BackPaddle.class) .setAgvNo(AgvNo) .setSerialNo(substring) .setVal(1) .bodySync((action) -> action.setPwd((short) 0)); nettyServerHandler.sendMessageToClient(clientId, agvAction); // 发送消息到客户端 } }); // 上升 riseBtn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (vibrator != null && vibrator.hasVibrator()) { vibrator.vibrate(500); } if (liftHeight <= 3200) { String substring = String.valueOf(new SnowflakeIdWorker().nextId()).substring(0,16); AgvAction agvAction = new AgvAction<>(HandLift.class) .setAgvNo(AgvNo) .setSerialNo(substring) .setVal(1) .bodySync((action) -> action.setPwd((short) liftHeight)); nettyServerHandler.sendMessageToClient(clientId, agvAction); // 发送消息到客户端 liftHeight += 100; } else { DialogUtil.showAlertDialog(MainActivity.this, "提示", "已超最大值!"); } } }); // 下降 dropBtn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (vibrator != null && vibrator.hasVibrator()) { vibrator.vibrate(500); } if (liftHeight >= 400) { String substring = String.valueOf(new SnowflakeIdWorker().nextId()).substring(0,16); AgvAction agvAction = new AgvAction<>(HandLift.class) .setAgvNo(AgvNo) .setSerialNo(substring) .setVal(1) .bodySync((action) -> action.setPwd((short) liftHeight)); nettyServerHandler.sendMessageToClient(clientId, agvAction); // 发送消息到客户端 liftHeight -= 100; } else { DialogUtil.showAlertDialog(MainActivity.this, "提示", "已超最小值!"); } } }); // 伸出 extendForkBtn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (vibrator != null && vibrator.hasVibrator()) { vibrator.vibrate(500); } if (extendWidth <= 450) { String substring = String.valueOf(new SnowflakeIdWorker().nextId()).substring(0,16); AgvAction agvAction = new AgvAction<>(HandExtendCollect.class) .setAgvNo(AgvNo) .setSerialNo(substring) .setVal(1) .bodySync((action) -> action.setPwd((short) extendWidth)); nettyServerHandler.sendMessageToClient(clientId, agvAction); // 发送消息到客户端 extendWidth += 50; } else { DialogUtil.showAlertDialog(MainActivity.this, "提示", "已超最大值!"); } } }); // 收叉 collectForkBtn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (vibrator != null && vibrator.hasVibrator()) { vibrator.vibrate(500); } if (extendWidth >= -450) { String substring = String.valueOf(new SnowflakeIdWorker().nextId()).substring(0,16); AgvAction agvAction = new AgvAction<>(HandExtendCollect.class) .setAgvNo(AgvNo) .setSerialNo(substring) .setVal(1) .bodySync((action) -> action.setPwd((short) extendWidth)); nettyServerHandler.sendMessageToClient(clientId, agvAction); // 发送消息到客户端户端 extendWidth -= 50; } else { DialogUtil.showAlertDialog(MainActivity.this, "提示", "已超最大值!"); } } }); // 左旋 turnLeftBtn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (vibrator != null && vibrator.hasVibrator()) { vibrator.vibrate(500); } if (angle <= 91) { String substring = String.valueOf(new SnowflakeIdWorker().nextId()).substring(0,16); AgvAction agvAction = new AgvAction<>(HandForkRotatopn.class) .setAgvNo(AgvNo) .setSerialNo(substring) .setVal(1) .bodySync((action) -> action.setPwd((short) 21)); nettyServerHandler.sendMessageToClient(clientId, agvAction); // 发送消息到客户端 angle += 7; } else { DialogUtil.showAlertDialog(MainActivity.this, "提示", "已超最大值!"); } } }); // 右旋 turnRightBtn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (vibrator != null && vibrator.hasVibrator()) { vibrator.vibrate(500); } if (angle >= -91) { String substring = String.valueOf(new SnowflakeIdWorker().nextId()).substring(0,16); AgvAction agvAction = new AgvAction<>(HandForkRotatopn.class) .setAgvNo(AgvNo) .setSerialNo(substring) .setVal(1) .bodySync((action) -> action.setPwd((short) 21)); nettyServerHandler.sendMessageToClient(clientId, agvAction); // 发送消息到客户端 angle -= 7; } else { DialogUtil.showAlertDialog(MainActivity.this, "提示", "已超最小值!"); } } }); // 相机复位按钮 cameraResetBtn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (vibrator != null && vibrator.hasVibrator()) { vibrator.vibrate(500); } String substring = String.valueOf(new SnowflakeIdWorker().nextId()).substring(0,16); AgvAction agvAction = new AgvAction<>(CameraResetAction.class) .setAgvNo(AgvNo) .setSerialNo(substring) .setVal(1) .bodySync((action) -> action.setPwd((short) 1)); nettyServerHandler.sendMessageToClient(clientId, agvAction); // 发送消息到客户端 } }); // 路径清除按钮 loadResetBtn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (vibrator != null && vibrator.hasVibrator()) { vibrator.vibrate(500); } String substring = String.valueOf(new SnowflakeIdWorker().nextId()).substring(0,16); AgvAction agvAction = new AgvAction<>(LoadResetAction.class) .setAgvNo(AgvNo) .setSerialNo(substring) .setVal(1) .bodySync((action) -> action.setPwd((short) 1)); nettyServerHandler.sendMessageToClient(clientId, agvAction); // 发送消息到客户端 } }); // 货叉归零按钮 forkResetBtn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (vibrator != null && vibrator.hasVibrator()) { vibrator.vibrate(500); } String substring = String.valueOf(new SnowflakeIdWorker().nextId()).substring(0,16); AgvAction agvAction = new AgvAction<>(ForkResetAction.class) .setAgvNo(AgvNo) .setSerialNo(substring) .setVal(1) .bodySync((action) -> action.setPwd((short) 1)); nettyServerHandler.sendMessageToClient(clientId, agvAction); // 发送消息到客户端 } }); // 陀螺仪复位按钮 gyroResetBtn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (vibrator != null && vibrator.hasVibrator()) { vibrator.vibrate(500); } String substring = String.valueOf(new SnowflakeIdWorker().nextId()).substring(0,16); AgvAction agvAction = new AgvAction<>(GyroResetAction.class) .setAgvNo(AgvNo) .setSerialNo(substring) .setVal(1) .bodySync((action) -> action.setPwd((short) 1)); nettyServerHandler.sendMessageToClient(clientId, agvAction); // 发送消息到客户端 } }); // 升降归零按钮 liftResetBtn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (vibrator != null && vibrator.hasVibrator()) { vibrator.vibrate(500); } String substring = String.valueOf(new SnowflakeIdWorker().nextId()).substring(0,16); AgvAction agvAction = new AgvAction<>(LiftResetAction.class) .setAgvNo(AgvNo) .setSerialNo(substring) .setVal(1) .bodySync((action) -> action.setPwd((short) 1)); nettyServerHandler.sendMessageToClient(clientId, agvAction); // 发送消息到客户端 } }); // 整机复位按钮 allResetBtn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (vibrator != null && vibrator.hasVibrator()) { vibrator.vibrate(500); } String substring = String.valueOf(new SnowflakeIdWorker().nextId()).substring(0,16); AgvAction agvAction = new AgvAction<>(AllResetAction.class) .setAgvNo(AgvNo) .setSerialNo(substring) .setVal(1) .bodySync((action) -> action.setPwd((short) 1)); nettyServerHandler.sendMessageToClient(clientId, agvAction); // 发送消息到客户端 } }); // 手自动模式开关 modelSwitchBtn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (vibrator != null && vibrator.hasVibrator()) { vibrator.vibrate(500); } boolean result = false; String substring = String.valueOf(new SnowflakeIdWorker().nextId()).substring(0,16); if (isAuto) { AgvAction agvAction = new AgvAction<>(HandInAction.class) .setAgvNo(AgvNo) .setSerialNo(substring) .setVal(autoVal) .bodySync((action) -> action.setPwd((short) 21)); nettyServerHandler.sendMessageToClient(clientId, agvAction); // 发送消息到客户端 result = true; isAuto = !isAuto; } else { AgvAction agvAction = new AgvAction<>(HandOutAction.class) .setAgvNo(AgvNo) .setSerialNo(substring) .setVal(autoVal) .bodySync((action) -> action.setPwd((short) 21)); nettyServerHandler.sendMessageToClient(clientId, agvAction); // 发送消息到客户端 result = true; isAuto = !isAuto; } // long timestamp = System.currentTimeMillis(); // while (System.currentTimeMillis() - timestamp < 5000) { // // Object o = map.get(substring); // // if (null != o) { // result = true; // isAuto = !isAuto; // map.remove(o); // break; // } // } if (result) { // alert ok 修改按钮样式 名称 if (isAuto) { modelSwitchBtn.setText("自动模式"); autoVal = 0; // modelSwitchBtn.setBackgroundTintList(ColorStateList.valueOf(Color.RED)); } else { autoVal = 1; modelSwitchBtn.setText("手动模式"); } } else { // throw new TimeoutException("超时"); DialogUtil.showAlertDialog(MainActivity.this, "提示", "请求应答超时!"); } } }); switchBtn1.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { @Override public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { if (vibrator != null && vibrator.hasVibrator()) { vibrator.vibrate(500); } Log.d(TAG, "onCheckedChanged: " + isChecked); String substring = String.valueOf(new SnowflakeIdWorker().nextId()).substring(0, 16); if (isChecked) { AgvAction agvAction = new AgvAction<>(SingleSwitchAction.class) .setAgvNo(AgvNo) .setSerialNo(substring) .setVal(1) .bodySync((action) -> action.setPwd((short) 1)); nettyServerHandler.sendMessageToClient(clientId, agvAction); // 发送消息到客户端 axleFrontBtn1.setVisibility(View.VISIBLE); axleBackBtn1.setVisibility(View.VISIBLE); } else { AgvAction agvAction = new AgvAction<>(SingleSwitchAction.class) .setAgvNo(AgvNo) .setSerialNo(substring) .setVal(1) .bodySync((action) -> action.setPwd((short) 0)); nettyServerHandler.sendMessageToClient(clientId, agvAction); // 发送消息到客户端 axleFrontBtn1.setVisibility(View.GONE); axleBackBtn1.setVisibility(View.GONE); } } }); switchBtn2.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { @Override public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { Log.d(TAG, "onCheckedChanged: " + isChecked); String substring = String.valueOf(new SnowflakeIdWorker().nextId()).substring(0, 16); if (isChecked) { if (vibrator != null && vibrator.hasVibrator()) { vibrator.vibrate(500); } AgvAction agvAction = new AgvAction<>(SingleSwitchAction.class) .setAgvNo(AgvNo) .setSerialNo(substring) .setVal(2) .bodySync((action) -> action.setPwd((short) 1)); nettyServerHandler.sendMessageToClient(clientId, agvAction); // 发送消息到客户端 axleFrontBtn2.setVisibility(View.VISIBLE); axleBackBtn2.setVisibility(View.VISIBLE); } else { AgvAction agvAction = new AgvAction<>(SingleSwitchAction.class) .setAgvNo(AgvNo) .setSerialNo(substring) .setVal(2) .bodySync((action) -> action.setPwd((short) 0)); nettyServerHandler.sendMessageToClient(clientId, agvAction); // 发送消息到客户端 axleFrontBtn2.setVisibility(View.GONE); axleBackBtn2.setVisibility(View.GONE); } } }); switchBtn3.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { @Override public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { Log.d(TAG, "onCheckedChanged: " + isChecked); String substring = String.valueOf(new SnowflakeIdWorker().nextId()).substring(0, 16); if (isChecked) { if (vibrator != null && vibrator.hasVibrator()) { vibrator.vibrate(500); } AgvAction agvAction = new AgvAction<>(SingleSwitchAction.class) .setAgvNo(AgvNo) .setSerialNo(substring) .setVal(3) .bodySync((action) -> action.setPwd((short) 1)); nettyServerHandler.sendMessageToClient(clientId, agvAction); // 发送消息到客户端 axleFrontBtn3.setVisibility(View.VISIBLE); axleBackBtn3.setVisibility(View.VISIBLE); } else { AgvAction agvAction = new AgvAction<>(SingleSwitchAction.class) .setAgvNo(AgvNo) .setSerialNo(substring) .setVal(3) .bodySync((action) -> action.setPwd((short) 0)); nettyServerHandler.sendMessageToClient(clientId, agvAction); // 发送消息到客户端 axleFrontBtn3.setVisibility(View.GONE); axleBackBtn3.setVisibility(View.GONE); } } }); switchBtn4.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { @Override public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { Log.d(TAG, "onCheckedChanged: " + isChecked); String substring = String.valueOf(new SnowflakeIdWorker().nextId()).substring(0, 16); if (isChecked) { if (vibrator != null && vibrator.hasVibrator()) { vibrator.vibrate(500); } AgvAction agvAction = new AgvAction<>(SingleSwitchAction.class) .setAgvNo(AgvNo) .setSerialNo(substring) .setVal(4) .bodySync((action) -> action.setPwd((short) 1)); nettyServerHandler.sendMessageToClient(clientId, agvAction); // 发送消息到客户端 axleFrontBtn4.setVisibility(View.VISIBLE); axleBackBtn4.setVisibility(View.VISIBLE); } else { AgvAction agvAction = new AgvAction<>(SingleSwitchAction.class) .setAgvNo(AgvNo) .setSerialNo(substring) .setVal(4) .bodySync((action) -> action.setPwd((short) 0)); nettyServerHandler.sendMessageToClient(clientId, agvAction); // 发送消息到客户端 axleFrontBtn4.setVisibility(View.GONE); axleBackBtn4.setVisibility(View.GONE); } } }); switchBtn5.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { @Override public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { Log.d(TAG, "onCheckedChanged: " + isChecked); String substring = String.valueOf(new SnowflakeIdWorker().nextId()).substring(0, 16); if (isChecked) { if (vibrator != null && vibrator.hasVibrator()) { vibrator.vibrate(500); } AgvAction agvAction = new AgvAction<>(SingleSwitchAction.class) .setAgvNo(AgvNo) .setSerialNo(substring) .setVal(5) .bodySync((action) -> action.setPwd((short) 1)); nettyServerHandler.sendMessageToClient(clientId, agvAction); // 发送消息到客户端 axleFrontBtn5.setVisibility(View.VISIBLE); axleBackBtn5.setVisibility(View.VISIBLE); } else { AgvAction agvAction = new AgvAction<>(SingleSwitchAction.class) .setAgvNo(AgvNo) .setSerialNo(substring) .setVal(5) .bodySync((action) -> action.setPwd((short) 0)); nettyServerHandler.sendMessageToClient(clientId, agvAction); // 发送消息到客户端 axleFrontBtn5.setVisibility(View.GONE); axleBackBtn5.setVisibility(View.GONE); } } }); switchBtn6.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { @Override public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { Log.d(TAG, "onCheckedChanged: " + isChecked); String substring = String.valueOf(new SnowflakeIdWorker().nextId()).substring(0, 16); if (isChecked) { if (vibrator != null && vibrator.hasVibrator()) { vibrator.vibrate(500); } AgvAction agvAction = new AgvAction<>(SingleSwitchAction.class) .setAgvNo(AgvNo) .setSerialNo(substring) .setVal(6) .bodySync((action) -> action.setPwd((short) 1)); nettyServerHandler.sendMessageToClient(clientId, agvAction); // 发送消息到客户端 axleFrontBtn6.setVisibility(View.VISIBLE); axleBackBtn6.setVisibility(View.VISIBLE); } else { AgvAction agvAction = new AgvAction<>(SingleSwitchAction.class) .setAgvNo(AgvNo) .setSerialNo(substring) .setVal(6) .bodySync((action) -> action.setPwd((short) 0)); nettyServerHandler.sendMessageToClient(clientId, agvAction); // 发送消息到客户端 axleFrontBtn6.setVisibility(View.GONE); axleBackBtn6.setVisibility(View.GONE); } } }); switchBtn7.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { @Override public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { Log.d(TAG, "onCheckedChanged: " + isChecked); String substring = String.valueOf(new SnowflakeIdWorker().nextId()).substring(0, 16); if (isChecked) { if (vibrator != null && vibrator.hasVibrator()) { vibrator.vibrate(500); } AgvAction agvAction = new AgvAction<>(SingleSwitchAction.class) .setAgvNo(AgvNo) .setSerialNo(substring) .setVal(7) .bodySync((action) -> action.setPwd((short) 1)); nettyServerHandler.sendMessageToClient(clientId, agvAction); // 发送消息到客户端 axleFrontBtn7.setVisibility(View.VISIBLE); axleBackBtn7.setVisibility(View.VISIBLE); } else { AgvAction agvAction = new AgvAction<>(SingleSwitchAction.class) .setAgvNo(AgvNo) .setSerialNo(substring) .setVal(7) .bodySync((action) -> action.setPwd((short) 0)); nettyServerHandler.sendMessageToClient(clientId, agvAction); // 发送消息到客户端 axleFrontBtn7.setVisibility(View.GONE); axleBackBtn7.setVisibility(View.GONE); } } }); switchBtn8.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { @Override public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { Log.d(TAG, "onCheckedChanged: " + isChecked); String substring = String.valueOf(new SnowflakeIdWorker().nextId()).substring(0, 16); if (isChecked) { if (vibrator != null && vibrator.hasVibrator()) { vibrator.vibrate(500); } AgvAction agvAction = new AgvAction<>(SingleSwitchAction.class) .setAgvNo(AgvNo) .setSerialNo(substring) .setVal(8) .bodySync((action) -> action.setPwd((short) 1)); nettyServerHandler.sendMessageToClient(clientId, agvAction); // 发送消息到客户端 axleFrontBtn8.setVisibility(View.VISIBLE); axleBackBtn8.setVisibility(View.VISIBLE); } else { AgvAction agvAction = new AgvAction<>(SingleSwitchAction.class) .setAgvNo(AgvNo) .setSerialNo(substring) .setVal(8) .bodySync((action) -> action.setPwd((short) 0)); nettyServerHandler.sendMessageToClient(clientId, agvAction); // 发送消息到客户端 axleFrontBtn8.setVisibility(View.GONE); axleBackBtn8.setVisibility(View.GONE); } } }); switchBtn9.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { @Override public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { Log.d(TAG, "onCheckedChanged: " + isChecked); String substring = String.valueOf(new SnowflakeIdWorker().nextId()).substring(0, 16); if (isChecked) { if (vibrator != null && vibrator.hasVibrator()) { vibrator.vibrate(500); } AgvAction agvAction = new AgvAction<>(SingleSwitchAction.class) .setAgvNo(AgvNo) .setSerialNo(substring) .setVal(9) .bodySync((action) -> action.setPwd((short) 1)); nettyServerHandler.sendMessageToClient(clientId, agvAction); // 发送消息到客户端 axleFrontBtn9.setVisibility(View.VISIBLE); axleBackBtn9.setVisibility(View.VISIBLE); } else { AgvAction agvAction = new AgvAction<>(SingleSwitchAction.class) .setAgvNo(AgvNo) .setSerialNo(substring) .setVal(9) .bodySync((action) -> action.setPwd((short) 0)); nettyServerHandler.sendMessageToClient(clientId, agvAction); // 发送消息到客户端 axleFrontBtn9.setVisibility(View.GONE); axleBackBtn9.setVisibility(View.GONE); } } }); // 点动按钮 stopBtn.setOnTouchListener(new CarTouchButton()); goForwardBtn.setOnTouchListener(new CarTouchButton()); goBackwardBtn.setOnTouchListener(new CarTouchButton()); rotatopnLeftBtn.setOnTouchListener(new CarTouchButton()); rotatopnRightBtn.setOnTouchListener(new CarTouchButton()); axleFrontBtn1.setOnTouchListener(new CarTouchButton()); axleBackBtn1.setOnTouchListener(new CarTouchButton()); axleFrontBtn2.setOnTouchListener(new CarTouchButton()); axleBackBtn2.setOnTouchListener(new CarTouchButton()); axleFrontBtn3.setOnTouchListener(new CarTouchButton()); axleBackBtn3.setOnTouchListener(new CarTouchButton()); axleFrontBtn4.setOnTouchListener(new CarTouchButton()); axleBackBtn4.setOnTouchListener(new CarTouchButton()); axleFrontBtn5.setOnTouchListener(new CarTouchButton()); axleBackBtn5.setOnTouchListener(new CarTouchButton()); axleFrontBtn6.setOnTouchListener(new CarTouchButton()); axleBackBtn6.setOnTouchListener(new CarTouchButton()); axleFrontBtn7.setOnTouchListener(new CarTouchButton()); axleBackBtn7.setOnTouchListener(new CarTouchButton()); axleFrontBtn8.setOnTouchListener(new CarTouchButton()); axleBackBtn8.setOnTouchListener(new CarTouchButton()); axleFrontBtn9.setOnTouchListener(new CarTouchButton()); axleBackBtn9.setOnTouchListener(new CarTouchButton()); } private class CarTouchButton implements View.OnTouchListener { @Override public boolean onTouch(View view, MotionEvent motionEvent) { if (view.getId() == R.id.btn_go_forward) { // 前进 if (motionEvent.getAction() == KeyEvent.ACTION_DOWN) { isGoForward = true; handler.sendEmptyMessage(0); } else if (motionEvent.getAction() == KeyEvent.ACTION_UP) { isGoForward = false; } } else if (view.getId() == R.id.btn_go_backward) { // 后退 if (motionEvent.getAction() == KeyEvent.ACTION_DOWN) { isGoBackward = true; handler.sendEmptyMessage(0); } else if (motionEvent.getAction() == KeyEvent.ACTION_UP) { isGoBackward = false; } } else if (view.getId() == R.id.btn_rotatopn_left) { // 左旋转 if (motionEvent.getAction() == KeyEvent.ACTION_DOWN) { isRotatopnLeft = true; handler.sendEmptyMessage(0); } else if (motionEvent.getAction() == KeyEvent.ACTION_UP) { isRotatopnLeft = false; } } else if (view.getId() == R.id.btn_rotatopn_right) { // 右旋转 if (motionEvent.getAction() == KeyEvent.ACTION_DOWN) { isRotatopnRight = true; handler.sendEmptyMessage(0); } else if (motionEvent.getAction() == KeyEvent.ACTION_UP) { isRotatopnRight = false; } } else if (view.getId() == R.id.btn_axle_1_front) { // 轴动按钮 if (motionEvent.getAction() == KeyEvent.ACTION_DOWN) { isFront1 = true; handler.sendEmptyMessage(0); } else if (motionEvent.getAction() == KeyEvent.ACTION_UP) { isFront1 = false; } } else if (view.getId() == R.id.btn_axle_1_back) { // 轴动按钮 if (motionEvent.getAction() == KeyEvent.ACTION_DOWN) { isBack1 = true; handler.sendEmptyMessage(0); } else if (motionEvent.getAction() == KeyEvent.ACTION_UP) { isBack1 = false; } } else if (view.getId() == R.id.btn_axle_2_front) { // 轴动按钮 if (motionEvent.getAction() == KeyEvent.ACTION_DOWN) { isFront2 = true; handler.sendEmptyMessage(0); } else if (motionEvent.getAction() == KeyEvent.ACTION_UP) { isFront2 = false; } } else if (view.getId() == R.id.btn_axle_2_back) { // 轴动按钮 if (motionEvent.getAction() == KeyEvent.ACTION_DOWN) { isBack2 = true; handler.sendEmptyMessage(0); } else if (motionEvent.getAction() == KeyEvent.ACTION_UP) { isBack2 = false; } } else if (view.getId() == R.id.btn_axle_3_front) { // 轴动按钮 if (motionEvent.getAction() == KeyEvent.ACTION_DOWN) { isFront3 = true; handler.sendEmptyMessage(0); } else if (motionEvent.getAction() == KeyEvent.ACTION_UP) { isFront3 = false; } } else if (view.getId() == R.id.btn_axle_3_back) { // 轴动按钮 if (motionEvent.getAction() == KeyEvent.ACTION_DOWN) { isBack3 = true; handler.sendEmptyMessage(0); } else if (motionEvent.getAction() == KeyEvent.ACTION_UP) { isBack3 = false; } } else if (view.getId() == R.id.btn_axle_4_front) { // 轴动按钮 if (motionEvent.getAction() == KeyEvent.ACTION_DOWN) { isFront4 = true; handler.sendEmptyMessage(0); } else if (motionEvent.getAction() == KeyEvent.ACTION_UP) { isFront4 = false; } } else if (view.getId() == R.id.btn_axle_4_back) { // 轴动按钮 if (motionEvent.getAction() == KeyEvent.ACTION_DOWN) { isBack4 = true; handler.sendEmptyMessage(0); } else if (motionEvent.getAction() == KeyEvent.ACTION_UP) { isBack4 = false; } } else if (view.getId() == R.id.btn_axle_5_front) { // 轴动按钮 if (motionEvent.getAction() == KeyEvent.ACTION_DOWN) { isFront5 = true; handler.sendEmptyMessage(0); } else if (motionEvent.getAction() == KeyEvent.ACTION_UP) { isFront5 = false; } } else if (view.getId() == R.id.btn_axle_5_back) { // 轴动按钮 if (motionEvent.getAction() == KeyEvent.ACTION_DOWN) { isBack5 = true; handler.sendEmptyMessage(0); } else if (motionEvent.getAction() == KeyEvent.ACTION_UP) { isBack5 = false; } } else if (view.getId() == R.id.btn_axle_6_front) { // 轴动按钮 if (motionEvent.getAction() == KeyEvent.ACTION_DOWN) { isFront6 = true; handler.sendEmptyMessage(0); } else if (motionEvent.getAction() == KeyEvent.ACTION_UP) { isFront6 = false; } } else if (view.getId() == R.id.btn_axle_6_back) { // 轴动按钮 if (motionEvent.getAction() == KeyEvent.ACTION_DOWN) { isBack6 = true; handler.sendEmptyMessage(0); } else if (motionEvent.getAction() == KeyEvent.ACTION_UP) { isBack6 = false; } } else if (view.getId() == R.id.btn_axle_7_front) { // 轴动按钮 if (motionEvent.getAction() == KeyEvent.ACTION_DOWN) { isFront7 = true; handler.sendEmptyMessage(0); } else if (motionEvent.getAction() == KeyEvent.ACTION_UP) { isFront7 = false; } } else if (view.getId() == R.id.btn_axle_7_back) { // 轴动按钮 if (motionEvent.getAction() == KeyEvent.ACTION_DOWN) { isBack7 = true; handler.sendEmptyMessage(0); } else if (motionEvent.getAction() == KeyEvent.ACTION_UP) { isBack7 = false; } } else if (view.getId() == R.id.btn_axle_8_front) { // 轴动按钮 if (motionEvent.getAction() == KeyEvent.ACTION_DOWN) { isFront8 = true; handler.sendEmptyMessage(0); } else if (motionEvent.getAction() == KeyEvent.ACTION_UP) { isFront8 = false; } } else if (view.getId() == R.id.btn_axle_8_back) { // 轴动按钮 if (motionEvent.getAction() == KeyEvent.ACTION_DOWN) { isBack8 = true; handler.sendEmptyMessage(0); } else if (motionEvent.getAction() == KeyEvent.ACTION_UP) { isBack8 = false; } } else if (view.getId() == R.id.btn_axle_9_front) { // 轴动按钮 if (motionEvent.getAction() == KeyEvent.ACTION_DOWN) { isFront9 = true; handler.sendEmptyMessage(0); } else if (motionEvent.getAction() == KeyEvent.ACTION_UP) { isFront9 = false; } } else if (view.getId() == R.id.btn_axle_9_back) { // 轴动按钮 if (motionEvent.getAction() == KeyEvent.ACTION_DOWN) { isBack9 = true; handler.sendEmptyMessage(0); } else if (motionEvent.getAction() == KeyEvent.ACTION_UP) { isBack9 = false; } } return false; } } private boolean isVisble = true; // 货叉等按钮 public void switchover(View view) { if (isVisble) { layout_bottom.setVisibility(View.GONE); layout_top.setVisibility(View.VISIBLE); bodySwitchBtn.setText("货叉"); } else { layout_bottom.setVisibility(View.VISIBLE); layout_top.setVisibility(View.GONE); bodySwitchBtn.setText("底盘"); } isVisble = !isVisble; layout_single.setVisibility(View.GONE); layout_reset.setVisibility(View.GONE); } // 单轴使能按钮 public void switchSingle(View view) { layout_bottom.setVisibility(View.GONE); layout_top.setVisibility(View.GONE); layout_single.setVisibility(View.VISIBLE); layout_reset.setVisibility(View.GONE); } // 复位按钮 public void switchRest(View view) { layout_bottom.setVisibility(View.GONE); layout_top.setVisibility(View.GONE); layout_single.setVisibility(View.GONE); layout_reset.setVisibility(View.VISIBLE); } @Override protected void onDestroy() { super.onDestroy(); //SocketManager.getInstance().disconnect(); //SocketManager.getInstance().stopServer(); //socketManager.stopServer(); // 停止服务器 } public static void upClient(String newClientId) { clientId = newClientId; } }