张世豪
4 天以前 dc9dce0555beb85d1262893fd5d56747d6a83855
src/dikuai/Dikuai.java
@@ -21,10 +21,6 @@
    private String boundaryCoordinates;
    // 规划路径(存储路径坐标点集合)
    private String plannedPath;
    // 障碍物经纬度坐标
    private String obstacleOriginalCoordinates;
    // 障碍物坐标
    private String obstacleCoordinates;
    // 返回点坐标
    private String returnPointCoordinates;
    // 边界点间隔
@@ -42,9 +38,15 @@
    // 最新更新时间
    private String updateTime;
    // 割草模式
    private String mowingTrack;
    // 割草实时轨迹
    private String mowingPattern;
    // 割草宽度
    private String mowingWidth;
    // 割草机割刀宽度(米),默认0.40米
    private String mowingBladeWidth;
    // 割草重叠距离(米),默认0.06米
    private String mowingOverlapDistance;
    // 存储多个地块的映射表,键为地块编号
    private static Map<String, Dikuai> dikuaiMap = new HashMap<>();
@@ -95,8 +97,6 @@
                dikuai.boundaryOriginalCoordinates = landProps.getProperty("boundaryOriginalCoordinates", "-1");
                dikuai.boundaryCoordinates = landProps.getProperty("boundaryCoordinates", "-1");
                dikuai.plannedPath = landProps.getProperty("plannedPath", "-1");
                dikuai.obstacleOriginalCoordinates = landProps.getProperty("obstacleOriginalCoordinates", "-1");
                dikuai.obstacleCoordinates = landProps.getProperty("obstacleCoordinates", "-1");
                dikuai.returnPointCoordinates = landProps.getProperty("returnPointCoordinates", "-1");
                dikuai.boundaryPointInterval = landProps.getProperty("boundaryPointInterval", "-1");
                dikuai.angleThreshold = landProps.getProperty("angleThreshold", "-1");
@@ -107,6 +107,9 @@
                dikuai.updateTime = landProps.getProperty("updateTime", "-1");
                dikuai.mowingPattern = landProps.getProperty("mowingPattern", "-1");
                dikuai.mowingWidth = landProps.getProperty("mowingWidth", "-1");
                dikuai.mowingTrack = landProps.getProperty("mowingTrack", "-1");
                dikuai.mowingBladeWidth = landProps.getProperty("mowingBladeWidth", "0.40");
                dikuai.mowingOverlapDistance = landProps.getProperty("mowingOverlapDistance", "0.06");
                
                dikuaiMap.put(landNum, dikuai);
            }
@@ -195,12 +198,6 @@
            case "plannedPath":
                this.plannedPath = value;
                return true;
            case "obstacleOriginalCoordinates":
                this.obstacleOriginalCoordinates = value;
                return true;
            case "obstacleCoordinates":
                this.obstacleCoordinates = value;
                return true;
            case "returnPointCoordinates":
                this.returnPointCoordinates = value;
                return true;
@@ -231,6 +228,15 @@
            case "mowingWidth":
                this.mowingWidth = value;
                return true;
            case "mowingTrack":
                this.mowingTrack = value;
                return true;
            case "mowingBladeWidth":
                this.mowingBladeWidth = value;
                return true;
            case "mowingOverlapDistance":
                this.mowingOverlapDistance = value;
                return true;
            default:
                System.err.println("未知字段: " + fieldName);
                return false;
@@ -254,8 +260,6 @@
            if (dikuai.boundaryOriginalCoordinates != null) properties.setProperty(landNumber + ".boundaryOriginalCoordinates", dikuai.boundaryOriginalCoordinates);
            if (dikuai.boundaryCoordinates != null) properties.setProperty(landNumber + ".boundaryCoordinates", dikuai.boundaryCoordinates);
            if (dikuai.plannedPath != null) properties.setProperty(landNumber + ".plannedPath", dikuai.plannedPath);
            if (dikuai.obstacleOriginalCoordinates != null) properties.setProperty(landNumber + ".obstacleOriginalCoordinates", dikuai.obstacleOriginalCoordinates);
            if (dikuai.obstacleCoordinates != null) properties.setProperty(landNumber + ".obstacleCoordinates", dikuai.obstacleCoordinates);
            if (dikuai.returnPointCoordinates != null) properties.setProperty(landNumber + ".returnPointCoordinates", dikuai.returnPointCoordinates);
            if (dikuai.boundaryPointInterval != null) properties.setProperty(landNumber + ".boundaryPointInterval", dikuai.boundaryPointInterval);
            if (dikuai.angleThreshold != null) properties.setProperty(landNumber + ".angleThreshold", dikuai.angleThreshold);
@@ -266,6 +270,9 @@
            if (dikuai.updateTime != null) properties.setProperty(landNumber + ".updateTime", dikuai.updateTime);
            if (dikuai.mowingPattern != null) properties.setProperty(landNumber + ".mowingPattern", dikuai.mowingPattern);
            if (dikuai.mowingWidth != null) properties.setProperty(landNumber + ".mowingWidth", dikuai.mowingWidth);
            if (dikuai.mowingTrack != null) properties.setProperty(landNumber + ".mowingTrack", dikuai.mowingTrack);
            if (dikuai.mowingBladeWidth != null) properties.setProperty(landNumber + ".mowingBladeWidth", dikuai.mowingBladeWidth);
            if (dikuai.mowingOverlapDistance != null) properties.setProperty(landNumber + ".mowingOverlapDistance", dikuai.mowingOverlapDistance);
        }
        
        try {
@@ -329,22 +336,6 @@
        this.plannedPath = plannedPath;
    }
    public String getObstacleOriginalCoordinates() {
        return obstacleOriginalCoordinates;
    }
    public void setObstacleOriginalCoordinates(String obstacleOriginalCoordinates) {
        this.obstacleOriginalCoordinates = obstacleOriginalCoordinates;
    }
    public String getObstacleCoordinates() {
        return obstacleCoordinates;
    }
    public void setObstacleCoordinates(String obstacleCoordinates) {
        this.obstacleCoordinates = obstacleCoordinates;
    }
    public String getReturnPointCoordinates() {
        return returnPointCoordinates;
    }
@@ -425,6 +416,30 @@
        this.mowingWidth = mowingWidth;
    }
    public String getMowingTrack() {
        return mowingTrack;
    }
    public void setMowingTrack(String mowingTrack) {
        this.mowingTrack = mowingTrack;
    }
    public String getMowingBladeWidth() {
        return mowingBladeWidth;
    }
    public void setMowingBladeWidth(String mowingBladeWidth) {
        this.mowingBladeWidth = mowingBladeWidth;
    }
    public String getMowingOverlapDistance() {
        return mowingOverlapDistance;
    }
    public void setMowingOverlapDistance(String mowingOverlapDistance) {
        this.mowingOverlapDistance = mowingOverlapDistance;
    }
    @Override
    public String toString() {
        return "Dikuai{" +
@@ -434,8 +449,6 @@
                ", boundaryOriginalCoordinates='" + boundaryOriginalCoordinates + '\'' +
                ", boundaryCoordinates='" + boundaryCoordinates + '\'' +
                ", plannedPath='" + plannedPath + '\'' +
                ", obstacleOriginalCoordinates='" + obstacleOriginalCoordinates + '\'' +
                ", obstacleCoordinates='" + obstacleCoordinates + '\'' +
                ", returnPointCoordinates='" + returnPointCoordinates + '\'' +
                ", boundaryPointInterval='" + boundaryPointInterval + '\'' +
                ", angleThreshold='" + angleThreshold + '\'' +