|
@@ -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")
|
|
|
}
|