📄 hcnetsdk.h
字号:
UINT8 sPassword[PASSWD_LEN]; /* 密码 */ char cReserve[52]; }userInfo; struct { UINT8 fileName[100]; }fileInfo; struct { UINT32 dwChannel; UINT8 sUserName[NAME_LEN]; /*请求视频用户名*/ UINT8 sPassword[PASSWD_LEN]; /* 密码 */ NET_DVR_TIME struStartTime; /* 按时间回放的开始时间 */ NET_DVR_TIME struStopTime; /* 按时间回放的结束时间 */ }timeInfo; }objectInfo;}NET_DVR_DECCHANSTATUS, *LPNET_DVR_DECCHANSTATUS;typedef struct { UINT32 dwSize; NET_DVR_DECCHANSTATUS struDecState[MAX_DECNUM]; }NET_DVR_DECSTATUS, *LPNET_DVR_DECSTATUS;//叠加字符typedef struct { uint16_t wShowString; // 预览的图象上是否显示字符,0-不显示,1-显示 区域大小704*576,单个字符的大小为32*32 uint16_t wStringSize; /* 该行字符的长度,不能大于44个字符 */ uint16_t wShowStringTopLeftX; /* 字符显示位置的x坐标 */ uint16_t wShowStringTopLeftY; /* 字符名称显示位置的y坐标 */ char sString[44]; /* 要显示的字符内容 */}NET_DVR_SHOWSTRINGINFO, *LPNET_DVR_SHOWSTRINGINFO;//叠加字符typedef struct { uint32_t dwSize; NET_DVR_SHOWSTRINGINFO struStringInfo[MAX_STRINGNUM]; /* 要显示的字符内容 */}NET_DVR_SHOWSTRING, *LPNET_DVR_SHOWSTRING;#ifdef SDK_ALCATEL#ifdef SDK_ALCATEL_DXtypedef struct { UINT32 dwLostPercent; /*丢报率 0 <= lostPercent <= 100 例30表示30%*/ UINT32 dwTimeDelay; /*延时以 ms 为单位*/}NET_DVR_NETSTATUS, *LPNET_DVR_NETSTATUS;#endiftypedef struct tagMANAGECFG{ UINT32 dwSize;#ifndef ALCATEL_FRONTIDCFG UINT8 sFrontID[NAME_LEN]; /* 前端ID */ #endif UINT32 bEnableHeartbeat; /* 是否心跳 */ char sHBHostIp[16]; /* 心跳管理主机网络地址 */ UINT16 wHeartBeatPort; /* 管理主机心跳倾听端口 */ UINT16 wHeartBeatCycle; /* 心跳周期,单位妙 */ char sRegHostIp[16]; /* 注册管理主机网络地址 */ UINT16 wRegisterPort; /* 管理主机注册倾听端口 */ UINT16 wRegisterDuration; /* 注册有效时长,单位小时,为2的倍数,不超过24,0xffff表示时效无效 */}NET_DVR_MANAGECFG, *LPNET_DVR_MANAGECFG;#ifdef ALCATEL_FRONTIDCFGtypedef struct { UINT32 dwSize; UINT8 sFrontID[NAME_LEN]; /* 前端ID */}NET_DVR_FRONTIDCFG,*LPNET_DVR_FRONTIDCFG;#endif/* ALCATEL_FRONTIDCFG *//* * structure define for cruise */typedef struct tagCRUISEPOINT { UINT8 res; UINT8 byPresetNo; /* preset point number */ UINT8 bySpeed; /* speed from this point */ UINT8 byDwellTime; /* dwell time at this point */}NET_DVR_CRUISEPOINT;typedef struct tagCRUISECFG { UINT32 dwSize; /* structure size */ UINT32 dwListCount; /* cruise point count */ NET_DVR_CRUISEPOINT struCruisePoint[16]; /* maximum 16 cruise points */}NET_DVR_CRUISECFG, *LPNET_DVR_CRUISECFG;typedef struct tagCRUISECOUNTCFG { UINT32 dwSize; UINT32 dwCruiseCount; /* cruise count in a channel */ UINT32 dwCruiseStatus; /* cruise status,bit0-7:1-8 cruise,1:set 0:not set */}NET_DVR_CRUISECOUNTCFG, *LPNET_DVR_CRUISECOUNTCFG;#ifdef SDK_ALCATEL_DXtypedef struct tagFTPUPGRADECFG { char sFTPIP[16]; UINT16 wFTPPort; UINT8 sUserName[NAME_LEN]; UINT8 sPassword[PASSWD_LEN]; UINT8 sPath[PATHNAME_LEN]; UINT8 sFileName[NAME_LEN];}NET_DVR_FTPUPGRADECFG, *LPNET_DVR_FTPUPGRADECFG;#endif#endif/* SDK_ALCATEL *//* ftp 上传参数*/typedef struct tagFTPCFG{ DWORD dwSize; DWORD dwEnableFTP; /*是否启动ftp上传功能*/ char sFTPIP[16]; /*ftp 服务器*/ DWORD dwFTPPort; /*ftp端口*/ BYTE sUserName[NAME_LEN]; /*用户名*/ BYTE sPassword[PASSWD_LEN]; /*密码*/ DWORD dwDirLevel; /*0 = 不使用目录结构,直接保存在根目录,1 = 使用1级目录,2=使用2级目录*/ WORD wTopDirMode; /* 0x1 = 使用设备名,0x2 = 使用设备号,0x3 = 使用设备ip地址*/ WORD wSubDirMode; /* 0x4 = 使用通道名,0x5 = 使用通道号*/ BYTE reservedData[24];}NET_DVR_FTPCFG, *LPNET_DVR_FTPCFG;/*可用来命名图片的相关元素 */#define PICNAME_ITEM_DEV_NAME 1#define PICNAME_ITEM_DEV_NO 2#define PICNAME_ITEM_DEV_IP 3#define PICNAME_ITEM_CHAN_NAME 4#define PICNAME_ITEM_CHAN_NO 5#define PICNAME_ITEM_TIME 6#define PICNAME_ITEM_CARDNO 7#define PICNAME_MAXITEM 15typedef struct tagPICNAME{ BYTE byItemOrder[PICNAME_MAXITEM]; /* 桉数组定义文件命名的规则 */ BYTE byDelimiter; /*分隔符,一般为'_'*/}NET_DVR_PICTURE_NAME, *LPNET_DVR_PICTURE_NAME;//图片质量typedef struct tagJPEGPARA{ WORD wPicSize; /* 0=CIF, 1=QCIF, 2=D1 */ WORD wPicQuality; /* 图片质量系数 0-最好 1-较好 2-一般 */}NET_DVR_JPEGPARA, *LPNET_DVR_JPEGPARA;/* 串口抓图设置*/typedef struct tagSERIALCAPPARA{ BYTE byStrFlag; /*串口数据开始符*/ BYTE byEndFlag; /*结束符*/ WORD wCardIdx; /*卡号相对起始位*/ DWORD dwCardLen; /*卡号长度*/ DWORD dwTriggerPicChans; /*所触发的通道号,按位,从第1位开始计,即0x2表示第一通道*/}NET_DVR_SERIAL_CATCHPIC_PARA, *LPNET_DVR_SERIAL_CATCHPIC_PARA;typedef struct tagJPEGCFG{ DWORD dwSize; NET_DVR_JPEGPARA struJpegPara[MAX_CHANNUM]; /*每个通道的图像参数*/ WORD wBurstMode; /*抓图方式,按位设置.0x1=报警输入触发,0x2=移动侦测触发 0x4=232触发,0x8=485触发,0x10=网络触发*/ WORD wUploadInterval; /*图片上传间隔(秒)[0,65535]*/ NET_DVR_PICTURE_NAME struPicNameRule; /* 图片命名规则 */ BYTE bySaveToHD; /*是否保存到硬盘*/ BYTE res1; WORD wCatchInterval; /*抓图间隔(毫秒)[0,65535]*/ BYTE res2[12]; NET_DVR_SERIAL_CATCHPIC_PARA struRs232Cfg; NET_DVR_SERIAL_CATCHPIC_PARA struRs485Cfg; DWORD dwTriggerPicTimes[MAX_CHANNUM]; /* 每个通道一次触发拍照次数 */ DWORD dwAlarmInPicChanTriggered[MAX_ALARMIN]; /*报警触发抓拍通道,按位设置,从第1位开始*/}NET_DVR_JPEGCFG, *LPNET_DVR_JPEGCFG;typedef struct tagGetJpeg{ DWORD dwReturn; /*是否直接返回图片数据*/ DWORD dwUploadFtp; /*是否上传Ftp服务器*/ DWORD dwSaveHd; /*是否保存到设备硬盘*/ char sImageName[PATHNAME_LEN]; /*自定义的生成图片文件名*/ char sOsdStr[16]; /*需要叠加在图片上的OSD字符串*/ WORD wOsdLen; /*OSD字符串长度*/}NET_DVR_GETJPEG, *LPNET_DVR_GETJPEG;typedef struct tagFIND_PICTURE{ char sFileName[100];//图片名 NET_DVR_TIME struTime;//图片的时间 DWORD dwFileSize;//图片的大小 char sCardNum[32]; //卡号}NET_DVR_FIND_PICTURE,*LPNET_DVR_FIND_PICTURE;NET_DVR_API BOOL NET_DVR_Init();NET_DVR_API BOOL NET_DVR_Cleanup();NET_DVR_API BOOL NET_DVR_SetDVRMessCallBack(BOOL ( *fMessCallBack)(int lCommand,char *sDVRIP,char *pBuf,UINT32 dwBufLen));NET_DVR_API BOOL NET_DVR_SetDVRMessCallBack_EX(BOOL ( *fMessCallBack_EX)(int lCommand,int lUserID,char *pBuf,UINT32 dwBufLen));NET_DVR_API BOOL NET_DVR_SetConnectTime(UINT32 dwWaitTime,UINT32 dwTryTimes);NET_DVR_API UINT32 NET_DVR_GetSDKVersion();NET_DVR_API BOOL NET_DVR_StartListen(char *sLocalIP,UINT16 wLocalPort);NET_DVR_API BOOL NET_DVR_StopListen();NET_DVR_API int NET_DVR_Login(char *sDVRIP,UINT16 wDVRPort,char *sUserName,char *sPassword,LPNET_DVR_DEVICEINFO lpDeviceInfo);NET_DVR_API BOOL NET_DVR_Logout(int lUserID);NET_DVR_API UINT32 NET_DVR_GetLastError();NET_DVR_API BOOL NET_DVR_GetDVRIPByResolveSvr(char *sServerIP, UINT16 wServerPort, UINT8 *sDVRName,UINT16 wDVRNameLen,UINT8 *sDVRSerialNumber,UINT16 wDVRSerialLen,char* sGetIP);//图像预览NET_DVR_API int NET_DVR_RealPlay(int lUserID,LPNET_DVR_CLIENTINFO lpClientInfo);NET_DVR_API BOOL NET_DVR_StopRealPlay(int lRealHandle);NET_DVR_API BOOL NET_DVR_RealPlayPause(int lRealHandle);NET_DVR_API BOOL NET_DVR_RealPlayRestart(int lRealHandle, PLAYRECT *hPlayWnd);//视频参数是索引值 1-10NET_DVR_API BOOL NET_DVR_ClientSetVideoEffect(int lRealHandle,UINT32 dwBrightValue,UINT32 dwContrastValue, UINT32 dwSaturationValue,UINT32 dwHueValue);NET_DVR_API BOOL NET_DVR_ClientGetVideoEffect(int lRealHandle,UINT32 *pBrightValue,UINT32 *pContrastValue, UINT32 *pSaturationValue,UINT32 *pHueValue);NET_DVR_API BOOL NET_DVR_SetPlayerBufNumber(int lRealHandle,UINT32 dwBufNum);NET_DVR_API BOOL NET_DVR_ThrowBFrame(int lRealHandle,UINT32 dwNum);NET_DVR_API BOOL NET_DVR_OpenSound(int lRealHandle);NET_DVR_API BOOL NET_DVR_CloseSound();NET_DVR_API BOOL NET_DVR_Volume(int lRealHandle,UINT16 wVolume);NET_DVR_API BOOL NET_DVR_SaveRealData(int lRealHandle,char *sFileName);NET_DVR_API BOOL NET_DVR_StopSaveRealData(int lRealHandle);NET_DVR_API BOOL NET_DVR_SetRealDataCallBack(int lRealHandle,void( *fRealDataCallBack) (int lRealHandle, UINT32 dwDataType, char *pBuffer,UINT32 dwBufSize,UINT32 dwUser),UINT32 dwUser);NET_DVR_API BOOL NET_DVR_CapturePicture(int lRealHandle,char *sPicFileName);//云台控制NET_DVR_API BOOL NET_DVR_GetPTZCtrl(int lRealHandle);NET_DVR_API BOOL NET_DVR_GetPTZCtrl_Other(int lUserID,int lChannel);NET_DVR_API BOOL NET_DVR_PTZControl(int lRealHandle,UINT32 dwPTZCommand,UINT32 dwStop);NET_DVR_API BOOL NET_DVR_PTZControl_Other(int lUserID,int lChannel,UINT32 dwPTZCommand,UINT32 dwStop);NET_DVR_API BOOL NET_DVR_TransPTZ(int lRealHandle,char *pPTZCodeBuf,UINT32 dwBufSize);NET_DVR_API BOOL NET_DVR_TransPTZ_Other(int lUserID,int lChannel,char *pPTZCodeBuf,UINT32 dwBufSize);NET_DVR_API BOOL NET_DVR_PTZPreset(int lRealHandle,UINT32 dwPTZPresetCmd,UINT32 dwPresetIndex);NET_DVR_API BOOL NET_DVR_PTZPreset_Other(int lUserID,int lChannel,UINT32 dwPTZPresetCmd,UINT32 dwPresetIndex);NET_DVR_API BOOL NET_DVR_PTZControlWithSpeed(int lRealHandle,UINT32 dwPTZCommand, UINT32 dwStop, UINT32 dwSpeed);NET_DVR_API BOOL NET_DVR_PTZControlWithSpeed_Other(int lUserID,int lChannel,UINT32 dwPTZCommand, UINT32 dwStop, UINT32 dwSpeed);NET_DVR_API BOOL NET_DVR_PTZControlWithSpeed_EX(int lRealHandle,UINT32 dwPTZCommand, UINT32 dwStop, UINT32 dwSpeed);NET_DVR_API BOOL NET_DVR_PTZCruise(int lRealHandle,UINT32 dwPTZCruiseCmd,UINT8 byCruiseRoute, UINT8 byCruisePoint, UINT16 wInput);NET_DVR_API BOOL NET_DVR_PTZCruise_Other(int lUserID,int lChannel,UINT32 dwPTZCruiseCmd,UINT8 byCruiseRoute, UINT8 byCruisePoint, UINT16 wInput);NET_DVR_API BOOL NET_DVR_PTZCruise_EX(int lRealHandle,int dwPTZCruiseCmd,UINT8 byCruiseRoute, UINT8 byCruisePoint, UINT16 wInput);NET_DVR_API BOOL NET_DVR_PTZTrack(int lRealHandle,UINT32 dwPTZTrackCmd);NET_DVR_API BOOL NET_DVR_PTZTrack_Other(int lUserID,int lChannel,UINT32 dwPTZTrackCmd);NET_DVR_API BOOL NET_DVR_PTZTrack_EX(int lRealHandle,UINT32 dwPTZTrackCmd);//巡航路径配置#ifdef SDK_ALCATELNET_DVR_API BOOL NET_DVR_GetCruiseConfig(int lUserID, UINT32 dwCommand, int lChannel, int lCruiseNo, void *lpOutBuffer, UINT32 dwOutBufferSize, UINT32 *lpBytesReturned);NET_DVR_API BOOL NET_DVR_SetCruiseConfig(int lUserID, UINT32 dwCommand, int lChannel, int lCruiseNo, void * lpInBuffer, UINT32 dwInBufferSize);#endif//文件回放NET_DVR_API int NET_DVR_FindFile(int lUserID,int lChannel,UINT32 dwFileType, LPNET_DVR_TIME lpStartTime, LPNET_DVR_TIME lpStopTime);NET_DVR_API int NET_DVR_FindNextFile(int lFindHandle,LPNET_DVR_FIND_DATA lpFindData);NET_DVR_API BOOL NET_DVR_FindClose(int lFindHandle);NET_DVR_API int NET_DVR_PlayBackByName(int lUserID,char *sPlayBackFileName, PLAYRECT *hWnd);NET_DVR_API int NET_DVR_PlayBackByTime(int lUserID,int lChannel, LPNET_DVR_TIME lpStartTime, LPNET_DVR_TIME lpStopTime, PLAYRECT *hWnd);NET_DVR_API BOOL NET_DVR_PlayBackControl(int lPlayHandle,UINT32 dwControlCode,UINT32 dwInValue,UINT32 *lpOutValue);NET_DVR_API BOOL NET_DVR_StopPlayBack(int lPlayHandle);NET_DVR_API BOOL NET_DVR_SetPlayDataCallBack(int lPlayHandle,void( *fPlayDataCallBack) (int lPlayHandle, UINT32 dwDataType, char *pBuffer,UINT32 dwBufSize,UINT32 dwUser),UINT32 dwUser);NET_DVR_API BOOL NET_DVR_PlayBackSaveData(int lPlayHandle,char *sFileName);NET_DVR_API BOOL NET_DVR_StopPlayBackSave(int lPlayHandle);NET_DVR_API BOOL NET_DVR_GetPlayBackOsdTime(int lPlayHandle, LPNET_DVR_TIME lpOsdTime);NET_DVR_API BOOL NET_DVR_PlayBackCaptureFile(int lPlayHandle,char *sFileName);NET_DVR_API int NET_DVR_GetFileByName(int lUserID,char *sDVRFileName,char *sSavedFileName);NET_DVR_API int NET_DVR_GetFileByTime(int lUserID,int lChannel, LPNET_DVR_TIME lpStartTime, LPNET_DVR_TIME lpStopTime, char *sSavedFileName);NET_DVR_API BOOL NET_DVR_StopGetFile(int lFileHandle);NET_DVR_API int NET_DVR_GetDownloadPos(int lFileHandle);//查找和获取图片#ifdef SDK_ALCATEL#ifdef SDK_ALCATEL_DXNET_DVR_API BOOL NET_DVR_StartUdpServer(char *sLocalIP, UINT16 wLocalPort);NET_DVR_API BOOL NET_DVR_StopUdpServer();#endifNET_DVR_API int NET_DVR_FindPicture(int lUserID,int lChannel,UINT32 dwFileType, BOOL bNeedCardNum, UINT8 *sCardNumber, LPNET_DVR_TIME lpStartTime, LPNET_DVR_TIME lpStopTime);NET_DVR_API int NET_DVR_FindNextPicture(int lFindHandle,LPNET_DVR_FIND_PICTURE lpFindData);NET_DVR_API BOOL NET_DVR_CloseFindPicture(int lFindHandle);NET_DVR_API BOOL NET_DVR_GetPicture(int lUserID,char *sDVRFileName,char *sSavedFileName);#ifdef SDK_ALCATEL_DXNET_DVR_API int NET_DVR_FTPUpgrade(int lUserID, NET_DVR_FTPUPGRADECFG struFTPUpgrade);#endif#endif//恢复默认值NET_DVR_API BOOL NET_DVR_RestoreConfig(int lUserID);//保存参数NET_DVR_API BOOL NET_DVR_SaveConfig(int lUserID);//重启NET_DVR_API BOOL NET_DVR_RebootDVR(int lUserID);//关闭DVRNET_DVR_API BOOL NET_DVR_ShutDownDVR(int lUserID);//升级NET_DVR_API int NET_DVR_Upgrade(int lUserID,char *sFileName);NET_DVR_API int NET_DVR_GetUpgradeState(int lUpgradeHandle);NET_DVR_API BOOL NET_DVR_CloseUpgradeHandle(int lUpgradeHandle);//远程格式化硬盘NET_DVR_API int NET_DVR_FormatDisk(int lUserID,int lDiskNumber);NET_DVR_API BOOL NET_DVR_GetFormatProgress(int lFormatHandle,int *pCurrentFormatDisk,int *pCurrentDiskPos,int *pFormatStatic);NET_DVR_API BOOL NET_DVR_CloseFormatHandle(int lFormatHandle);//报警NET_DVR_API int NET_DVR_SetupAlarmChan(int lUserID);NET_DVR_API BOOL NET_DVR_CloseAlarmChan(int lAlarmHandle);NET_DVR_API BOOL NET_DVR_GetAlarmOut(int lUserID,LPNET_DVR_ALARMOUTSTATUS lpAlarmOutState);NET_DVR_API BOOL NET_DVR_SetAlarmOut(int lUserID,int lAlarmOutPort,int lAlarmOutStatic);//语音转发 NET_DVR_API int NET_DVR_StartVoiceCom(int lUserID, void( *fVoiceDataCallBack)(int lVoiceComHandle,char *pRecvDataBuffer,UINT32 dwBufSize,UINT32 dwUser), UINT32 dwUser);NET_DVR_API BOOL NET_DVR_VoiceComSendData(int lVoiceComHandle,char *pSendBuf,UINT32 dwBufSize);NET_DVR_API BOOL NET_DVR_StopVoiceCom(int lVoiceComHandle);//////////////////////////////////////////////////////////////透明通道设置NET_DVR_API int NET_DVR_SerialStart(int lUserID,int lSerialPort,void( *fSerialDataCallBack)(int lSerialHandle,char *pRecvDataBuffer,UINT32 dwBufSize,UINT32 dwUser),UINT32 dwUser);NET_DVR_API BOOL NET_DVR_SerialSend(int lSerialHandle, int lChannel, char *pSendBuf,UINT32 dwBufSize);NET_DVR_API BOOL NET_DVR_SerialStop(int lSerialHandle);NET_DVR_API BOOL NET_DVR_SendTo232Port(int lUserID,char *pSendBuf,UINT32 dwBufSize);//远程控制本地显示NET_DVR_API BOOL NET_DVR_ClickKey(int lUserID,int lKeyIndex);//远程控制设备端手动录像NET_DVR_API BOOL NET_DVR_StartDVRRecord(int lUserID,int lChannel,int lRecordType);NET_DVR_API BOOL NET_DVR_StopDVRRecord(int lUserID,int lChannel);//服务器状态NET_D
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -