From f64883252bf183ef08b95954e5f04e99b14c039c Mon Sep 17 00:00:00 2001 From: heyujie <516346543@qq.com> Date: 星期四, 14 十月 2021 15:09:08 +0800 Subject: [PATCH] topreset --- hikptz.go | 20 +++++++--- hikptz.h | 1 hikptz.c | 52 ++++++++++++++++++++++++++ 3 files changed, 67 insertions(+), 6 deletions(-) diff --git a/hikptz.c b/hikptz.c index 0db4181..e033bfa 100644 --- a/hikptz.c +++ b/hikptz.c @@ -60,3 +60,55 @@ return; } + +void ToPreset(char *ip, char *userName, char *password, int port ,int channel ) +{ + // 鍒濆鍖� + NET_DVR_Init(); + //璁剧疆杩炴帴鏃堕棿涓庨噸杩炴椂闂� + NET_DVR_SetConnectTime(2000, 1); + NET_DVR_SetReconnect(10000, true); + + //--------------------------------------- + //璁剧疆寮傚父娑堟伅鍥炶皟鍑芥暟 + NET_DVR_SetExceptionCallBack_V30(0, NULL,g_ExceptionCallBack, NULL); + + //--------------------------------------- + // 娉ㄥ唽璁惧 + LONG lUserID; + //鐧诲綍鍙傛暟锛屽寘鎷澶囧湴鍧�銆佺櫥褰曠敤鎴枫�佸瘑鐮佺瓑 + NET_DVR_USER_LOGIN_INFO struLoginInfo = {0}; + struLoginInfo.bUseAsynLogin = 0; //鍚屾鐧诲綍鏂瑰紡 + strcpy(struLoginInfo.sDeviceAddress, ip); //璁惧IP鍦板潃 + struLoginInfo.wPort = port; //璁惧鏈嶅姟绔彛 + strcpy(struLoginInfo.sUserName, userName); //璁惧鐧诲綍鐢ㄦ埛鍚� + strcpy(struLoginInfo.sPassword, password); //璁惧鐧诲綍瀵嗙爜 + + //璁惧淇℃伅, 杈撳嚭鍙傛暟 + NET_DVR_DEVICEINFO_V40 struDeviceInfoV40 = {0}; + + lUserID = NET_DVR_Login_V40(&struLoginInfo, &struDeviceInfoV40); + if (lUserID < 0) + { + printf("Login failed, error code: %d\n", NET_DVR_GetLastError()); + NET_DVR_Cleanup(); + return; + } + + int iChannel = channel;//璁惧閫氶亾鍙� + DWORD dwPTZCommand = GOTO_PRESET; //杞埌棰勭疆鐐� + if(!NET_DVR_PTZPreset_Other(lUserID, iChannel,GOTO_PRESET)) + { + printf("PAN_LEFT start failed, error code: %d\n", NET_DVR_GetLastError()); + NET_DVR_Logout(lUserID); + NET_DVR_Cleanup(); + return; + } + //娉ㄩ攢鐢ㄦ埛 + NET_DVR_Logout(lUserID); + + //閲婃斁SDK璧勬簮 + NET_DVR_Cleanup(); + + return; +} diff --git a/hikptz.go b/hikptz.go index 449c42c..45d0d19 100644 --- a/hikptz.go +++ b/hikptz.go @@ -16,7 +16,7 @@ ) // SendVoice Send Voice -func PtzTrack(ip,password,port,userName string, channel,xBottom,xTop,yBottom,yTop int) { +func PtzTrack(ip,password,userName string, port, channel,xBottom,xTop,yBottom,yTop int) { cip := C.CString(ip) defer C.free(unsafe.Pointer(cip)) @@ -24,14 +24,22 @@ defer C.free(unsafe.Pointer(cusrname)) cpasswd := C.CString(password) defer C.free(unsafe.Pointer(cpasswd)) - cport := C.CString(port) - defer C.free(unsafe.Pointer(cport)) + - C.PtzTrack(cip, cusrname, cpasswd, cport, C.int(channel),C.int(xBottom),C.int(xTop),C.int(yBottom),C.int(yTop) ) + C.PtzTrack(cip, cusrname, cpasswd, C.int(port), C.int(channel),C.int(xBottom),C.int(xTop),C.int(yBottom),C.int(yTop) ) } +// void ToPreset(char *ip, char *userName, char *password, char *port ,int channel ) -func ToPreset(ip,password,port,userName string, ch int) { +func ToPreset(ip,userName,password string, port , ch int) { - + cip := C.CString(ip) + defer C.free(unsafe.Pointer(cip)) + cusrname := C.CString(userName) + defer C.free(unsafe.Pointer(cusrname)) + cpasswd := C.CString(password) + defer C.free(unsafe.Pointer(cpasswd)) + + + C.PtzTrack(cip, cusrname, cpasswd, C.int(port), C.int(ch) ) } \ No newline at end of file diff --git a/hikptz.h b/hikptz.h index 14b3cba..66090b4 100644 --- a/hikptz.h +++ b/hikptz.h @@ -6,6 +6,7 @@ #endif void PtzTrack(char *ip, char *userName, char *password, char *port ,int channel ,int xBottom ,int xTop ,int yBottom ,int yTop ) +void ToPreset(char *ip, char *userName, char *password, int port ,int channel ) #ifdef __cplusplus } -- Gitblit v1.8.0