diff --git a/src/main/java/org/mobidgim/mobidigimproject/controller/Controller.java b/src/main/java/org/mobidgim/mobidigimproject/controller/Controller.java index c0c8460..4afe714 100644 --- a/src/main/java/org/mobidgim/mobidigimproject/controller/Controller.java +++ b/src/main/java/org/mobidgim/mobidigimproject/controller/Controller.java @@ -40,7 +40,7 @@ public class Controller { } @GetMapping("/get-register") - public Api getRegister(@RequestParam("id") String id) throws IOException { + public Api getRegister() throws IOException { var entity = settingService.readFileWithRegister(); return Api.OK(entity); } diff --git a/src/main/java/org/mobidgim/mobidigimproject/model/register/RegisterDTO.java b/src/main/java/org/mobidgim/mobidigimproject/model/register/RegisterDTO.java index f226e16..78193f4 100644 --- a/src/main/java/org/mobidgim/mobidigimproject/model/register/RegisterDTO.java +++ b/src/main/java/org/mobidgim/mobidigimproject/model/register/RegisterDTO.java @@ -20,21 +20,21 @@ public class RegisterDTO { private AnalogInputLevel AnalogInputLevel; - private boolean ai0; + private AnalogPort ai0; - private boolean ai1; + private AnalogPort ai1; - private boolean ai2; + private AnalogPort ai2; - private boolean ai3; + private AnalogPort ai3; - private boolean di0; + private AnalogPort di0; - private boolean di1; + private AnalogPort di1; - private boolean di2; + private AnalogPort di2; - private boolean di3; + private AnalogPort di3; private CanInput canInput; @@ -62,49 +62,52 @@ public class RegisterDTO { private String meid; - private List modbusField; - - private List opcUaField; - - private List canField; - - @JsonProperty("ai0") - public String getAi0AsString(){ - return BoolToString.convertToAnalogPortValue(ai0); - } - - @JsonProperty("ai1") - public String getAi1AsString(){ - return BoolToString.convertToAnalogPortValue(ai1); - } - - @JsonProperty("ai2") - public String getAi2AsString(){ - return BoolToString.convertToAnalogPortValue(ai2); - } - - @JsonProperty("ai3") - public String getAi3AsString(){ - return BoolToString.convertToAnalogPortValue(ai3); - } - - @JsonProperty("di0") - public String getDi0AsString(){ - return BoolToString.convertToAnalogPortValue(di0); - } - - @JsonProperty("di1") - public String getDi1AsString(){ - return BoolToString.convertToAnalogPortValue(di1); - } - - @JsonProperty("di2") - public String getDi2AsString(){ - return BoolToString.convertToAnalogPortValue(di2); - } - - @JsonProperty("di3") - public String getDi3AsString(){ - return BoolToString.convertToAnalogPortValue(di3); - } + @JsonProperty("MODBUS") + private List modbusFields; + + @JsonProperty("OPC_UA") + private List opcUaFields; + + @JsonProperty("CAN") + private List canFields; + +// @JsonProperty("ai0") +// public String getAi0AsString(){ +// return BoolToString.convertToAnalogPortValue(ai0); +// } +// +// @JsonProperty("ai1") +// public String getAi1AsString(){ +// return BoolToString.convertToAnalogPortValue(ai1); +// } +// +// @JsonProperty("ai2") +// public String getAi2AsString(){ +// return BoolToString.convertToAnalogPortValue(ai2); +// } +// +// @JsonProperty("ai3") +// public String getAi3AsString(){ +// return BoolToString.convertToAnalogPortValue(ai3); +// } +// +// @JsonProperty("di0") +// public String getDi0AsString(){ +// return BoolToString.convertToAnalogPortValue(di0); +// } +// +// @JsonProperty("di1") +// public String getDi1AsString(){ +// return BoolToString.convertToAnalogPortValue(di1); +// } +// +// @JsonProperty("di2") +// public String getDi2AsString(){ +// return BoolToString.convertToAnalogPortValue(di2); +// } +// +// @JsonProperty("di3") +// public String getDi3AsString(){ +// return BoolToString.convertToAnalogPortValue(di3); +// } } diff --git a/src/main/java/org/mobidgim/mobidigimproject/model/register/enums/AnalogPort.java b/src/main/java/org/mobidgim/mobidigimproject/model/register/enums/AnalogPort.java index db91059..9d79a2d 100644 --- a/src/main/java/org/mobidgim/mobidigimproject/model/register/enums/AnalogPort.java +++ b/src/main/java/org/mobidgim/mobidigimproject/model/register/enums/AnalogPort.java @@ -7,7 +7,7 @@ import lombok.AllArgsConstructor; @AllArgsConstructor public enum AnalogPort { - NOT_UseD("0", false), + NOT_USED("0", false), USED("1", true); private final String portValue; @@ -15,6 +15,14 @@ public enum AnalogPort { @JsonCreator public static AnalogPort fromPortValue(String portValue) { + if ("true".equalsIgnoreCase(portValue)) { + return AnalogPort.USED; + } + if ("false".equalsIgnoreCase(portValue)) { + return AnalogPort.NOT_USED; + } + + for(AnalogPort analogPort : AnalogPort.values()) { if(analogPort.portValue.equals(portValue)) { return analogPort; diff --git a/src/main/java/org/mobidgim/mobidigimproject/model/register/sebDTO/BoolToString.java b/src/main/java/org/mobidgim/mobidigimproject/model/register/sebDTO/BoolToString.java index 2c8eb52..27fc2a5 100644 --- a/src/main/java/org/mobidgim/mobidigimproject/model/register/sebDTO/BoolToString.java +++ b/src/main/java/org/mobidgim/mobidigimproject/model/register/sebDTO/BoolToString.java @@ -13,7 +13,7 @@ public class BoolToString { return AnalogPort.USED.getPortValue(); } else { - return AnalogPort.NOT_UseD.getPortValue(); + return AnalogPort.NOT_USED.getPortValue(); } } } diff --git a/src/main/java/org/mobidgim/mobidigimproject/service/SettingService.java b/src/main/java/org/mobidgim/mobidigimproject/service/SettingService.java index d40909e..cada5fd 100644 --- a/src/main/java/org/mobidgim/mobidigimproject/service/SettingService.java +++ b/src/main/java/org/mobidgim/mobidigimproject/service/SettingService.java @@ -10,6 +10,7 @@ import org.mobidgim.mobidigimproject.model.register.enums.Protocol; import org.mobidgim.mobidigimproject.model.register.sebDTO.CanField; import org.mobidgim.mobidigimproject.model.register.sebDTO.ModbusField; import org.mobidgim.mobidigimproject.model.register.sebDTO.OpcUaField; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import javax.swing.text.html.parser.Parser; @@ -25,8 +26,15 @@ import java.util.Map; @Service public class SettingService { + private final ObjectMapper mapper; + + @Autowired + public SettingService(ObjectMapper mapper) { + this.mapper = mapper; + } + + public void saveFileWithDevice(DeviceDTO request) throws IOException { - ObjectMapper mapper = new ObjectMapper(); mapper.setPropertyNamingStrategy(PropertyNamingStrategies.SNAKE_CASE); String json = mapper.writerWithDefaultPrettyPrinter().writeValueAsString(request); @@ -49,40 +57,21 @@ public class SettingService { } public RegisterDTO saveFileWithRegister(RegisterDTO request) throws IOException { - ObjectMapper mapper = new ObjectMapper(); - mapper.setPropertyNamingStrategy(PropertyNamingStrategies.SNAKE_CASE); - Map finalJsonMap = mapper.convertValue(request, Map.class); - - finalJsonMap.remove("opc_ua_field"); - finalJsonMap.remove("modbus_field"); - finalJsonMap.remove("can_field"); - - if (request.getProtocol() != null) { - Protocol protocol = request.getProtocol(); - - if (protocol == Protocol.OPC_UA){ - List opcUaField = request.getOpcUaField(); - if(opcUaField != null && !opcUaField.isEmpty()){ - finalJsonMap.put("OPC_UA", opcUaField); - } - } - else if(protocol == Protocol.MODBUS){ - List modbusField = request.getModbusField(); - if(modbusField != null && !modbusField.isEmpty()){ - finalJsonMap.put("MODBUS", modbusField); - } - } + if (request.getProtocol() != Protocol.OPC_UA) { + request.setOpcUaFields(null); } - if(request.getCanInput() == CanInput.On){ - List canField = request.getCanField(); - if(canField != null && !canField.isEmpty()){ - finalJsonMap.put("CAN", canField); - } + if (request.getProtocol() != Protocol.MODBUS) { + request.setModbusFields(null); } - String json = mapper.writerWithDefaultPrettyPrinter().writeValueAsString(finalJsonMap); + if (request.getCanInput() != CanInput.On) { + request.setCanFields(null); + } + + + String json = mapper.writerWithDefaultPrettyPrinter().writeValueAsString(request); String directoryPath = "./temp"; Path dirPath = Paths.get(directoryPath); @@ -98,9 +87,10 @@ public class SettingService { } public RegisterDTO readFileWithRegister() throws IOException { - ObjectMapper mapper = new ObjectMapper(); - mapper.setPropertyNamingStrategy(PropertyNamingStrategies.SNAKE_CASE); - return mapper.readValue(new File("./temp/deviceConfig.json"), RegisterDTO.class); + String filename = "./temp/registerConfig.json"; + Path filePath = Paths.get(filename); + String jsonString = Files.readString(filePath); + return this.mapper.readValue(jsonString, RegisterDTO.class); } }