package com.example.agvcontroller;
|
|
import androidx.appcompat.app.AppCompatActivity;
|
import androidx.recyclerview.widget.RecyclerView;
|
|
import android.content.Context;
|
import android.content.Intent;
|
import android.content.res.ColorStateList;
|
import android.graphics.Color;
|
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.RelativeLayout;
|
|
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.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<String, Object> map = new ConcurrentHashMap();
|
public static final Map<String, Object> car_num = new ConcurrentHashMap();
|
|
private RecyclerView recyclerView;
|
private ItemAdapter itemAdapter;
|
private List<Item> 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 Button bodySwitchBtn; // 底盘/货叉切换
|
private Socket socket;
|
private String AgvNo = "12";
|
private RelativeLayout layout_bottom;
|
private RelativeLayout layout_top;
|
private RelativeLayout 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 isFrontPaddleExtendBtn = false;
|
private boolean isFrontPaddleCollectBtn = false;
|
private boolean isBackPaddleExtendBtn = false;
|
private boolean isBackPaddleCollectBtn = false;
|
private boolean isRiseBtn = false;
|
private boolean isDropBtn = false;
|
private boolean isExtendForkBtn = false;
|
private boolean isCollectForkBtn = false;
|
private boolean isTurnLeftBtn = false;
|
private boolean isTurnRightBtn = false;
|
|
|
|
|
|
|
// 底盘前进、后退、左旋转、右旋转
|
private Handler handler = new Handler(new Handler.Callback() {
|
@Override
|
public boolean handleMessage(Message msg) {
|
if (isGoForward) {
|
String substring = String.valueOf(new SnowflakeIdWorker().nextId()).substring(0,16);
|
AgvAction agvAction = new AgvAction<>(ForwardBackAction.class)
|
.setAgvNo(AgvNo)
|
.setSerialNo(substring)
|
.setVal(1)
|
.bodySync((action) -> action.setPwd((short) 10));
|
nettyServerHandler.sendMessageToClient(clientId, agvAction); // 发送消息到客户端
|
handler.sendEmptyMessageDelayed(0, 100); // 100ms 后发送下一条消息
|
}
|
if (isGoBackward) {
|
String substring = String.valueOf(new SnowflakeIdWorker().nextId()).substring(0,16);
|
AgvAction agvAction = new AgvAction<>(ForwardBackAction.class)
|
.setAgvNo(AgvNo)
|
.setSerialNo(substring)
|
.setVal(1)
|
.bodySync((action) -> action.setPwd((short) -10));
|
nettyServerHandler.sendMessageToClient(clientId, agvAction); // 发送消息到客户端
|
handler.sendEmptyMessageDelayed(0, 100);
|
}
|
if (isRotatopnRight) {
|
String substring = String.valueOf(new SnowflakeIdWorker().nextId()).substring(0,16);
|
AgvAction agvAction = new AgvAction<>(RotatopnLeftRight.class)
|
.setAgvNo(AgvNo)
|
.setSerialNo(substring)
|
.setVal(1)
|
.bodySync((action) -> action.setPwd((short) 10));
|
nettyServerHandler.sendMessageToClient(clientId, agvAction); // 发送消息到客户端
|
handler.sendEmptyMessageDelayed(0, 100);
|
}
|
if (isRotatopnLeft) {
|
String substring = String.valueOf(new SnowflakeIdWorker().nextId()).substring(0,16);
|
AgvAction agvAction = new AgvAction<>(RotatopnLeftRight.class)
|
.setAgvNo(AgvNo)
|
.setSerialNo(substring)
|
.setVal(1)
|
.bodySync((action) -> action.setPwd((short) -10));
|
nettyServerHandler.sendMessageToClient(clientId, agvAction); // 发送消息到客户端
|
handler.sendEmptyMessageDelayed(0, 100);
|
}
|
|
// // 前拨杆伸
|
// if (isFrontPaddleExtendBtn) {
|
// 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); // 发送消息到客户端
|
// handler.sendEmptyMessageDelayed(0, 100);
|
// }
|
// // 前拨杆收
|
// if (isFrontPaddleCollectBtn) {
|
// 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); // 发送消息到客户端
|
// handler.sendEmptyMessageDelayed(0, 100);
|
// }
|
// // 后拨杆伸
|
// if (isBackPaddleExtendBtn) {
|
// 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); // 发送消息到客户端
|
// handler.sendEmptyMessageDelayed(0, 100);
|
// }
|
// // 后拨杆收
|
// if (isBackPaddleCollectBtn) {
|
// 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); // 发送消息到客户端
|
// handler.sendEmptyMessageDelayed(0, 100);
|
// }
|
// // 上升
|
// if (isRiseBtn) {
|
// 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) -10));
|
// nettyServerHandler.sendMessageToClient(clientId, agvAction); // 发送消息到客户端
|
// handler.sendEmptyMessageDelayed(0, 100);
|
// }
|
// // 下降
|
// if (isDropBtn) {
|
// 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) -10));
|
// nettyServerHandler.sendMessageToClient(clientId, agvAction); // 发送消息到客户端
|
// handler.sendEmptyMessageDelayed(0, 100);
|
// }
|
// // 伸叉
|
// if (isExtendForkBtn) {
|
// 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) -10));
|
// nettyServerHandler.sendMessageToClient(clientId, agvAction); // 发送消息到客户端
|
// handler.sendEmptyMessageDelayed(0, 100);
|
// }
|
// // 收叉
|
// if (isCollectForkBtn) {
|
// 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) -10));
|
// nettyServerHandler.sendMessageToClient(clientId, agvAction); // 发送消息到客户端
|
// handler.sendEmptyMessageDelayed(0, 100);
|
// }
|
// // 货叉左旋
|
// if (isTurnLeftBtn) {
|
// 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) -10));
|
// nettyServerHandler.sendMessageToClient(clientId, agvAction); // 发送消息到客户端
|
// handler.sendEmptyMessageDelayed(0, 100);
|
// }
|
// // 货叉右旋
|
// if (isTurnRightBtn) {
|
// 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) -10));
|
// nettyServerHandler.sendMessageToClient(clientId, agvAction); // 发送消息到客户端
|
// handler.sendEmptyMessageDelayed(0, 100);
|
// }
|
return false;
|
}
|
});
|
|
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);
|
|
|
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();
|
clientId = intent.getStringExtra("message");
|
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) 21));
|
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) 21));
|
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);
|
}
|
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); // 发送消息到客户端
|
} else {
|
AgvAction agvAction = new AgvAction<>(HandOutAction.class)
|
.setAgvNo(AgvNo)
|
.setSerialNo(substring)
|
.setVal(autoVal)
|
.bodySync((action) -> action.setPwd((short) 21));
|
nettyServerHandler.sendMessageToClient(clientId, agvAction); // 发送消息到客户端
|
}
|
|
boolean result = false;
|
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, "提示", "请求应答超时!");
|
}
|
}
|
});
|
|
// 点动按钮
|
stopBtn.setOnTouchListener(new CarTouchButton());
|
goForwardBtn.setOnTouchListener(new CarTouchButton());
|
goBackwardBtn.setOnTouchListener(new CarTouchButton());
|
rotatopnLeftBtn.setOnTouchListener(new CarTouchButton());
|
rotatopnRightBtn.setOnTouchListener(new CarTouchButton());
|
|
// frontPaddleExtendBtn.setOnTouchListener(new CarTouchButton());
|
// frontPaddleCollectBtn.setOnTouchListener(new CarTouchButton());
|
// backPaddleExtendBtn.setOnTouchListener(new CarTouchButton());
|
// backPaddleCollectBtn.setOnTouchListener(new CarTouchButton());
|
// riseBtn.setOnTouchListener(new CarTouchButton());
|
// dropBtn.setOnTouchListener(new CarTouchButton());
|
// extendForkBtn.setOnTouchListener(new CarTouchButton());
|
// collectForkBtn.setOnTouchListener(new CarTouchButton());
|
// turnLeftBtn.setOnTouchListener(new CarTouchButton());
|
// turnRightBtn.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;
|
}
|
}
|
|
|
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(); // 停止服务器
|
}
|
}
|