| | |
| | | import com.example.agvcontroller.utils.SnowflakeIdWorker; |
| | | |
| | | import java.net.Socket; |
| | | import java.sql.Time; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | import java.util.concurrent.ConcurrentHashMap; |
| | | import java.util.concurrent.TimeoutException; |
| | | |
| | | |
| | | public class MainActivity extends AppCompatActivity { |
| | | |
| | | public static final Map<String, Object> map = new ConcurrentHashMap(); |
| | | |
| | | private RecyclerView recyclerView; |
| | | private ItemAdapter itemAdapter; |
| | |
| | | |
| | | |
| | | |
| | | |
| | | 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); |
| | | String substring = String.valueOf(new SnowflakeIdWorker().nextId()).substring(0,16); |
| | | AgvAction agvAction = new AgvAction<>(ForceSwitchAction.class) |
| | | .setAgvNo("1") |
| | | .setSerialNo(substring) |
| | | .setVal(1) |
| | | .bodySync((action) -> action.setPwd((short) 21)); |
| | | |
| | | nettyServerHandler.sendMessageToClient(clientId, agvAction); // 发送消息到客户端 |
| | | // handler.sendEmptyMessageDelayed(0, 100); |
| | | handler.sendEmptyMessageDelayed(0, 100); |
| | | |
| | | boolean result = false; |
| | | long timestamp = System.currentTimeMillis(); |
| | | |
| | | while (System.currentTimeMillis() - timestamp < 5000) { |
| | | |
| | | Object o = map.get(substring); |
| | | |
| | | if (null != o) { |
| | | result = true; |
| | | map.remove(o); |
| | | break; |
| | | } |
| | | } |
| | | |
| | | if (result) { |
| | | // alert ok |
| | | } else { |
| | | throw new TimeoutException("超时"); |
| | | } |
| | | |
| | | } |
| | | if (isOpen) { |
| | | String substring = String.valueOf(new SnowflakeIdWorker().nextId()).substring(0,16); |
| | | AgvAction agvAction = new AgvAction<>(ForceSwitchAction.class) |
| | | .setAgvNo("12") |
| | | .setSerialNo(substring) |
| | | .setVal(1) |
| | | .bodySync((action) -> action.setPwd((short) 21)); |
| | | nettyServerHandler.sendMessageToClient(clientId, agvAction); // 发送消息到客户端 |
| | | handler.sendEmptyMessageDelayed(0, 100); |
| | | } |
| | | return false; |
| | | } |
| | |
| | | clientId = intent.getStringExtra("message"); |
| | | Log.i("message1",clientId); |
| | | |
| | | // 进出手动模式 |
| | | forceSwitchBtn.setOnClickListener(new View.OnClickListener() { |
| | | @Override |
| | | public void onClick(View v) { |
| | |
| | | vibrator.vibrate(500); |
| | | } |
| | | String substring = String.valueOf(new SnowflakeIdWorker().nextId()).substring(0,16); |
| | | |
| | | AgvAction agvAction = new AgvAction<>(HandOutAction.class) |
| | | .setAgvNo("12") |
| | | .setSerialNo(substring) |
| | |
| | | @Override |
| | | public boolean onTouch(View view, MotionEvent motionEvent) { |
| | | 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; |
| | | } |
| | | } else if (view.getId() == R.id.btn_go_backward) { |
| | | if (motionEvent.getAction() == KeyEvent.ACTION_DOWN) { |
| | | isOpen = true; |
| | | handler.sendEmptyMessage(0); |
| | | } else if (motionEvent.getAction() == KeyEvent.ACTION_UP) { |
| | | isOpen = false; |
| | | } |
| | | } |
| | | return false; |
| | | } |