📄 hcnetsdk.h
字号:
union { struct { BYTE sUserName[NAME_LEN]; /*请求视频用户名*/ BYTE sPassword[PASSWD_LEN]; /* 密码 */ char cReserve[52]; }userInfo; struct { BYTE fileName[100]; }fileInfo; struct { DWORD dwChannel; BYTE sUserName[NAME_LEN]; /*请求视频用户名*/ BYTE sPassword[PASSWD_LEN]; /* 密码 */ NET_DVR_TIME struStartTime; /* 按时间回放的开始时间 */ NET_DVR_TIME struStopTime; /* 按时间回放的结束时间 */ }timeInfo; }objectInfo;}NET_DVR_DECCHANSTATUS, *LPNET_DVR_DECCHANSTATUS;typedef struct { DWORD dwSize; NET_DVR_DECCHANSTATUS struDecState[MAX_DECNUM]; }NET_DVR_DECSTATUS, *LPNET_DVR_DECSTATUS;//叠加字符typedef struct { WORD wShowString; // 预览的图象上是否显示字符,0-不显示,1-显示 区域大小704*576,单个字符的大小为32*32 WORD wStringSize; /* 该行字符的长度,不能大于44个字符 */ WORD wShowStringTopLeftX; /* 字符显示位置的x坐标 */ WORD wShowStringTopLeftY; /* 字符名称显示位置的y坐标 */ char sString[44]; /* 要显示的字符内容 */}NET_DVR_SHOWSTRINGINFO, *LPNET_DVR_SHOWSTRINGINFO;//叠加字符typedef struct { DWORD dwSize; NET_DVR_SHOWSTRINGINFO struStringInfo[MAX_STRINGNUM]; /* 要显示的字符内容 */}NET_DVR_SHOWSTRING, *LPNET_DVR_SHOWSTRING;/* 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;typedef struct tagNTPPARA{ BYTE sNTPServer[64]; /* Domain Name or IP addr of NTP server */ WORD wInterval; /* adjust time interval(hours) */ BYTE byEnableNTP; /* enable NPT client 0-no,1-yes*/ signed char cTimeDifferenceH; /* 与国际标准时间的时差 -12 ... +13 */ signed char cTimeDifferenceM; BYTE res[11];}NET_DVR_NTPPARA, *LPNET_DVR_NTPPARA;typedef struct tagDDNSPARA{ BYTE sUsername[NAME_LEN]; /* DDNS账号用户名/密码 */ BYTE sPassword[PASSWD_LEN]; BYTE sDomainName[64]; /* 域名 */ BYTE byEnableDDNS; /*是否应用 0-否,1-是*/ BYTE res[15];}NET_DVR_DDNSPARA, *LPNET_DVR_DDNSPARA;typedef struct tagEMAILPARA{ BYTE sUsername[64]; /* 邮件账号/密码 */ BYTE sPassword[64]; BYTE sSmtpServer[64]; BYTE sPop3Server[64]; BYTE sMailAddr[64]; /* email */ BYTE sEventMailAddr1[64]; /* 上传报警/异常等的email */ BYTE sEventMailAddr2[64]; BYTE res[16];}NET_DVR_EMAILPARA, *LPNET_DVR_EMAILPARA;typedef struct tagNETAPPCFG{ DWORD dwSize; char sDNSIp[16]; /* DNS服务器地址 */ NET_DVR_NTPPARA struNtpClientParam; /* NTP参数 */ NET_DVR_DDNSPARA struDDNSClientParam; /* DDNS参数 */ NET_DVR_EMAILPARA struEmailParam; /* EMAIL参数 */}NET_DVR_NETAPPCFG, *LPNET_DVR_NETAPPCFG;typedef struct tagAUXOUT{ DWORD dwSize; DWORD dwAlarmOutChan; /* 选择报警弹出大画面的输出通道: 0:主输出/1:辅1/2:辅2/3:辅3/4:辅4 */ DWORD dwAlarmChanSwitchTime; /* 报警通道切换时间:1:1秒 - 10:10秒 */ DWORD dwAuxSwitchTime[MAX_AUXOUT]; /* 辅助输出切换时间: 0-不切换,1-5s,2-10s,3-20s,4-30s,5-60s,6-120s,7-300s */ BYTE byAuxOrder[MAX_AUXOUT][MAX_WINDOW]; /* 辅助输出预览顺序, 0xff表示相应的窗口不预览 */}NET_DVR_AUXOUTCFG, *LPNET_DVR_AUXOUTCFG;typedef struct tag_NFSCFG{ DWORD dwSize; struct{ char sNfsHostIPAddr[16]; BYTE sNfsDirectory[PATHNAME_LEN]; // PATHNAME_LEN = 128 }struNfsDiskParam[MAX_NFS_DISK];}NET_DVR_NFSCFG, *LPNET_DVR_NFSCFG;//上海优网通 2006-12-19 by cxh 前端参数设置 typedef struct tagMANAGECFGEX{ DWORD dwSize; BYTE sFrontID[NAME_LEN]; /* 前端ID */ BYTE sRegPass[PASSWD_LEN]; /* 注册密码 */ char sHBHostIp[16]; /* 心跳管理主机网络地址 */ WORD wHeartBeatPort; /* 管理主机心跳倾听端口 */ DWORD dwAroundNum; /* 连接的外围设备数量,不超过24*/ BYTE sAroundID[24][NAME_LEN]; /* 外围设备ID */ BYTE sChanID[MAX_CHANNUM][NAME_LEN]; /* 通道ID */ BYTE byChanEnable[MAX_CHANNUM]; /* 通道是否接入 */}NET_DVR_MANAGECFG_EX, *LPNET_DVR_MANAGECFG_EX;typedef struct tagPOINT_FRAME{ int xTop; // 方框起始点的x坐标 int yTop; // 方框结束点的y坐标 int xBottom; // 方框结束点的x坐标 int yBottom; //方框结束点的y坐标 int bCounter; //保留}NET_DVR_POINT_FRAME, *LPNET_DVR_POINT_FRAME;typedef struct tagCRUISE_RET{ struct{ BYTE PresetNum; //预置点 BYTE Dwell; //停留时间 BYTE Speed; //速度 BYTE Reserve; //保留 }struCruisePoint[32]; //最大支持32个巡航点}NET_DVR_CRUISE_RET, *LPNET_DVR_CRUISE_RET;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,DWORD dwBufLen));NET_DVR_API BOOL NET_DVR_SetDVRMessageCallBack(BOOL ( *fMessageCallBack)(int lCommand,char *sDVRIP,char *pBuf,DWORD dwBufLen, void* lpUser), void* lpUser);NET_DVR_API BOOL NET_DVR_SetDVRMessCallBack_EX(BOOL ( *fMessCallBack_EX)(int lCommand,int lUserID,char *pBuf,DWORD dwBufLen));NET_DVR_API BOOL NET_DVR_SetConnectTime(DWORD dwWaitTime,DWORD dwTryTimes);NET_DVR_API DWORD NET_DVR_GetSDKVersion();NET_DVR_API BOOL NET_DVR_StartListen(char *sLocalIP,WORD wLocalPort);NET_DVR_API BOOL NET_DVR_StopListen();NET_DVR_API int NET_DVR_Login(char *sDVRIP,WORD wDVRPort,char *sUserName,char *sPassword,LPNET_DVR_DEVICEINFO lpDeviceInfo);NET_DVR_API BOOL NET_DVR_Logout(int lUserID);NET_DVR_API DWORD NET_DVR_GetLastError();NET_DVR_API BOOL NET_DVR_GetDVRIPByResolveSvr(char *sServerIP, WORD wServerPort, BYTE *sDVRName,WORD wDVRNameLen,BYTE *sDVRSerialNumber,WORD 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,DWORD dwBrightValue,DWORD dwContrastValue, DWORD dwSaturationValue,DWORD dwHueValue);NET_DVR_API BOOL NET_DVR_ClientGetVideoEffect(int lRealHandle,DWORD *pBrightValue,DWORD *pContrastValue, DWORD *pSaturationValue,DWORD *pHueValue);NET_DVR_API BOOL NET_DVR_SetPlayerBufNumber(int lRealHandle,DWORD dwBufNum);NET_DVR_API BOOL NET_DVR_ThrowBFrame(int lRealHandle,DWORD 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,WORD 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, DWORD dwDataType, char *pBuffer,DWORD dwBufSize,DWORD dwUser),DWORD 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,DWORD dwPTZCommand,DWORD dwStop);NET_DVR_API BOOL NET_DVR_PTZControl_Other(int lUserID,int lChannel,DWORD dwPTZCommand,DWORD dwStop);NET_DVR_API BOOL NET_DVR_TransPTZ(int lRealHandle,char *pPTZCodeBuf,DWORD dwBufSize);NET_DVR_API BOOL NET_DVR_TransPTZ_Other(int lUserID,int lChannel,char *pPTZCodeBuf,DWORD dwBufSize);NET_DVR_API BOOL NET_DVR_PTZPreset(int lRealHandle,DWORD dwPTZPresetCmd,DWORD dwPresetIndex);NET_DVR_API BOOL NET_DVR_PTZPreset_Other(int lUserID,int lChannel,DWORD dwPTZPresetCmd,DWORD dwPresetIndex);NET_DVR_API BOOL NET_DVR_PTZControlWithSpeed(int lRealHandle,DWORD dwPTZCommand, DWORD dwStop, DWORD dwSpeed);NET_DVR_API BOOL NET_DVR_PTZControlWithSpeed_Other(int lUserID,int lChannel,DWORD dwPTZCommand, DWORD dwStop, DWORD dwSpeed);NET_DVR_API BOOL NET_DVR_PTZControlWithSpeed_EX(int lRealHandle,DWORD dwPTZCommand, DWORD dwStop, DWORD dwSpeed);NET_DVR_API BOOL NET_DVR_PTZCruise(int lRealHandle,DWORD dwPTZCruiseCmd,BYTE byCruiseRoute, BYTE byCruisePoint, WORD wInput);NET_DVR_API BOOL NET_DVR_PTZCruise_Other(int lUserID,int lChannel,DWORD dwPTZCruiseCmd,BYTE byCruiseRoute, BYTE byCruisePoint, WORD wInput);NET_DVR_API BOOL NET_DVR_PTZCruise_EX(int lRealHandle,int dwPTZCruiseCmd,BYTE byCruiseRoute, BYTE byCruisePoint, WORD wInput);NET_DVR_API BOOL NET_DVR_PTZTrack(int lRealHandle,DWORD dwPTZTrackCmd);NET_DVR_API BOOL NET_DVR_PTZTrack_Other(int lUserID,int lChannel,DWORD dwPTZTrackCmd);NET_DVR_API BOOL NET_DVR_PTZTrack_EX(int lRealHandle,DWORD dwPTZTrackCmd);//文件回放NET_DVR_API int NET_DVR_FindFile(int lUserID,int lChannel,DWORD 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,DWORD dwControlCode,DWORD dwInValue,DWORD *lpOutValue);NET_DVR_API BOOL NET_DVR_StopPlayBack(int lPlayHandle);NET_DVR_API BOOL NET_DVR_SetPlayDataCallBack(int lPlayHandle,void( *fPlayDataCallBack) (int lPlayHandle, DWORD dwDataType, char *pBuffer,DWORD dwBufSize,DWORD dwUser),DWORD 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);//恢复默认值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,DWORD dwBufSize,DWORD dwUser), DWORD dwUser);NET_DVR_API BOOL NET_DVR_VoiceComSendData(int lVoiceComHandle,char *pSendBuf,DWORD 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,DWORD dwBufSize,DWORD dwUser),DWORD dwUser);NET_DVR_API BOOL NET_DVR_SerialSend(int lSerialHandle, int lChannel, char *pSendBuf,DWORD dwBufSize);NET_DVR_API BOOL NET_DVR_SerialStop(int lSerialHandle);NET_DVR_API BOOL NET_DVR_SendTo232Port(int lUserID,char *pSendBuf,DWORD dwBufSize);//远程控制本地显示NET_DVR_API BOOL NET_DVR_ClickKey(int lUserID,int lKeyIndex
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -