|
@@ -1,17 +1,11 @@
|
|
|
package com.its.cctv.api.service;
|
|
|
|
|
|
import com.its.app.utils.ByteUtils;
|
|
|
-import com.its.cctv.api.dto.CctvParamControlDto;
|
|
|
-import com.its.cctv.api.dto.CctvPresetControlDto;
|
|
|
-import com.its.cctv.api.dto.CctvPtzControlDto;
|
|
|
-import com.its.cctv.api.dto.CctvStatusDto;
|
|
|
+import com.its.cctv.api.dto.*;
|
|
|
import com.its.cctv.domain.NET;
|
|
|
import com.its.cctv.entity.TbCctvCtlr;
|
|
|
import com.its.cctv.global.AppRepository;
|
|
|
-import com.its.cctv.xnettcp.cctv.protocol.CctvReqParamSet;
|
|
|
-import com.its.cctv.xnettcp.cctv.protocol.CctvReqPresetMove;
|
|
|
-import com.its.cctv.xnettcp.cctv.protocol.CctvReqPresetQry;
|
|
|
-import com.its.cctv.xnettcp.cctv.protocol.CctvReqPtzCtrl;
|
|
|
+import com.its.cctv.xnettcp.cctv.protocol.*;
|
|
|
import lombok.Getter;
|
|
|
import lombok.RequiredArgsConstructor;
|
|
|
import lombok.Setter;
|
|
@@ -181,7 +175,13 @@ public class CctvControlService {
|
|
|
}
|
|
|
return result;
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
+ /**
|
|
|
+ * CCTV 파라미터정보 설정
|
|
|
+ * @param id
|
|
|
+ * @param req
|
|
|
+ * @return
|
|
|
+ */
|
|
|
public CctvParamControlDto.CctvParamControlRes controlParam(Long id, CctvParamControlDto.CctvParamControlReq req) {
|
|
|
log.info("controlParam: {}", id);
|
|
|
TbCctvCtlr cctv = this.requireOne(id);
|
|
@@ -205,6 +205,11 @@ public class CctvControlService {
|
|
|
return result;
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * CCTV 파라미터 정보 조회
|
|
|
+ * @param id
|
|
|
+ * @return
|
|
|
+ */
|
|
|
public CctvParamControlDto.CctvParamValueRes requestParam(Long id) {
|
|
|
log.info("requestParam: {}", id);
|
|
|
TbCctvCtlr cctv = this.requireOne(id);
|
|
@@ -240,6 +245,11 @@ public class CctvControlService {
|
|
|
return result;
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * CCTV 프리셋 현재위치정보 요청
|
|
|
+ * @param id
|
|
|
+ * @return
|
|
|
+ */
|
|
|
public CctvPresetControlDto.CctvPresetValueRes requestPresetValue(Long id) {
|
|
|
log.info("requestPresetValue: {}", id);
|
|
|
TbCctvCtlr cctv = this.requireOne(id);
|
|
@@ -277,6 +287,11 @@ public class CctvControlService {
|
|
|
return result;
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * Object Notify TEST
|
|
|
+ * @param id
|
|
|
+ * @return
|
|
|
+ */
|
|
|
public CctvStatusDto.CctvStatusNotifyDtoRes notifyStatus(Long id) {
|
|
|
log.info("notifyStatus: {}", id);
|
|
|
TbCctvCtlr cctv = this.requireOne(id);
|
|
@@ -299,4 +314,72 @@ public class CctvControlService {
|
|
|
return result;
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * CCTV 가변문자 설정
|
|
|
+ * @param id
|
|
|
+ * @param req
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public CctvVarCharControlDto.CctvVarCharControlRes controlVarCharSet(Long id, CctvVarCharControlDto.CctvVarCharControlSetReq req) {
|
|
|
+ log.info("controlVarCharSet: {}", id);
|
|
|
+ TbCctvCtlr cctv = this.requireOne(id);
|
|
|
+ if (cctv == null) {
|
|
|
+ return new CctvVarCharControlDto.CctvVarCharControlRes(1, "CCTV 제어기 정보를 찾을 수 없습니다.");
|
|
|
+ }
|
|
|
+ if (cctv.getNetState() != NET.LOGINED) {
|
|
|
+ return new CctvVarCharControlDto.CctvVarCharControlRes(2, "CCTV 통신연결이 되어 있지 않습니다.");
|
|
|
+ }
|
|
|
+
|
|
|
+ CctvVarCharControlDto.CctvVarCharControlRes result = new CctvVarCharControlDto.CctvVarCharControlRes(0, "success");
|
|
|
+ CctvReqCharVar pkt = new CctvReqCharVar(cctv.getAddress());
|
|
|
+ if (!pkt.setValue(
|
|
|
+ req.getSectorNo().byteValue(),
|
|
|
+ req.getStartPan(), req.getEndPan(),
|
|
|
+ req.getCh1CharSize().byteValue(), req.getCh1PosX(), req.getCh2PosY(),
|
|
|
+ req.getCh2CharSize().byteValue(), req.getCh2PosX(), req.getCh2PosY(),
|
|
|
+ req.getCh1Char(), req.getCh2Char()
|
|
|
+ )) {
|
|
|
+ return new CctvVarCharControlDto.CctvVarCharControlRes(3, "CCTV 가변문자 설정값에 오류가 있습니다.");
|
|
|
+ }
|
|
|
+
|
|
|
+ ByteBuffer sendBuffer = pkt.getByteBuffer();
|
|
|
+ if (cctv.sendData(sendBuffer, 0, "cctv_CharVarSet")) {
|
|
|
+ log.info("CHAR-VAR-SET send success.");
|
|
|
+ } else {
|
|
|
+ result.setResult(4, "CCTV CHAR-VAR-SET 명령 전송이 실패하였습니다.");
|
|
|
+ log.error("CHAR-VAR-SET send failed.");
|
|
|
+ }
|
|
|
+ return result;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * CCTV 가변문자 삭제
|
|
|
+ * @param id
|
|
|
+ * @param req
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public CctvVarCharControlDto.CctvVarCharControlRes controlVarCharDel(Long id, CctvVarCharControlDto.CctvVarCharControlDelReq req) {
|
|
|
+ log.info("controlVarCharDel: {}", id);
|
|
|
+ TbCctvCtlr cctv = this.requireOne(id);
|
|
|
+ if (cctv == null) {
|
|
|
+ return new CctvVarCharControlDto.CctvVarCharControlRes(1, "CCTV 제어기 정보를 찾을 수 없습니다.");
|
|
|
+ }
|
|
|
+ if (cctv.getNetState() != NET.LOGINED) {
|
|
|
+ return new CctvVarCharControlDto.CctvVarCharControlRes(2, "CCTV 통신연결이 되어 있지 않습니다.");
|
|
|
+ }
|
|
|
+
|
|
|
+ CctvVarCharControlDto.CctvVarCharControlRes result = new CctvVarCharControlDto.CctvVarCharControlRes(0, "success");
|
|
|
+ CctvReqCharDel pkt = new CctvReqCharDel(cctv.getAddress());
|
|
|
+ pkt.setValue(req.getSectorNo().byteValue());
|
|
|
+
|
|
|
+ ByteBuffer sendBuffer = pkt.getByteBuffer();
|
|
|
+ if (cctv.sendData(sendBuffer, 0, "cctv_CharVarDel")) {
|
|
|
+ log.info("CHAR-VAR-DEL send success.");
|
|
|
+ } else {
|
|
|
+ result.setResult(4, "CCTV CHAR-VAR-DEL 명령 전송이 실패하였습니다.");
|
|
|
+ log.error("CHAR-VAR-DEL send failed.");
|
|
|
+ }
|
|
|
+ return result;
|
|
|
+ }
|
|
|
+
|
|
|
}
|