| | |
| | | null, // 动作号 |
| | | null, // 优先级 |
| | | ActionTypeType.TurnCorner.desc, // 名称 |
| | | (double) mapService.spinDirection(lastCode).val, // 属性值 |
| | | (double) MapService.calcSpinDirection(lastCode, lastDirection, nextLaneDir).val, // 属性值 |
| | | lastCode.getData(), // 地面码 |
| | | String.valueOf(nextLaneDir), // 动作参数 |
| | | ActionTypeType.TurnCorner.val(), // 动作类型 |
| | |
| | | now // 工作时间 |
| | | )); |
| | | lastDirection = nextLaneDir; |
| | | |
| | | if (nextDirection.equals(oppNextLaneDir)) { |
| | | reverse = true; |
| | | } |
| | | } else { |
| | | if (nextDirection.equals(oppNextLaneDir)) { |
| | | nextDirection = nextLaneDir; |
| | | reverse = true; |
| | | } |
| | | } |
| | | |
| | | nextDirection = nextLaneDir; |
| | | } else if (null != lastLaneDir) { |
| | | final double oppLastLaneDir = (lastLaneDir + 180) % 360; |
| | | if (nextDirection.equals(oppLastLaneDir)) { |
| | | if (nextDirection.equals(oppNextLaneDir)) { |
| | | reverse = true; |
| | | } |
| | | nextDirection = lastLaneDir; |
| | | nextDirection = nextLaneDir; // 防止 第一个动作一定是 turn 出问题 |
| | | } else if (null != lastLaneDir) { // todo turn 环形直角 |
| | | final double oppLastLaneDir = (lastLaneDir + 180) % 360; |
| | | |
| | | if (!lastDirection.equals(nextDirection)) { |
| | | if (!lastDirection.equals(lastLaneDir)) { |
| | | if (!lastCode.getCornerBool()) { |
| | | throw new CoolException(agvNo + "号小车离开巷道需调整方向为 " + nextDirection + "°,请推至转弯点手动调整"); |
| | | } |
| | | } |
| | | |
| | | if (nextDirection.equals(oppLastLaneDir)) { |
| | | reverse = true; |
| | | } |
| | | nextDirection = lastLaneDir; // 防止 第一个动作一定是 turn 出问题 |
| | | } else { |
| | | |
| | | // 如果下一个方向正好是作业方向的相反方向,则重置下一个方向为作业方向,标记 reverse = true |
| | |
| | | null, // 动作号 |
| | | null, // 优先级 |
| | | ActionTypeType.TurnCorner.desc, // 名称 |
| | | (double) mapService.spinDirection(lastCode).val, // 属性值 |
| | | (double) MapService.calcSpinDirection(lastCode, lastDirection, nextDirection).val, // 属性值 |
| | | lastCode.getData(), // 地面码 |
| | | String.valueOf(nextDirection), // 动作参数 |
| | | ActionTypeType.TurnCorner.val(), // 动作类型 |
| | |
| | | null, // 动作号 |
| | | null, // 优先级 |
| | | ActionTypeType.TurnCorner.desc, // 名称 |
| | | (double) mapService.spinDirection(lastCode).val, // 属性值 |
| | | (double) MapService.calcSpinDirection(lastCode, lastDirection, nextDirection).val, // 属性值 |
| | | lastCode.getData(), // 地面码 |
| | | String.valueOf(nextDirection), // 动作参数 |
| | | ActionTypeType.TurnCorner.val(), // 动作类型 |
| | |
| | | null, // 动作号 |
| | | null, // 优先级 |
| | | ActionTypeType.TurnCorner.desc, // 名称 |
| | | (double) mapService.spinDirection(lastCode).val, // 属性值 |
| | | (double) MapService.calcSpinDirection(lastCode, lastDirection, firstTurnDir).val, // 属性值 |
| | | lastCode.getData(), // 地面码 |
| | | String.valueOf(firstTurnDir), // 动作参数 |
| | | ActionTypeType.TurnCorner.val(), // 动作类型 |
| | |
| | | null, // 动作号 |
| | | null, // 优先级 |
| | | ActionTypeType.TurnCorner.desc, // 名称 |
| | | (double) mapService.spinDirection(lastCode).val, // 属性值 |
| | | (double) MapService.calcSpinDirection(lastCode, lastDirection, oriStaWorkDirection).val, // 属性值 |
| | | lastCode.getData(), // 地面码 |
| | | String.valueOf(oriStaWorkDirection), // 动作参数 |
| | | ActionTypeType.TurnCorner.val(), // 动作类型 |
| | |
| | | null, // 动作号 |
| | | null, // 优先级 |
| | | ActionTypeType.TurnCorner.desc, // 名称 |
| | | (double) mapService.spinDirection(lastCode).val, // 属性值 |
| | | (double) MapService.calcSpinDirection(lastCode, lastDirection, destStaWorkDirection).val, // 属性值 |
| | | lastCode.getData(), // 地面码 |
| | | String.valueOf(destStaWorkDirection), // 动作参数 |
| | | ActionTypeType.TurnCorner.val(), // 动作类型 |
| | |
| | | null, // 动作号 |
| | | null, // 优先级 |
| | | ActionTypeType.TurnCorner.desc, // 名称 |
| | | (double) mapService.spinDirection(lastCode).val, // 属性值 |
| | | (double) MapService.calcSpinDirection(lastCode, lastDirection, chargeDirection).val, // 属性值 |
| | | lastCode.getData(), // 地面码 |
| | | String.valueOf(chargeDirection), // 动作参数 |
| | | ActionTypeType.TurnCorner.val(), // 动作类型 |