Browse Source

로직 수정

v2
gudae01 1 year ago
parent
commit
8a2825eb05
  1. 2
      src/main/java/org/mobidgim/mobidigimproject/controller/Controller.java
  2. 109
      src/main/java/org/mobidgim/mobidigimproject/model/register/RegisterDTO.java
  3. 10
      src/main/java/org/mobidgim/mobidigimproject/model/register/enums/AnalogPort.java
  4. 2
      src/main/java/org/mobidgim/mobidigimproject/model/register/sebDTO/BoolToString.java
  5. 56
      src/main/java/org/mobidgim/mobidigimproject/service/SettingService.java

2
src/main/java/org/mobidgim/mobidigimproject/controller/Controller.java

@ -40,7 +40,7 @@ public class Controller {
}
@GetMapping("/get-register")
public Api<RegisterDTO> getRegister(@RequestParam("id") String id) throws IOException {
public Api<RegisterDTO> getRegister() throws IOException {
var entity = settingService.readFileWithRegister();
return Api.OK(entity);
}

109
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> modbusField;
private List<OpcUaField> opcUaField;
private List<CanField> 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<ModbusField> modbusFields;
@JsonProperty("OPC_UA")
private List<OpcUaField> opcUaFields;
@JsonProperty("CAN")
private List<CanField> 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);
// }
}

10
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;

2
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();
}
}
}

56
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<String, Object> 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> opcUaField = request.getOpcUaField();
if(opcUaField != null && !opcUaField.isEmpty()){
finalJsonMap.put("OPC_UA", opcUaField);
}
}
else if(protocol == Protocol.MODBUS){
List<ModbusField> 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> 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);
}
}

Loading…
Cancel
Save