feat(SetPTZPos):增加 PTZ 操作的可配置性
- 在 SetPTZPos 函数中添加 Action 参数,用于控制 PTZ 操作类型- 更新 Core.go 中的 SetPTZPOS 函数,根据 Action 参数执行不同操作 - 修改 BallCamera.go 中的 SetPTZPos调用,传入 Action 参数
This commit is contained in:
		| @@ -246,7 +246,7 @@ func (this *BallCamera) PtzGotoPut(Action int, P, T, Z float64) error { | |||||||
| 		pBuf = append(pBuf, pBufv) | 		pBuf = append(pBuf, pBufv) | ||||||
| 		tBuf = append(tBuf, tBufv) | 		tBuf = append(tBuf, tBufv) | ||||||
| 		zBuf = append(zBuf, zBufv) | 		zBuf = append(zBuf, zBufv) | ||||||
| 		err = SetPTZPos(this.userId, pBuf, tBuf, zBuf) | 		err = SetPTZPos(this.userId, Action, pBuf, tBuf, zBuf) | ||||||
| 		if err != nil { | 		if err != nil { | ||||||
| 			return err | 			return err | ||||||
| 		} | 		} | ||||||
|   | |||||||
							
								
								
									
										18
									
								
								Core.go
									
									
									
									
									
								
							
							
						
						
									
										18
									
								
								Core.go
									
									
									
									
									
								
							| @@ -175,13 +175,25 @@ void GetPTZPOS(LONG lUserID) | |||||||
|     NET_DVR_SerialStop(lTranHandle); |     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 lTranHandle = NET_DVR_SerialStart(lUserID, 2,g_fSerialDataCallBack,6); | ||||||
|     LONG lSerialChan = 0; |     LONG lSerialChan = 0; | ||||||
|  | 	if (action == 1) { | ||||||
| 		NET_DVR_SerialSend(lTranHandle, lSerialChan, P, 7); | 		NET_DVR_SerialSend(lTranHandle, lSerialChan, P, 7); | ||||||
| 		NET_DVR_SerialSend(lTranHandle, lSerialChan, T, 7); | 		NET_DVR_SerialSend(lTranHandle, lSerialChan, T, 7); | ||||||
| 		NET_DVR_SerialSend(lTranHandle, lSerialChan, Z, 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); |     NET_DVR_SerialStop(lTranHandle); | ||||||
| 	sleep(1); | 	sleep(1); | ||||||
| } | } | ||||||
| @@ -388,7 +400,7 @@ func FindClose(Handle LONG) error { | |||||||
|  |  | ||||||
| var SerialMux sync.Mutex | 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) | 	cP := C.CBytes(P) | ||||||
| 	cT := C.CBytes(T) | 	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(cT) | ||||||
| 	defer C.free(cZ) | 	defer C.free(cZ) | ||||||
| 	SerialMux.Lock() | 	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() | 	SerialMux.Unlock() | ||||||
| 	return lastError("SetPTZPOS") | 	return lastError("SetPTZPOS") | ||||||
| } | } | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 kunmeng
					kunmeng