feat(SetPTZPos):增加 PTZ 操作的可配置性
- 在 SetPTZPos 函数中添加 Action 参数,用于控制 PTZ 操作类型- 更新 Core.go 中的 SetPTZPOS 函数,根据 Action 参数执行不同操作 - 修改 BallCamera.go 中的 SetPTZPos调用,传入 Action 参数
This commit is contained in:
parent
1e3d98c5a7
commit
d7cbd9e3b2
@ -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
|
||||
}
|
||||
|
||||
24
Core.go
24
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")
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user