| | |
| | | return false; |
| | | } |
| | | |
| | | //æ£æµéç¢ç©è½¦ |
| | | boolean checkObstacle = shuttleOperaUtils.checkObstacle(wrkMast.getLocNo(), new ArrayList<Integer>() {{ |
| | | add(shuttleProtocol.getShuttleNo()); |
| | | }}); |
| | | if (checkObstacle) { |
| | | News.info("{}ä»»å¡ï¼é¿éèå´æå°è½¦ï¼çå¾
éç¢å°è½¦è°ç¦»ä¸", wrkMast.getWrkNo()); |
| | | return false; |
| | | } |
| | | // //æ£æµéç¢ç©è½¦ |
| | | // boolean checkObstacle = shuttleOperaUtils.checkObstacle(wrkMast.getLocNo(), new ArrayList<Integer>() {{ |
| | | // add(shuttleProtocol.getShuttleNo()); |
| | | // }}); |
| | | // if (checkObstacle) { |
| | | // News.info("{}ä»»å¡ï¼é¿éèå´æå°è½¦ï¼çå¾
éç¢å°è½¦è°ç¦»ä¸", wrkMast.getWrkNo()); |
| | | // return false; |
| | | // } |
| | | |
| | | ShuttleAssignCommand assignCommand = new ShuttleAssignCommand(); |
| | | assignCommand.setShuttleNo(shuttleProtocol.getShuttleNo()); // ååç©¿æ¢è½¦ç¼å· |
| | |
| | | News.taskInfo(wrkMast.getWrkNo(), "{}ä»»å¡ï¼æªæ¾å°å¹é
çæåæº", wrkMast.getWrkNo()); |
| | | return false; |
| | | } |
| | | |
| | | //夿æåæºæ¯å¦æå
¶ä»ä»»å¡ |
| | | WrkMast liftWrkMast = wrkMastService.selectLiftWrkMast(liftNo); |
| | | if (liftWrkMast != null) { |
| | | if (!liftWrkMast.getWrkNo().equals(wrkMast.getWrkNo())) {//æåæºä»»å¡åå½åä»»å¡ä¸ç¸å |
| | | News.taskInfo(wrkMast.getWrkNo(), "{}ä»»å¡ï¼{}å·æåæºï¼æåæºå卿ªå®æä»»å¡ï¼ç¦æ¢æ´¾å", wrkMast.getWrkNo(), liftNo); |
| | | return false; |
| | | } |
| | | } |
| | | |
| | | wrkMast.setLiftNo(liftNo); |
| | | wrkMast.setModiTime(new Date()); |
| | | wrkMastService.updateById(wrkMast); |
| | | } |
| | | |
| | | ForkLiftThread forkLiftThread = (ForkLiftThread) SlaveConnection.get(SlaveType.ForkLift, liftNo); |
| | |
| | | return false; |
| | | } |
| | | |
| | | //æ£æµéç¢ç©è½¦ |
| | | boolean checkObstacle = shuttleOperaUtils.checkObstacle(liftSta.getLocNo(), new ArrayList<Integer>() {{ |
| | | add(shuttleProtocol.getShuttleNo()); |
| | | }}); |
| | | if (checkObstacle) { |
| | | News.info("{}ä»»å¡ï¼é¿éèå´æå°è½¦ï¼çå¾
éç¢å°è½¦è°ç¦»ä¸", wrkMast.getWrkNo()); |
| | | return false; |
| | | } |
| | | // //æ£æµéç¢ç©è½¦ |
| | | // boolean checkObstacle = shuttleOperaUtils.checkObstacle(liftSta.getLocNo(), new ArrayList<Integer>() {{ |
| | | // add(shuttleProtocol.getShuttleNo()); |
| | | // }}); |
| | | // if (checkObstacle) { |
| | | // News.info("{}ä»»å¡ï¼é¿éèå´æå°è½¦ï¼çå¾
éç¢å°è½¦è°ç¦»ä¸", wrkMast.getWrkNo()); |
| | | // return false; |
| | | // } |
| | | |
| | | ShuttleAssignCommand assignCommand = new ShuttleAssignCommand(); |
| | | assignCommand.setShuttleNo(shuttleProtocol.getShuttleNo()); // ååç©¿æ¢è½¦ç¼å· |
| | |
| | | return false; |
| | | } |
| | | |
| | | //æ£æµéç¢ç©è½¦ |
| | | boolean checkObstacle = shuttleOperaUtils.checkObstacle(wrkMast.getLocNo(), new ArrayList<Integer>() {{ |
| | | add(shuttleProtocol.getShuttleNo()); |
| | | }}); |
| | | if (checkObstacle) { |
| | | News.info("{}ä»»å¡ï¼é¿éèå´æå°è½¦ï¼çå¾
éç¢å°è½¦è°ç¦»ä¸", wrkMast.getWrkNo()); |
| | | return false; |
| | | } |
| | | |
| | | ShuttleAssignCommand assignCommand = new ShuttleAssignCommand(); |
| | | assignCommand.setShuttleNo(shuttleProtocol.getShuttleNo()); // ååç©¿æ¢è½¦ç¼å· |
| | | assignCommand.setTaskMode(ShuttleTaskModeType.TRANSPORT.id);//å°è½¦ç§»åºä»»å¡ |
| | |
| | | return false; |
| | | } |
| | | |
| | | commands.add(0, liftCommand.get(0)); |
| | | commands.add(liftCommand2.get(0)); |
| | | // commands.add(0, liftCommand.get(0)); |
| | | // commands.add(liftCommand2.get(0)); |
| | | assignCommand.setCommands(commands); |
| | | |
| | | wrkMast.setWrkSts(WrkStsType.LOC_MOVE_SHUTTLE_RUN.sts);//å°è½¦æ¬è¿ä¸ 501.çæç§»åºä»»å¡ ==> 502.å°è½¦æ¬è¿ä¸ |
| | |
| | | //--------------------------------------æåæºåºåº-----------------------------------------// |
| | | //103.å°è½¦æ¬è¿å®æ ==> 104.æåæºæ¬è¿ä¸ |
| | | if (wrkMast.getWrkSts() == WrkStsType.OUTBOUND_SHUTTLE_RUN_COMPLETE.sts) { |
| | | ShuttleThread shuttleThread = (ShuttleThread) SlaveConnection.get(SlaveType.Shuttle, wrkMast.getShuttleNo()); |
| | | if (shuttleThread == null) { |
| | | return false; |
| | | } |
| | | ShuttleProtocol shuttleProtocol = shuttleThread.getStatus(); |
| | | if(shuttleProtocol == null) { |
| | | return false; |
| | | } |
| | | |
| | | //è·åæºç« |
| | | ForkLiftStaProtocol liftSta = ForkLiftUtils.getLiftStaByStaNo(wrkMast.getSourceStaNo()); |
| | | if (liftSta == null) { |
| | |
| | | return false;//æ¾ä¸å°ç«ç¹ |
| | | } |
| | | |
| | | if (shuttleProtocol.getCurrentLocNo().equals(liftSta.getLocNo())) { |
| | | //å°è½¦è¿å¨è¾éç«ç¹ |
| | | //è·åå°è½¦å¾
æºä½ |
| | | String standbyLocNo = Utils.getShuttleStandbyLocNo(liftSta.getLocNo()); |
| | | if(standbyLocNo == null) { |
| | | News.taskInfo(wrkMast.getWrkNo(), "{}ä»»å¡ï¼è·åå°è½¦å¾
æºä½å¤±è´¥", wrkMast.getWrkNo()); |
| | | if(wrkMast.getShuttleNo() != null) { |
| | | ShuttleThread shuttleThread = (ShuttleThread) SlaveConnection.get(SlaveType.Shuttle, wrkMast.getShuttleNo()); |
| | | if (shuttleThread == null) { |
| | | return false; |
| | | } |
| | | //è°åº¦å°è½¦å»å¾
æºä½ |
| | | boolean dispatchShuttle = shuttleDispatchUtils.dispatchShuttle(wrkMast.getWrkNo(), standbyLocNo, wrkMast.getShuttleNo()); |
| | | if (!dispatchShuttle) { |
| | | News.taskInfo(wrkMast.getWrkNo(), "{}ä»»å¡ï¼å°è½¦å¨è¾éç«ç¹è°åº¦å°è½¦é¿è®©å¤±è´¥", wrkMast.getWrkNo()); |
| | | ShuttleProtocol shuttleProtocol = shuttleThread.getStatus(); |
| | | if(shuttleProtocol == null) { |
| | | return false; |
| | | } |
| | | |
| | | if (shuttleProtocol.getCurrentLocNo().equals(liftSta.getLocNo())) { |
| | | //å°è½¦è¿å¨è¾éç«ç¹ |
| | | //è·åå°è½¦å¾
æºä½ |
| | | String standbyLocNo = Utils.getShuttleStandbyLocNo(liftSta.getLocNo()); |
| | | if (standbyLocNo == null) { |
| | | News.taskInfo(wrkMast.getWrkNo(), "{}ä»»å¡ï¼è·åå°è½¦å¾
æºä½å¤±è´¥", wrkMast.getWrkNo()); |
| | | return false; |
| | | } |
| | | //è°åº¦å°è½¦å»å¾
æºä½ |
| | | boolean dispatchShuttle = shuttleDispatchUtils.dispatchShuttle(wrkMast.getWrkNo(), standbyLocNo, wrkMast.getShuttleNo()); |
| | | if (!dispatchShuttle) { |
| | | News.taskInfo(wrkMast.getWrkNo(), "{}ä»»å¡ï¼å°è½¦å¨è¾éç«ç¹è°åº¦å°è½¦é¿è®©å¤±è´¥", wrkMast.getWrkNo()); |
| | | return false; |
| | | } |
| | | } else { |
| | | //å°è½¦å·²ä¸å¨è¾éç«ç¹ä½ç½®ï¼éæ¾å°è½¦ |
| | | wrkMast.setShuttleNo(null);//éæ¾å°è½¦ |
| | | wrkMast.setModiTime(new Date()); |
| | | wrkMastService.updateById(wrkMast); |
| | | return false; |
| | | } |
| | | return false; |
| | | } |
| | | |
| | | if (liftSta.getHasCar()) { |
| | |
| | | return false; |
| | | } |
| | | |
| | | //æ£æµéç¢ç©è½¦ |
| | | boolean checkObstacle = shuttleOperaUtils.checkObstacle(basShuttleCharge.getWaitLocNo(), new ArrayList<Integer>() {{ |
| | | add(shuttleProtocol.getShuttleNo()); |
| | | }}); |
| | | if (checkObstacle) { |
| | | News.info("{}ä»»å¡ï¼é¿éèå´æå°è½¦ï¼çå¾
éç¢å°è½¦è°ç¦»ä¸", wrkMast.getWrkNo()); |
| | | return false; |
| | | } |
| | | // //æ£æµéç¢ç©è½¦ |
| | | // boolean checkObstacle = shuttleOperaUtils.checkObstacle(basShuttleCharge.getWaitLocNo(), new ArrayList<Integer>() {{ |
| | | // add(shuttleProtocol.getShuttleNo()); |
| | | // }}); |
| | | // if (checkObstacle) { |
| | | // News.info("{}ä»»å¡ï¼é¿éèå´æå°è½¦ï¼çå¾
éç¢å°è½¦è°ç¦»ä¸", wrkMast.getWrkNo()); |
| | | // return false; |
| | | // } |
| | | |
| | | //è°åº¦å°è½¦å»å¾
æºä½ |
| | | boolean dispatched = shuttleDispatchUtils.dispatchShuttle(wrkMast.getWrkNo(), basShuttleCharge.getWaitLocNo(), wrkMast.getShuttleNo()); |
| | |
| | | return false;//è·¯å¾è®¡ç®å¤±è´¥ |
| | | } |
| | | |
| | | //æ£æµéç¢ç©è½¦ |
| | | boolean checkObstacle = shuttleOperaUtils.checkObstacle(wrkMast.getLocNo(), new ArrayList<Integer>() {{ |
| | | add(shuttleProtocol.getShuttleNo()); |
| | | }}); |
| | | if (checkObstacle) { |
| | | News.info("{}ä»»å¡ï¼é¿éèå´æå°è½¦ï¼çå¾
éç¢å°è½¦è°ç¦»ä¸", wrkMast.getWrkNo()); |
| | | return false; |
| | | } |
| | | |
| | | assignCommand.setCommands(commands); |
| | | |
| | | wrkMast.setWrkSts(WrkStsType.MOVE_SHUTTLE.sts);//å°è½¦ç§»å¨å°ç®æ åºä½ä¸ 309.å°è½¦è¿åºæåæºå®æ ==> 310.å°è½¦ç§»å¨ä¸ |
| | |
| | | continue; |
| | | } |
| | | |
| | | List<Integer> conveyorBindLiftAllStaNo = ForkLiftUtils.getConveyorBindLiftAllStaNo(liftNo); |
| | | if (conveyorBindLiftAllStaNo.isEmpty()) { |
| | | continue; |
| | | } |
| | | |
| | | //è·åå
¥åºä»»å¡ |
| | | List<WrkMast> inWrkMasts = wrkMastService.selectList(new EntityWrapper<WrkMast>() |
| | | .in("sta_no", liftAllStaNo) |
| | |
| | | |
| | | //è·ååºåºä»»å¡ |
| | | List<WrkMast> outWrkMasts = wrkMastService.selectList(new EntityWrapper<WrkMast>() |
| | | .eq("lift_no", liftNo) |
| | | .in("sta_no", conveyorBindLiftAllStaNo) |
| | | .in("wrk_sts" |
| | | , WrkStsType.NEW_OUTBOUND.sts |
| | | , WrkStsType.OUTBOUND_SHUTTLE_RUN.sts |
| | |
| | | return list; |
| | | } |
| | | |
| | | //è·åæåæºæç»å®çè¾é线ææç«ç¹ |
| | | public static List<Integer> getConveyorBindLiftAllStaNo(Integer liftNo) { |
| | | List<Integer> list = new ArrayList<>(); |
| | | ConfigService configService = SpringUtils.getBean(ConfigService.class); |
| | | if (configService == null) { |
| | | return list; |
| | | } |
| | | |
| | | Config conveyorLiftBindConfig = configService.selectOne(new EntityWrapper<Config>().eq("code", "conveyorLiftBind")); |
| | | if(conveyorLiftBindConfig == null) { |
| | | return list; |
| | | } |
| | | |
| | | List<JSONObject> val = JSON.parseArray(conveyorLiftBindConfig.getValue(), JSONObject.class); |
| | | if (val.isEmpty()) { |
| | | return list; |
| | | } |
| | | |
| | | for (JSONObject data : val) { |
| | | if(data.getInteger("liftNo").equals(liftNo)) { |
| | | list.add(data.getInteger("staNo")); |
| | | } |
| | | } |
| | | |
| | | return list; |
| | | } |
| | | |
| | | //è·åæåæºç«ç¹ |
| | | public static ForkLiftStaProtocol getLiftStaByStaNo(Integer staNo) { |
| | | SlaveProperties slaveProperties = SpringUtils.getBean(SlaveProperties.class); |
| | |
| | | return null; |
| | | } |
| | | |
| | | public int[][] parseJsonDataArr(List<List<MapNode>> lists) { |
| | | int[][] map = new int[lists.size()][]; |
| | | int j = 0; |
| | | for (List<MapNode> list : lists) { |
| | | int[] tmp = new int[list.size()]; |
| | | int i = 0; |
| | | for (MapNode mapNode : list) { |
| | | //å°æ°æ®æ·»å è¿äºç»´æ°ç» |
| | | tmp[i++] = mapNode.getValue(); |
| | | } |
| | | //æ°æ®æ·»å è¿ä¸ç»´æ°ç» |
| | | map[j++] = tmp; |
| | | } |
| | | |
| | | return map; |
| | | } |
| | | |
| | | /** |
| | | * è¿æ»¤å°å¾æ°æ® |
| | | * mapType -1=>æ è¿æ»¤ï¼1=ãè¿æ»¤åºä½ç¶æDFXï¼2=ãè¿æ»¤åºä½ç¶æX |
| | |
| | | import com.zy.asrs.entity.BasShuttle; |
| | | import com.zy.asrs.service.BasShuttleService; |
| | | import com.zy.asrs.utils.Utils; |
| | | import com.zy.common.model.MapNode; |
| | | import com.zy.common.model.NavigateNode; |
| | | import com.zy.common.model.enums.NavigationMapType; |
| | | import com.zy.core.News; |
| | | import com.zy.core.cache.SlaveConnection; |
| | | import com.zy.core.dispatcher.ShuttleDispatchUtils; |
| | |
| | | continue; |
| | | } |
| | | |
| | | int nextInt = new Random().nextInt(outerNodes.size()); |
| | | NavigateNode randomNode = outerNodes.get(nextInt); |
| | | String randomLocNo = NavigatePositionConvert.nodeToLocNo(randomNode); |
| | | shuttleDispatchUtils.dispatchShuttle(null, randomLocNo, shuttleNo); |
| | | HashMap<String, Integer> carMap = findCarMap(); |
| | | |
| | | String targetLocNo = null; |
| | | for (NavigateNode node : outerNodes) { |
| | | String dispatchLocNo = NavigatePositionConvert.nodeToLocNo(node); |
| | | if (carMap.containsKey(dispatchLocNo)) { |
| | | continue; |
| | | } |
| | | targetLocNo = dispatchLocNo; |
| | | break; |
| | | } |
| | | |
| | | if(targetLocNo == null) { |
| | | continue; |
| | | } |
| | | shuttleDispatchUtils.dispatchShuttle(null, targetLocNo, shuttleNo); |
| | | } |
| | | |
| | | return true;//å
åä¸æè½¦ |
| | | } |
| | | |
| | | //æç´¢èç¹å
çå°è½¦ç¼å· |
| | | private List<Integer> findNodesCar(List<NavigateNode> nodes) { |
| | | List<Integer> list = new ArrayList<>(); |
| | | |
| | | private HashMap<String, Integer> findCarMap() { |
| | | HashMap<String, Integer> carMap = new HashMap<>(); |
| | | for (ShuttleSlave slave : slaveProperties.getShuttle()) { |
| | | ShuttleThread shuttleThread = (ShuttleThread) SlaveConnection.get(SlaveType.Shuttle, slave.getId()); |
| | |
| | | |
| | | carMap.put(currentLocNo, slave.getId()); |
| | | } |
| | | return carMap; |
| | | } |
| | | |
| | | //æç´¢èç¹å
çå°è½¦ç¼å· |
| | | private List<Integer> findNodesCar(List<NavigateNode> nodes) { |
| | | List<Integer> list = new ArrayList<>(); |
| | | HashMap<String, Integer> carMap = findCarMap(); |
| | | for (NavigateNode node : nodes) { |
| | | String locNo = NavigatePositionConvert.nodeToLocNo(node); |
| | | if (carMap.containsKey(locNo)) { |
| | |
| | | int lev = Utils.getLev(locNo); |
| | | int[] pointArr = NavigatePositionConvert.positionToXY(locNo); |
| | | NavigateNode currentNode = new NavigateNode(pointArr[0], pointArr[1]); |
| | | currentNode.setZ(lev); |
| | | |
| | | int[][] map = navigateMapData.getDataFromRedis(lev, NavigationMapType.NORMAL.id, null, whiteShuttlePointList); |
| | | List<List<MapNode>> lists = navigateMapData.getJsonData(lev, -1, null, null);//è·å宿´å°å¾ |
| | | int[][] map = navigateMapData.parseJsonDataArr(lists); |
| | | int nodeValue = map[pointArr[0]][pointArr[1]]; |
| | | currentNode.setNodeValue(nodeValue); |
| | | |
| | |
| | | currentNode.setZ(lev); |
| | | innerNodes.add(currentNode); |
| | | |
| | | int[][] map = navigateMapData.getDataFromRedis(lev, NavigationMapType.NORMAL.id, null, whiteShuttlePointList); |
| | | List<List<MapNode>> lists = navigateMapData.getJsonData(lev, -1, null, null);//è·å宿´å°å¾ |
| | | int[][] map = navigateMapData.parseJsonDataArr(lists); |
| | | int nodeValue = map[pointArr[0]][pointArr[1]]; |
| | | currentNode.setNodeValue(nodeValue); |
| | | |
| | |
| | | if (list.isEmpty()) { |
| | | continue; |
| | | } |
| | | innerNodes.addAll(list); |
| | | |
| | | for (NavigateNode node : list) { |
| | | boolean flag = false; |
| | | for (int[] shuttlePoint : whiteShuttlePointList) { |
| | | if(node.getX() == shuttlePoint[0] && node.getY() == shuttlePoint[1]) { |
| | | flag = true; |
| | | break; |
| | | } |
| | | } |
| | | if(flag) { |
| | | continue; |
| | | } |
| | | innerNodes.add(node); |
| | | } |
| | | } |
| | | |
| | | return innerNodes; |
| | |
| | | NavigateNode node = new NavigateNode(x + innerCircleIdx, y); |
| | | node.setNodeValue(map[x + innerCircleIdx][y]); |
| | | node.setZ(z); |
| | | nodes.add(node); |
| | | if (node.getNodeValue().equals(startNode.getNodeValue())) { |
| | | nodes.add(node); |
| | | } |
| | | } |
| | | if (is_valid(map, x - innerCircleIdx, y)) { |
| | | NavigateNode node = new NavigateNode(x - innerCircleIdx, y); |
| | | node.setNodeValue(map[x - innerCircleIdx][y]); |
| | | node.setZ(z); |
| | | nodes.add(node); |
| | | if (node.getNodeValue().equals(startNode.getNodeValue())) { |
| | | nodes.add(node); |
| | | } |
| | | } |
| | | } |
| | | |
| | |
| | | NavigateNode node = new NavigateNode(x, y + innerCircleIdx); |
| | | node.setNodeValue(map[x][y + innerCircleIdx]); |
| | | node.setZ(z); |
| | | nodes.add(node); |
| | | if (node.getNodeValue().equals(startNode.getNodeValue())) { |
| | | nodes.add(node); |
| | | } |
| | | } |
| | | |
| | | if (is_valid(map, x, y - innerCircleIdx)) { |
| | | NavigateNode node = new NavigateNode(x, y - innerCircleIdx); |
| | | node.setNodeValue(map[x][y - innerCircleIdx]); |
| | | node.setZ(z); |
| | | nodes.add(node); |
| | | if (node.getNodeValue().equals(startNode.getNodeValue())) { |
| | | nodes.add(node); |
| | | } |
| | | } |
| | | } |
| | | }else if (mapDirection.equals("y")) {//æ¯è½¨yæ¹å |
| | |
| | | NavigateNode node = new NavigateNode(x, y + innerCircleIdx); |
| | | node.setNodeValue(map[x][y + innerCircleIdx]); |
| | | node.setZ(z); |
| | | nodes.add(node); |
| | | if (node.getNodeValue().equals(startNode.getNodeValue())) { |
| | | nodes.add(node); |
| | | } |
| | | } |
| | | |
| | | if (is_valid(map, x, y - innerCircleIdx)) { |
| | | NavigateNode node = new NavigateNode(x, y - innerCircleIdx); |
| | | node.setNodeValue(map[x][y - innerCircleIdx]); |
| | | node.setZ(z); |
| | | nodes.add(node); |
| | | if (node.getNodeValue().equals(startNode.getNodeValue())) { |
| | | nodes.add(node); |
| | | } |
| | | } |
| | | } |
| | | |
| | |
| | | NavigateNode node = new NavigateNode(x + innerCircleIdx, y); |
| | | node.setNodeValue(map[x + innerCircleIdx][y]); |
| | | node.setZ(z); |
| | | nodes.add(node); |
| | | if (node.getNodeValue().equals(startNode.getNodeValue())) { |
| | | nodes.add(node); |
| | | } |
| | | } |
| | | if (is_valid(map, x - innerCircleIdx, y)) { |
| | | NavigateNode node = new NavigateNode(x - innerCircleIdx, y); |
| | | node.setNodeValue(map[x - innerCircleIdx][y]); |
| | | node.setZ(z); |
| | | nodes.add(node); |
| | | if (node.getNodeValue().equals(startNode.getNodeValue())) { |
| | | nodes.add(node); |
| | | } |
| | | } |
| | | } |
| | | }else { |
| | |
| | | |
| | | HashMap<String, Object> lift1 = new HashMap<>(); |
| | | lift1.put("status", new DbData("DB101.0", (short) 16));//æåæºæ°æ® |
| | | lift1.put("staStatus", new DbData("DB102.0", (short) 14));//ç«ç¹æ°æ® |
| | | lift1.put("staStatusTray", new DbData("DB102.0", (short) 14));//ç«ç¹æ°æ® |
| | | lift1.put("staStatusCar", new DbData("DB102.50", (short) 14));//ç«ç¹æ°æ® |
| | | lift1.put("write", new DbData("DB103.0", null));//åå
¥æ°æ® |
| | | lift1.put("writeConfirm", new DbData("DB103.8", null));//åå
¥ç¡®è®¤æ°æ® |
| | | lift1.put("confirm", new DbData("DB103.10", null));//确认å½ä»¤ |
| | |
| | | |
| | | HashMap<String, Object> lift2 = new HashMap<>(); |
| | | lift2.put("status", new DbData("DB104.0", (short) 16));//æåæºæ°æ® |
| | | lift2.put("staStatus", new DbData("DB105.0", (short) 14));//ç«ç¹æ°æ® |
| | | lift2.put("staStatusTray", new DbData("DB105.0", (short) 14));//ç«ç¹æ°æ® |
| | | lift2.put("staStatusCar", new DbData("DB105.50", (short) 14));//ç«ç¹æ°æ® |
| | | lift2.put("write", new DbData("DB106.0", null));//åå
¥æ°æ® |
| | | lift2.put("writeConfirm", new DbData("DB106.8", null));//åå
¥ç¡®è®¤æ°æ® |
| | | lift2.put("confirm", new DbData("DB106.10", null));//确认å½ä»¤ |
| | |
| | | import lombok.extern.slf4j.Slf4j; |
| | | |
| | | import java.text.MessageFormat; |
| | | import java.util.ArrayList; |
| | | import java.util.Base64; |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | import java.util.*; |
| | | |
| | | @Slf4j |
| | | @SuppressWarnings("all") |
| | |
| | | } |
| | | |
| | | read(); |
| | | Thread.sleep(200); |
| | | Thread.sleep(300); |
| | | execute(); |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | |
| | | try { |
| | | //è·åæåæºæ°æ® |
| | | OperateResultExOne<byte[]> result1 = this.masterThread.read(this.slave.getId(), "status"); |
| | | if (result1 == null) { |
| | | OutputQueue.FORKLIFT.offer(MessageFormat.format("ã{0}ã{1}读åè´§åæåæºç¶æä¿¡æ¯å¤±è´¥", DateUtils.convert(new Date()), slave.getId())); |
| | | } |
| | | |
| | | SiemensS7Net siemensS7Net = this.masterThread.getSiemensS7Net(); |
| | | if (result1.IsSuccess) { |
| | | if (null == forkLiftProtocol) { |
| | |
| | | OutputQueue.FORKLIFT.offer(MessageFormat.format("ã{0}ã{1}读åè´§åæåæºç¶æä¿¡æ¯å¤±è´¥", DateUtils.convert(new Date()), slave.getId())); |
| | | } |
| | | |
| | | OperateResultExOne<byte[]> result2 = this.masterThread.read(this.slave.getId(), "staStatus"); |
| | | OperateResultExOne<byte[]> result2 = this.masterThread.read(this.slave.getId(), "staStatusTray"); |
| | | if (result2.IsSuccess) { |
| | | for (int i = 0; i < this.slave.getSta().size(); i++) { |
| | | ForkLiftSlave.Sta sta = this.slave.getSta().get(i); |
| | |
| | | continue; |
| | | } |
| | | |
| | | short val = siemensS7Net.getByteTransform().TransInt16(result2.Content, i * 2); |
| | | ForkLiftStaProtocol forkLiftStaProtocol = forkLiftStaProtocols.get(i); |
| | | boolean[] status1 = siemensS7Net.getByteTransform().TransBool(result2.Content, i * 2, 2); |
| | | forkLiftStaProtocol.setHasTray(status1[0]); |
| | | forkLiftStaProtocol.setHasCar(status1[1]); |
| | | forkLiftStaProtocol.setHasTray(val == 1); |
| | | } |
| | | } |
| | | |
| | | OperateResultExOne<byte[]> result3 = this.masterThread.read(this.slave.getId(), "staStatusCar"); |
| | | if (result3.IsSuccess) { |
| | | for (int i = 0; i < this.slave.getSta().size(); i++) { |
| | | ForkLiftSlave.Sta sta = this.slave.getSta().get(i); |
| | | if (forkLiftStaProtocols.isEmpty()) { |
| | | continue; |
| | | } |
| | | |
| | | short val = siemensS7Net.getByteTransform().TransInt16(result3.Content, i * 2); |
| | | ForkLiftStaProtocol forkLiftStaProtocol = forkLiftStaProtocols.get(i); |
| | | forkLiftStaProtocol.setHasCar(val == 1); |
| | | } |
| | | } |
| | | |
| | |
| | | deviceDataLog.setCreateTime(new Date()); |
| | | deviceDataLogService.insert(deviceDataLog); |
| | | |
| | | //ä¿åæ°æ®è®°å½ |
| | | DeviceDataLog deviceDataLog2 = new DeviceDataLog(); |
| | | deviceDataLog2.setOriginData(Base64.getEncoder().encodeToString(result2.Content)); |
| | | deviceDataLog2.setWcsData(JSON.toJSONString(forkLiftStaProtocols)); |
| | | deviceDataLog2.setType("forkLiftStaProtocols"); |
| | | deviceDataLog2.setDeviceNo(forkLiftProtocol.getLiftNo()); |
| | | deviceDataLog2.setCreateTime(new Date()); |
| | | deviceDataLogService.insert(deviceDataLog2); |
| | | |
| | | //æ´æ°ééæ¶é´ |
| | | forkLiftProtocol.setDeviceDataLog(System.currentTimeMillis()); |
| | | } |
| | |
| | | <select id="selectLiftWrkMast" resultMap="BaseResultMap"> |
| | | select * from asr_wrk_mast |
| | | where lift_no = #{liftNo} |
| | | and wrk_sts in (3,4,104,105,301,302,303,304,305,306,307,308,309) |
| | | and wrk_sts not in (9,10,109,110,210,311,410) |
| | | limit 0,1 |
| | | </select> |
| | | |