New file |
| | |
| | | package com.zy.acs.common.domain.protocol; |
| | | |
| | | import com.zy.acs.common.utils.Utils; |
| | | import lombok.Data; |
| | | |
| | | import java.io.Serializable; |
| | | |
| | | /** |
| | | * 路径数据包回复ack |
| | | * Created by vincent on 2023/3/16 |
| | | */ |
| | | @Data |
| | | public class AGV_B1_DOWN implements IMessageBody, Serializable { |
| | | |
| | | private static final long serialVersionUID = 6922520569887812372L; |
| | | |
| | | @Override |
| | | public byte[] writeToBytes() { |
| | | |
| | | String serialNo = Utils.zeroFill(this.serialNo, 16); |
| | | byte[] serialNoBytes = Utils.reverse(serialNo.getBytes()); |
| | | |
| | | byte pathLen0 = (byte) this.pathLen; |
| | | |
| | | return Utils.merge(serialNoBytes, pathLen0); |
| | | } |
| | | |
| | | @Override |
| | | public void readFromBytes(byte[] messageBodyBytes) { |
| | | |
| | | } |
| | | |
| | | // 流水号 - 16 |
| | | private String serialNo; |
| | | |
| | | // 路径长度 |
| | | private int pathLen; |
| | | |
| | | } |
| | |
| | | |
| | | HEARTBEAT_COMMAND(ProtocolType.HEARTBEAT_COMMAND, AGV_03_DOWN.class), |
| | | |
| | | PATH_ACK_COMMAND(ProtocolType.PATH_ACK_RESPONSE, AGV_B1_DOWN.class), |
| | | |
| | | ; |
| | | |
| | | |
| | |
| | | |
| | | ACTION_FAIL_ACK(0xA0, "动作完成失败应答", DirectionType.DOWN), |
| | | |
| | | PATH_ACK_RESPONSE(0xB1, "路径数据包回复ack", DirectionType.DOWN), |
| | | |
| | | // 上行 ------------------------------------------------------------------- |
| | | |
| | | PATH_ACK(0x01, "路径应答包", DirectionType.UP), |
| | |
| | | , pac.getHeader().getUniqueNo() + "_" + agv_01_up.getSerialNo() |
| | | , agv_01_up); |
| | | |
| | | AgvPackage pathAckPac = AckMsgBuilder.ofSuccess(pac, ProtocolType.PATH_ACK_RESPONSE); |
| | | |
| | | AGV_B1_DOWN agv_b1_down = (AGV_B1_DOWN) pathAckPac.getBody().getMessageBody(); |
| | | agv_b1_down.setSerialNo(agv_01_up.getSerialNo()); |
| | | agv_b1_down.setPathLen(agv_01_up.getPathLen()); |
| | | ctx.writeAndFlush(pathAckPac); |
| | | |
| | | break label; |
| | | |
| | | case COMMAND_ACK: // 命令包 ack |
| | |
| | | private void startupBus() throws InterruptedException { |
| | | // if (!configService.getVal("TaskAssignMode", Boolean.class)) { return; } |
| | | if (!this.lock.tryLock(LOCK_TIMEOUT, TimeUnit.SECONDS)) { return; } |
| | | List<Bus> busList = busService.selectBySts(BusStsType.RECEIVE); |
| | | List<Bus> busList = busService.selectInSts(BusStsType.RECEIVE, BusStsType.PROGRESS); |
| | | for (Bus bus : busList) { |
| | | mainService.allocateTask(bus); |
| | | } |