فهرست منبع

vms protocol notify update

shjung 3 سال پیش
والد
کامیت
204c1d99b1

+ 23 - 0
src/main/java/com/its/api/its/controller/vms/VmsControlController.java

@@ -60,4 +60,27 @@ public class VmsControlController {
         return this.service.controlParam(id, req);
     }
 
+    @ApiOperation(value = "VMS 이미지 심볼 재로딩 요청", response = VmsControlDto.VmsControlRes.class)
+    @PostMapping(value = "/notify/image-symbol", produces = {"application/json; charset=utf8"})
+    public VmsControlDto.VmsControlRes controlNotifyImageSymbol() {
+        return this.service.controlNotifyImageSymbol();
+    }
+
+    @ApiOperation(value = "VMS 이미지 트레픽 재로딩 요청", response = VmsControlDto.VmsControlRes.class)
+    @PostMapping(value = "/notify/image-traffic", produces = {"application/json; charset=utf8"})
+    public VmsControlDto.VmsControlRes controlNotifyImageTraffic() {
+        return this.service.controlNotifyImageTraffic();
+    }
+
+    @ApiOperation(value = "VMS 폼 재로딩 요청", response = VmsControlDto.VmsControlRes.class)
+    @PostMapping(value = "/notify/vms-form", produces = {"application/json; charset=utf8"})
+    public VmsControlDto.VmsControlRes controlNotifyVmsForm() {
+        return this.service.controlNotifyVmsForm();
+    }
+
+    @ApiOperation(value = "VMS 정보제공구간 재로딩 요청", response = VmsControlDto.VmsControlRes.class)
+    @PostMapping(value = "/notify/vms-ifsc", produces = {"application/json; charset=utf8"})
+    public VmsControlDto.VmsControlRes controlNotifyVmsIfsc() {
+        return this.service.controlNotifyVmsIfsc();
+    }
 }

+ 51 - 0
src/main/java/com/its/api/its/service/vms/VmsControlService.java

@@ -2,6 +2,7 @@ package com.its.api.its.service.vms;
 
 import com.its.api.its.model.dto.vms.VmsControlDto;
 import com.its.api.its.repository.vms.TbVmsCtlrRepository;
+import com.its.api.xnetudp.protocol.CENTER_COMM_DEFINE;
 import com.its.api.xnetudp.service.VmsServerRequestSender;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
@@ -71,4 +72,54 @@ public class VmsControlService {
         }
         return new VmsControlDto.VmsControlRes(9, "VMS 서버로 제어 명령 전송 중 알수 없는 오류가 발생 하였습니다.");
     }
+
+
+    /**
+     * VMS 제어기 이미지 심볼 리로드
+     * @return
+     */
+    public VmsControlDto.VmsControlRes controlNotifyImageSymbol() {
+        boolean isSendMsg = this.vmsServerRequestSender.controlNotify(CENTER_COMM_DEFINE.INT_OP_VMS_IMAGE_SYMBOL);
+        if (isSendMsg) {
+            return new VmsControlDto.VmsControlRes(0, "success");
+        }
+        return new VmsControlDto.VmsControlRes(9, "VMS 서버로 제어 명령 전송 중 알수 없는 오류가 발생 하였습니다.");
+    }
+
+    /**
+     * VMS 제어기 이미지 트레픽 리로드
+     * @return
+     */
+    public VmsControlDto.VmsControlRes controlNotifyImageTraffic() {
+        boolean isSendMsg = this.vmsServerRequestSender.controlNotify(CENTER_COMM_DEFINE.INT_OP_VMS_IMAGE_TRAFFIC);
+        if (isSendMsg) {
+            return new VmsControlDto.VmsControlRes(0, "success");
+        }
+        return new VmsControlDto.VmsControlRes(9, "VMS 서버로 제어 명령 전송 중 알수 없는 오류가 발생 하였습니다.");
+    }
+
+    /**
+     * VMS 폼 리로드
+     * @return
+     */
+    public VmsControlDto.VmsControlRes controlNotifyVmsForm() {
+        boolean isSendMsg = this.vmsServerRequestSender.controlNotify(CENTER_COMM_DEFINE.INT_OP_VMS_FORM_UPDATE);
+        if (isSendMsg) {
+            return new VmsControlDto.VmsControlRes(0, "success");
+        }
+        return new VmsControlDto.VmsControlRes(9, "VMS 서버로 제어 명령 전송 중 알수 없는 오류가 발생 하였습니다.");
+    }
+
+    /**
+     * VMS IFSC 리로드
+     * @return
+     */
+    public VmsControlDto.VmsControlRes controlNotifyVmsIfsc() {
+        boolean isSendMsg = this.vmsServerRequestSender.controlNotify(CENTER_COMM_DEFINE.INT_OP_VMS_IFSC_UPDATE);
+        if (isSendMsg) {
+            return new VmsControlDto.VmsControlRes(0, "success");
+        }
+        return new VmsControlDto.VmsControlRes(9, "VMS 서버로 제어 명령 전송 중 알수 없는 오류가 발생 하였습니다.");
+    }
+
 }

+ 8 - 4
src/main/java/com/its/api/xnetudp/protocol/CENTER_COMM_DEFINE.java

@@ -76,10 +76,14 @@ public class CENTER_COMM_DEFINE {
 	public static final int INT_OP_VMS_FORM_DOWNLOAD        = 0x0C;        /* VMS 통신 서버, 실시간 VMS 제공정보 다운로드 결과 저장 */
 	//public static final int INT_OP_VMS_FORM_DOWNLOAD        = 0x2A;        /* VMS 통신 서버, 실시간 VMS 제공정보 저장 */
 	//public static final int INT_OP_VMS_FORM_SAVE            = 0x29;        /* VMS 통신 서버, 실시간 VMS 제공정보 저장 */
-	public static final int INT_OP_VMS_IMAGE_SYMBOL         = 0x2B;        /* VMS image symbol update */
-	public static final int INT_OP_VMS_IMAGE_TRAFFIC        = 0x2C;        /* VMS image traffic update */
-	public static final int INT_OP_VMS_FORM_UPDATE          = 0x2D;        /* VMS form update */
-	public static final int INT_OP_VMS_IFSC_UPDATE          = 0x2E;        /* VMS ifsc update */
+	public static final int INT_OP_VMS_IMAGE_SYMBOL         = 0x10;        /* VMS image symbol update */
+	//public static final int INT_OP_VMS_IMAGE_SYMBOL         = 0x2B;        /* VMS image symbol update */
+	public static final int INT_OP_VMS_IMAGE_TRAFFIC        = 0x11;        /* VMS image traffic update */
+	//public static final int INT_OP_VMS_IMAGE_TRAFFIC        = 0x2C;        /* VMS image traffic update */
+	public static final int INT_OP_VMS_FORM_UPDATE          = 0x12;        /* VMS form update */
+	//public static final int INT_OP_VMS_FORM_UPDATE          = 0x2D;        /* VMS form update */
+	public static final int INT_OP_VMS_IFSC_UPDATE          = 0x13;        /* VMS ifsc update */
+	//public static final int INT_OP_VMS_IFSC_UPDATE          = 0x2E;        /* VMS ifsc update */
 
 	public static final int INT_OP_VMS_PARAM_RES            = 0x2F;        /* VMS 통신 서버, VMS 시설물 파라미터정보 전송 ==> 목포시 싸인텔레콤 추가 */
 

+ 39 - 0
src/main/java/com/its/api/xnetudp/protocol/CENTER_VMS_REQ_NOTIFY.java

@@ -0,0 +1,39 @@
+package com.its.api.xnetudp.protocol;
+
+import lombok.Data;
+
+import java.nio.ByteBuffer;
+import java.nio.ByteOrder;
+
+@Data
+public class CENTER_VMS_REQ_NOTIFY extends CENTER_VMS_COMM_MESSAGE {
+
+	public CENTER_VMS_REQ_NOTIFY(int opCode) {
+		super(CENTER_COMM_DEFINE.INT_ID_VMS_SERVER, opCode, 0, (byte)0x00);
+	}
+
+	@Override
+	public ByteBuffer getBuffer() {
+		int pktSize = 2;
+
+		setLength(pktSize);
+
+		ByteBuffer byteBuffer = ByteBuffer.allocate(CENTER_HEADER_SIZE + getLength());
+		byteBuffer.order(ByteOrder.BIG_ENDIAN);
+
+		byteBuffer.put(getSendId());
+		byteBuffer.put(getRecvId());
+		byteBuffer.put(getTotalFrame());
+		byteBuffer.put(getCurrentFrame());
+		byteBuffer.put(getReserved());
+		byteBuffer.put(getOpCode());
+		byteBuffer.putInt(getLength());
+		byteBuffer.put(getIntOpCode());
+		byteBuffer.put(getMsgSeq());
+
+		return byteBuffer;
+
+	}
+
+
+}

+ 12 - 4
src/main/java/com/its/api/xnetudp/service/VmsServerRequestSender.java

@@ -5,10 +5,7 @@ import com.its.api.its.global.UnitSystManager;
 import com.its.api.its.model.dto.vms.VmsControlDto;
 import com.its.api.its.model.entity.unit.TbUnitSyst;
 import com.its.api.xnetudp.codec.VmsServerRequestEncoder;
-import com.its.api.xnetudp.protocol.CENTER_VMS_REQ_LUMINANCE;
-import com.its.api.xnetudp.protocol.CENTER_VMS_REQ_PARAM;
-import com.its.api.xnetudp.protocol.CENTER_VMS_REQ_POWER;
-import com.its.api.xnetudp.protocol.CENTER_VMS_REQ_RESET;
+import com.its.api.xnetudp.protocol.*;
 import io.netty.bootstrap.Bootstrap;
 import io.netty.channel.*;
 import io.netty.channel.nio.NioEventLoopGroup;
@@ -123,4 +120,15 @@ public class VmsServerRequestSender {
         run(commMsg.getBuffer());
         return true;
     }
+
+    /**
+     * VMS 서버 Notify 요청
+     * @param opCode
+     * @return
+     */
+    public boolean controlNotify(int opCode) {
+        CENTER_VMS_REQ_NOTIFY commMsg = new CENTER_VMS_REQ_NOTIFY((byte)opCode);
+        run(commMsg.getBuffer());
+        return true;
+    }
 }