| | |
| | | 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.View; |
| | | import android.widget.Button; |
| | | |
| | | import com.example.agvcontroller.protocol.AgvAction; |
| | | import com.example.agvcontroller.action.ForceSwitchAction; |
| | | import com.example.agvcontroller.action.HandOutAction; |
| | | import com.example.agvcontroller.socket.NettyServerHandler; |
| | | import com.example.agvcontroller.socket.SocketManager; |
| | | import com.example.agvcontroller.socket.SocketTask; |
| | | import com.example.agvcontroller.utils.SnowflakeIdWorker; |
| | | |
| | | import java.net.Socket; |
| | | import java.util.Arrays; |
| | | import java.util.List; |
| | | |
| | | import io.netty.buffer.ByteBuf; |
| | | import io.netty.buffer.Unpooled; |
| | | import io.netty.util.CharsetUtil; |
| | | |
| | | public class MainActivity extends AppCompatActivity { |
| | | |
| | |
| | | private ItemAdapter itemAdapter; |
| | | private List<Item> itemList; |
| | | private Vibrator vibrator; |
| | | private Button vibrateButton; |
| | | private Button stopBtn; // 急停按钮 |
| | | private Button forceSwitchBtn; // 手自动强制开关 |
| | | private Button rotatopnRightBtn; // 右旋转 |
| | | private Button rotatopnLeftBtn; // 左旋转 |
| | | private Button goForwardBtn; // 前进 |
| | | private Button goBackwardBtn; // 后退 |
| | | private Socket socket; |
| | | |
| | | SocketManager socketManager; |
| | | |
| | | private boolean isDowm = false; |
| | | private boolean isOpen = false; |
| | | |
| | | |
| | | |
| | | private Handler handler = new Handler(new Handler.Callback() { |
| | | @Override |
| | | public boolean handleMessage(Message msg) { |
| | | String substring = String.valueOf(new SnowflakeIdWorker().nextId()).substring(0,15); |
| | | |
| | | AgvAction agvAction = new AgvAction<>(ForceSwitchAction.class) |
| | | .setAgvNo("1") |
| | | .setSerialNo(substring) |
| | | .setVal(1) |
| | | .bodySync((action) -> action.setPwd((short) 21)); |
| | | |
| | | |
| | | if (isDowm) { |
| | | System.out.println(agvAction); |
| | | 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); |
| | | vibrateButton = findViewById(R.id.btn_stop); |
| | | 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); |
| | | |
| | | Intent intent = getIntent(); |
| | | //String clientId = intent.getStringExtra("message"); |
| | | clientId = intent.getStringExtra("message"); |
| | | Log.i("message1",clientId); |
| | | // 初始化单轴使能 |
| | | byte[] message2 = new byte[]{0x01, 0x02, 0x03, 0x06}; // 示例消息 |
| | | nettyServerHandler.sendMessageToClient(clientId, message2); // 发送消息到客户端 |
| | | |
| | | //vibrateButton.setOnClickListener(new View.OnClickListener() { |
| | | // @Override |
| | | // public void onClick(View v) { |
| | | // if (vibrator != null && vibrator.hasVibrator()) { |
| | | // //vibrator.vibrate(500); |
| | | // } |
| | | // |
| | | // //String clientId = "/192.168.4.188:63160"; |
| | | // byte[] message1 = new byte[]{0x01, 0x02, 0x03, 0x04}; // 示例消息 |
| | | // Log.i("message2",clientId); |
| | | // Log.i("message3", Arrays.toString(message1)); |
| | | // |
| | | // nettyServerHandler.sendMessageToClient(clientId, message1); // 发送消息到客户端 |
| | | // } |
| | | //}); |
| | | vibrateButton.setOnTouchListener(new CarTouchButton()); |
| | | forceSwitchBtn.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<>(HandOutAction.class) |
| | | .setAgvNo("12") |
| | | .setSerialNo(substring) |
| | | .setVal(1) |
| | | .bodySync((action) -> action.setPwd((short) 21)); |
| | | nettyServerHandler.sendMessageToClient(clientId, agvAction); // 发送消息到客户端 |
| | | } |
| | | }); |
| | | stopBtn.setOnTouchListener(new CarTouchButton()); |
| | | goForwardBtn.setOnTouchListener(new CarTouchButton()); |
| | | goBackwardBtn.setOnTouchListener(new CarTouchButton()); |
| | | |
| | | } |
| | | |
| | |
| | | |
| | | @Override |
| | | public boolean onTouch(View view, MotionEvent motionEvent) { |
| | | if (motionEvent.getAction() == KeyEvent.ACTION_DOWN) { |
| | | byte[] message2 = new byte[]{0x01, 0x02, 0x03, 0x06}; // 示例消息 |
| | | nettyServerHandler.sendMessageToClient(clientId, message2); // 发送消息到客户端 |
| | | } else if (motionEvent.getAction() == KeyEvent.ACTION_UP) { |
| | | byte[] message2 = new byte[]{0x01, 0x02, 0x03, 0x07}; // 示例消息 |
| | | nettyServerHandler.sendMessageToClient(clientId, message2); // 发送消息到客户端 |
| | | if (view.getId() == R.id.btn_go_forward) { |
| | | Log.i("message1","1111"); |
| | | } else if (view.getId() == R.id.btn_go_backward) { |
| | | Log.i("message1","22222"); |
| | | if (motionEvent.getAction() == KeyEvent.ACTION_DOWN) { |
| | | isDowm = true; |
| | | handler.sendEmptyMessage(0); |
| | | } else if (motionEvent.getAction() == KeyEvent.ACTION_UP) { |
| | | isDowm = false; |
| | | } |
| | | } |
| | | return false; |
| | | } |
| | | } |
| | | |
| | | @Override |
| | | protected void onDestroy() { |
| | | super.onDestroy(); |
| | | //SocketManager.getInstance().disconnect(); |
| | | |
| | | //SocketManager.getInstance().stopServer(); |
| | | //socketManager.stopServer(); // 停止服务器 |
| | | } |