| | |
| | | import com.zy.asrs.wcs.rcs.cache.OutputQueue; |
| | | import com.zy.asrs.wcs.rcs.constant.DeviceRedisConstant; |
| | | import com.zy.asrs.wcs.rcs.entity.DeviceDataLog; |
| | | import com.zy.asrs.wcs.rcs.model.CommandResponse; |
| | | import com.zy.asrs.wcs.rcs.model.enums.ShuttleProtocolStatusType; |
| | | import com.zy.asrs.wcs.rcs.model.enums.SlaveType; |
| | | import com.zy.asrs.wcs.rcs.model.protocol.ShuttleProtocol; |
| | |
| | | //当前二维码 |
| | | shuttleProtocol.setCurrentCode(data.getString("groundCode") == null ? "0" : data.getString("groundCode")); |
| | | //电池电量 |
| | | shuttleProtocol.setBatteryPower(data.getString("battery") == null ? "0%" : data.getString("battery")); |
| | | shuttleProtocol.setBatteryPower(data.getString("battery") == null ? "0" : data.getString("battery")); |
| | | //故障 |
| | | shuttleProtocol.setErrorCode(deviceStatus == 6 ? "1" : "0"); |
| | | |
| | |
| | | } |
| | | |
| | | @Override |
| | | public synchronized boolean movePath(List<NavigateNode> nodes, Integer taskNo) { |
| | | public synchronized CommandResponse movePath(List<NavigateNode> nodes, Integer taskNo) { |
| | | CommandResponse response = new CommandResponse(false); |
| | | try { |
| | | //默认地图母轨方向x |
| | | String mapDirection = "x"; |
| | |
| | | |
| | | String loginToken = requestLoginToken(); |
| | | if (loginToken == null) { |
| | | return false; |
| | | return response; |
| | | } |
| | | |
| | | HashMap<String, Object> headers = new HashMap<>(); |
| | |
| | | param.put("taskId", taskNo); |
| | | param.put("nodeNum", nodes.size()); |
| | | param.put("modes", modes); |
| | | String response = new HttpHandler.Builder() |
| | | String responseStr = new HttpHandler.Builder() |
| | | .setUri(API_URL) |
| | | .setPath("/RDS/runRoute") |
| | | .setHeaders(headers) |
| | |
| | | .setTimeout(60, TimeUnit.SECONDS) |
| | | .build() |
| | | .doPost(); |
| | | JSONObject jsonObject = JSON.parseObject(response); |
| | | JSONObject jsonObject = JSON.parseObject(responseStr); |
| | | Integer code = jsonObject.getInteger("code"); |
| | | System.out.println("路径下发" + taskNo); |
| | | System.out.println(JSON.toJSONString(jsonObject)); |
| | | System.out.println(JSON.toJSONString(param)); |
| | | if (code.equals(200)) { |
| | | System.out.println("路径下发" + taskNo); |
| | | return true; |
| | | response.setResult(true); |
| | | response.setMessage(responseStr); |
| | | return response; |
| | | } |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | | } |
| | | return false; |
| | | return response; |
| | | } |
| | | |
| | | @Override |
| | | public synchronized boolean move(ShuttleCommand command) { |
| | | public synchronized CommandResponse move(ShuttleCommand command) { |
| | | CommandResponse response = new CommandResponse(false); |
| | | try { |
| | | String loginToken = requestLoginToken(); |
| | | if (loginToken == null) { |
| | | return false; |
| | | return response; |
| | | } |
| | | |
| | | HashMap<String, Object> headers = new HashMap<>(); |
| | | headers.put("Authorization", "Bearer " + loginToken); |
| | | |
| | | String response = new HttpHandler.Builder() |
| | | String responseStr = new HttpHandler.Builder() |
| | | .setUri(API_URL) |
| | | .setPath("/RDS/runOrder") |
| | | .setHeaders(headers) |
| | |
| | | .setTimeout(60, TimeUnit.SECONDS) |
| | | .build() |
| | | .doPost(); |
| | | JSONObject jsonObject = JSON.parseObject(response); |
| | | JSONObject jsonObject = JSON.parseObject(responseStr); |
| | | Integer code = jsonObject.getInteger("code"); |
| | | System.out.println(JSON.toJSONString(command.getBody())); |
| | | if (code.equals(200)) { |
| | | this.shuttleProtocol.setSendTime(System.currentTimeMillis());//指令下发时间 |
| | | return true; |
| | | response.setResult(true); |
| | | response.setMessage(responseStr); |
| | | return response; |
| | | } |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | | } |
| | | return false; |
| | | return response; |
| | | } |
| | | |
| | | @Override |
| | | public synchronized boolean lift(ShuttleCommand command) { |
| | | public synchronized CommandResponse lift(ShuttleCommand command) { |
| | | CommandResponse response = new CommandResponse(false); |
| | | try { |
| | | String loginToken = requestLoginToken(); |
| | | if (loginToken == null) { |
| | | return false; |
| | | return response; |
| | | } |
| | | |
| | | HashMap<String, Object> headers = new HashMap<>(); |
| | | headers.put("Authorization", "Bearer " + loginToken); |
| | | |
| | | String response = new HttpHandler.Builder() |
| | | String responseStr = new HttpHandler.Builder() |
| | | .setUri(API_URL) |
| | | .setPath("/RDS/actionOrder") |
| | | .setHeaders(headers) |
| | |
| | | .setTimeout(60, TimeUnit.SECONDS) |
| | | .build() |
| | | .doPost(); |
| | | JSONObject jsonObject = JSON.parseObject(response); |
| | | JSONObject jsonObject = JSON.parseObject(responseStr); |
| | | Integer code = jsonObject.getInteger("code"); |
| | | if (code.equals(200)) { |
| | | this.shuttleProtocol.setSendTime(System.currentTimeMillis());//指令下发时间 |
| | | return true; |
| | | response.setResult(true); |
| | | response.setMessage(responseStr); |
| | | return response; |
| | | } |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | | } |
| | | return false; |
| | | return response; |
| | | } |
| | | |
| | | @Override |
| | | public synchronized boolean charge(ShuttleCommand command) { |
| | | public synchronized CommandResponse charge(ShuttleCommand command) { |
| | | CommandResponse response = new CommandResponse(false); |
| | | try { |
| | | String loginToken = requestLoginToken(); |
| | | if (loginToken == null) { |
| | | return false; |
| | | return response; |
| | | } |
| | | |
| | | HashMap<String, Object> headers = new HashMap<>(); |
| | | headers.put("Authorization", "Bearer " + loginToken); |
| | | |
| | | String response = new HttpHandler.Builder() |
| | | String responseStr = new HttpHandler.Builder() |
| | | .setUri(API_URL) |
| | | .setPath("/RDS/actionOrder") |
| | | .setHeaders(headers) |
| | |
| | | .setTimeout(60, TimeUnit.SECONDS) |
| | | .build() |
| | | .doPost(); |
| | | JSONObject jsonObject = JSON.parseObject(response); |
| | | JSONObject jsonObject = JSON.parseObject(responseStr); |
| | | Integer code = jsonObject.getInteger("code"); |
| | | if (code.equals(200)) { |
| | | this.shuttleProtocol.setSendTime(System.currentTimeMillis());//指令下发时间 |
| | | return true; |
| | | response.setResult(true); |
| | | response.setMessage(responseStr); |
| | | return response; |
| | | } |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | | } |
| | | return false; |
| | | return response; |
| | | } |
| | | |
| | | @Override |
| | | public synchronized boolean reset(ShuttleCommand command) { |
| | | public synchronized CommandResponse reset(ShuttleCommand command) { |
| | | setSyncTaskNo(0); |
| | | setProtocolStatus(ShuttleProtocolStatusType.IDLE); |
| | | enableMoveLoc(null, false); |
| | | return true; |
| | | return new CommandResponse(true, JSON.toJSONString(command)); |
| | | } |
| | | |
| | | @Override |
| | | public boolean updateLocation(ShuttleCommand command) { |
| | | public CommandResponse updateLocation(ShuttleCommand command) { |
| | | CommandResponse response = new CommandResponse(false); |
| | | try { |
| | | String loginToken = requestLoginToken(); |
| | | if (loginToken == null) { |
| | | return false; |
| | | return response; |
| | | } |
| | | |
| | | HashMap<String, Object> headers = new HashMap<>(); |
| | | headers.put("Authorization", "Bearer " + loginToken); |
| | | |
| | | String response = new HttpHandler.Builder() |
| | | String responseStr = new HttpHandler.Builder() |
| | | .setUri(API_URL) |
| | | .setPath("/RDS/changeLocation") |
| | | .setHeaders(headers) |
| | |
| | | .setTimeout(60, TimeUnit.SECONDS) |
| | | .build() |
| | | .doPost(); |
| | | JSONObject jsonObject = JSON.parseObject(response); |
| | | JSONObject jsonObject = JSON.parseObject(responseStr); |
| | | Integer code = jsonObject.getInteger("code"); |
| | | if (code.equals(200)) { |
| | | this.shuttleProtocol.setSendTime(System.currentTimeMillis());//指令下发时间 |
| | | return true; |
| | | response.setResult(true); |
| | | response.setMessage(responseStr); |
| | | return response; |
| | | } |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | | } |
| | | return false; |
| | | return response; |
| | | } |
| | | |
| | | @Override |
| | |
| | | } |
| | | |
| | | @Override |
| | | public boolean requestWaiting() { |
| | | if (this.shuttleProtocol.getProtocolStatusType().equals(ShuttleProtocolStatusType.IDLE)) { |
| | | this.shuttleProtocol.setProtocolStatus(ShuttleProtocolStatusType.WAITING); |
| | | return true; |
| | | } |
| | | return false; |
| | | } |
| | | |
| | | @Override |
| | | public ShuttleCommand getMoveCommand(Integer taskNo, String startCodeNum, String distCodeNum, Integer allDistance, Integer runDirection, Integer runSpeed, List<NavigateNode> nodes) { |
| | | HashMap<String, Object> body = new HashMap<>(); |
| | | body.put("messageName", "runOrder"); |
| | |
| | | command.setBody(JSON.toJSONString(body)); |
| | | command.setMode(ShuttleCommandModeType.MOVE.id); |
| | | command.setTargetLocNo(loc.getLocNo()); |
| | | command.setTaskNo(taskNo); |
| | | return command; |
| | | } |
| | | |
| | |
| | | command.setShuttleNo(Integer.parseInt(this.device.getDeviceNo())); |
| | | command.setBody(JSON.toJSONString(body)); |
| | | command.setMode(lift ? ShuttleCommandModeType.PALLET_LIFT.id : ShuttleCommandModeType.PALLET_DOWN.id); |
| | | command.setTaskNo(taskNo); |
| | | return command; |
| | | } |
| | | |
| | |
| | | command.setShuttleNo(Integer.parseInt(this.device.getDeviceNo())); |
| | | command.setBody(JSON.toJSONString(body)); |
| | | command.setMode(charge ? ShuttleCommandModeType.CHARGE_OPEN.id : ShuttleCommandModeType.CHARGE_CLOSE.id); |
| | | command.setTaskNo(taskNo); |
| | | return command; |
| | | } |
| | | |
| | |
| | | command.setShuttleNo(Integer.parseInt(this.device.getDeviceNo())); |
| | | command.setBody(JSON.toJSONString(body)); |
| | | command.setMode(ShuttleCommandModeType.UPDATE_LOCATION.id); |
| | | command.setTaskNo(taskNo); |
| | | return command; |
| | | } |
| | | |