瀏覽代碼

feat(SetPTZPos):增加 PTZ 操作的可配置性

- 在 SetPTZPos 函数中添加 Action 参数,用于控制 PTZ 操作类型- 更新 Core.go 中的 SetPTZPOS 函数,根据 Action 参数执行不同操作
- 修改 BallCamera.go 中的 SetPTZPos调用,传入 Action 参数
kunmeng 20 小時之前
父節點
當前提交
d7cbd9e3b2
共有 2 個文件被更改,包括 19 次插入7 次删除
  1. 1 1
      BallCamera.go
  2. 18 6
      Core.go

+ 1 - 1
BallCamera.go

@@ -246,7 +246,7 @@ func (this *BallCamera) PtzGotoPut(Action int, P, T, Z float64) error {
 		pBuf = append(pBuf, pBufv)
 		tBuf = append(tBuf, tBufv)
 		zBuf = append(zBuf, zBufv)
-		err = SetPTZPos(this.userId, pBuf, tBuf, zBuf)
+		err = SetPTZPos(this.userId, Action, pBuf, tBuf, zBuf)
 		if err != nil {
 			return err
 		}

+ 18 - 6
Core.go

@@ -175,13 +175,25 @@ void GetPTZPOS(LONG lUserID)
     NET_DVR_SerialStop(lTranHandle);
 }
 
-void SetPTZPOS(LONG lUserID,char* P,char* T,char *Z)
+void SetPTZPOS(LONG lUserID,int action,char* P,char* T,char *Z)
 {
     LONG lTranHandle = NET_DVR_SerialStart(lUserID, 2,g_fSerialDataCallBack,6);
     LONG lSerialChan = 0;
-    NET_DVR_SerialSend(lTranHandle, lSerialChan, P, 7);
-    NET_DVR_SerialSend(lTranHandle, lSerialChan, T, 7);
-    NET_DVR_SerialSend(lTranHandle, lSerialChan, Z, 7);
+	if (action == 1) {
+		NET_DVR_SerialSend(lTranHandle, lSerialChan, P, 7);
+		NET_DVR_SerialSend(lTranHandle, lSerialChan, T, 7);
+		NET_DVR_SerialSend(lTranHandle, lSerialChan, Z, 7);
+	}else if (action == 2) {
+		NET_DVR_SerialSend(lTranHandle, lSerialChan, P, 7);
+	}else if (action == 3) {
+		NET_DVR_SerialSend(lTranHandle, lSerialChan, T, 7);
+	}else if (action == 4) {
+		NET_DVR_SerialSend(lTranHandle, lSerialChan, Z, 7);
+	}else {
+		NET_DVR_SerialSend(lTranHandle, lSerialChan, P, 7);
+		NET_DVR_SerialSend(lTranHandle, lSerialChan, T, 7);
+	}
+
     NET_DVR_SerialStop(lTranHandle);
 	sleep(1);
 }
@@ -388,7 +400,7 @@ func FindClose(Handle LONG) error {
 
 var SerialMux sync.Mutex
 
-func SetPTZPos(lUserID LONG, P []byte, T []byte, Z []byte) error {
+func SetPTZPos(lUserID LONG, Action int, P []byte, T []byte, Z []byte) error {
 
 	cP := C.CBytes(P)
 	cT := C.CBytes(T)
@@ -397,7 +409,7 @@ func SetPTZPos(lUserID LONG, P []byte, T []byte, Z []byte) error {
 	defer C.free(cT)
 	defer C.free(cZ)
 	SerialMux.Lock()
-	C.SetPTZPOS(C.LONG(lUserID), (*C.char)(cP), (*C.char)(cT), (*C.char)(cZ))
+	C.SetPTZPOS(C.LONG(lUserID), C.int(Action), (*C.char)(cP), (*C.char)(cT), (*C.char)(cZ))
 	SerialMux.Unlock()
 	return lastError("SetPTZPOS")
 }