| | |
| | | import com.example.agvcontroller.action.AGV_11_UP; |
| | | import com.example.agvcontroller.action.AckMsgBuilder; |
| | | import com.example.agvcontroller.met.AbstractInboundHandler; |
| | | import com.example.agvcontroller.protocol.AGV_12_UP; |
| | | import com.example.agvcontroller.protocol.AGV_13_UP; |
| | | import com.example.agvcontroller.protocol.AGV_A1_DOWN; |
| | | import com.example.agvcontroller.protocol.AGV_F0_UP; |
| | | import com.example.agvcontroller.protocol.AgvAction; |
| | | import com.example.agvcontroller.protocol.AgvPackage; |
| | | import com.example.agvcontroller.protocol.ProtocolType; |
| | |
| | | |
| | | @Override |
| | | public void channelActive(ChannelHandlerContext ctx) throws Exception { |
| | | String clientId = ctx.channel().remoteAddress().toString(); |
| | | channelMap.put(clientId, ctx.channel()); |
| | | EventBus.getDefault().post(new Item("1",clientId,"3")); |
| | | Log.d(TAG, "Client connected: " + clientId); |
| | | // String clientId = ctx.channel().remoteAddress().toString(); |
| | | // channelMap.put(clientId, ctx.channel()); |
| | | // EventBus.getDefault().post(new Item("",clientId,"3")); |
| | | // Log.d(TAG, "Client connected: " + clientId); |
| | | } |
| | | |
| | | @Override |
| | |
| | | |
| | | @Override |
| | | protected boolean channelRead0(ChannelHandlerContext ctx, AgvPackage pac) throws Exception { |
| | | |
| | | String clientId = ctx.channel().remoteAddress().toString(); |
| | | Log.i("clientId--->",clientId); |
| | | Log.i("substring",pac.toString()); |
| | | String serialNum = pac.getBody().getMessageBody().getSerialNo(); |
| | | Log.i("substring",serialNum); |
| | | MainActivity.map.put(serialNum, Boolean.TRUE); |
| | | // ack |
| | | ProtocolType ackType = isNeedAck(pac); |
| | | final String uniqueNo = pac.getHeader().getUniqueNo(); |
| | | String agvNo; |
| | | label : switch (pac.getHeader().getProtocolType()){ |
| | | case ACTION_COMPLETE: // 动作完成数据包 |
| | | |
| | | |
| | | AGV_11_UP agv_11_up = (AGV_11_UP) pac.getBody().getMessageBody(); |
| | | // redis.push(RedisConstant.AGV_COMPLETE_FLAG, AgvProtocol.build(uniqueNo).setMessageBody(agv_11_up)); |
| | | |
| | | // 动作完成应答 |
| | | if (null != ackType) { |
| | | AgvPackage ackPac = AckMsgBuilder.ofSuccess(pac, ackType); |
| | | |
| | | AGV_A1_DOWN agv_a1_down = (AGV_A1_DOWN) ackPac.getBody().getMessageBody(); |
| | | agv_a1_down.setAckSign((byte) agv_11_up.getCompleteCode()); |
| | | |
| | | ctx.writeAndFlush(ackPac); |
| | | } |
| | | |
| | | |
| | | |
| | | break label; |
| | | case DATA_CODE_REPORT: |
| | | AGV_12_UP agv_12_up = (AGV_12_UP) pac.getBody().getMessageBody(); |
| | | agvNo = pac.getHeader().getUniqueNo(); |
| | | EventBus.getDefault().post(new Item("",clientId,agvNo)); |
| | | break label; |
| | | case DATA_WITHOUT_CODE_REPORT: |
| | | AGV_13_UP agv_13_up = (AGV_13_UP) pac.getBody().getMessageBody(); |
| | | break label; |
| | | case LOGIN_REPORT: |
| | | AGV_F0_UP agv_f0_up = (AGV_F0_UP) pac.getBody().getMessageBody(); |
| | | agvNo = pac.getHeader().getUniqueNo(); |
| | | EventBus.getDefault().post(new Item("",clientId,agvNo)); |
| | | break label; |
| | | |
| | | } |
| | | return false; |
| | | } |