设备网络SDK开发使用手册 |
注册接收异常、重连等消息的窗口句柄或回调函数。
Windows下该接口定义如下:
BOOL NET_DVR_SetExceptionCallBack_V30( UINT nMessage, HWND hWnd, fExceptionCallBack cbExceptionCallBack, void *pUser );
Linux下该接口定义如下:
BOOL NET_DVR_SetExceptionCallBack_V30( UINT reserved1, void *reserved2, fExceptionCallBack cbExceptionCallBack, void *pUser );
typedef void(CALLBACK *fExceptionCallBack)( DWORD dwType, LONG lUserID, LONG lHandle, void *pUser );
TRUE表示成功,FALSE表示失败。接口返回失败请调用NET_DVR_GetLastError获取错误码,通过错误码判断出错原因。
Windows下该函数的hWnd和cbExceptionCallBack不能同时为NULL,Linux下cbExceptionCallBack不能设置为NULL,否则将接收不到异常消息。
异常消息宏定义见下表:
宏定义 | 宏定义值 | 含义 |
---|---|---|
EXCEPTION_EXCHANGE | 0x8000 | 用户交互时异常(注册心跳超时,心跳间隔为2分钟) |
EXCEPTION_AUDIOEXCHANGE | 0x8001 | 语音对讲异常 |
EXCEPTION_ALARM | 0x8002 | 报警异常 |
EXCEPTION_PREVIEW | 0x8003 | 网络预览异常 |
EXCEPTION_SERIAL | 0x8004 | 透明通道异常 |
EXCEPTION_RECONNECT | 0x8005 | 预览时重连 |
EXCEPTION_ALARMRECONNECT | 0x8006 | 报警时重连 |
EXCEPTION_SERIALRECONNECT | 0x8007 | 透明通道重连 |
SERIAL_RECONNECTSUCCESS | 0x8008 | 透明通道重连成功 |
EXCEPTION_PLAYBACK | 0x8010 | 回放异常 |
EXCEPTION_DISKFMT | 0x8011 | 硬盘格式化 |
EXCEPTION_PASSIVEDECODE | 0x8012 | 被动解码异常 |
EXCEPTION_EMAILTEST | 0x8013 | 邮件测试异常 |
EXCEPTION_BACKUP | 0x8014 | 备份异常 |
PREVIEW_RECONNECTSUCCESS | 0x8015 | 预览时重连成功 |
ALARM_RECONNECTSUCCESS | 0x8016 | 报警时重连成功 |
RESUME_EXCHANGE | 0x8017 | 用户交互恢复 |
NETWORK_FLOWTEST_EXCEPTION | 0x8018 | 网络流量检测异常 |
EXCEPTION_PICPREVIEWRECONNECT | 0x8019 | 图片预览重连 |
PICPREVIEW_RECONNECTSUCCESS | 0x8020 | 图片预览重连成功 |
EXCEPTION_PICPREVIEW | 0x8021 | 图片预览异常 |
EXCEPTION_MAX_ALARM_INFO | 0x8022 | 报警信息缓存已达上限 |
EXCEPTION_LOST_ALARM | 0x8023 | 报警丢失 |
EXCEPTION_PASSIVETRANSRECONNECT | 0x8024 | 被动转码重连 |
PASSIVETRANS_RECONNECTSUCCESS | 0x8025 | 被动转码重连成功 |
EXCEPTION_PASSIVETRANS | 0x8026 | 被动转码异常 |
EXCEPTION_RELOGIN | 0x8040 | 用户重登陆 |
RELOGIN_SUCCESS | 0x8041 | 用户重登陆成功 |
EXCEPTION_PASSIVEDECODE_RECONNNECT | 0x8042 | 被动解码重连 |
EXCEPTION_CLUSTER_CS_ARMFAILED | 0x8043 | 集群报警异常 |
EXCEPTION_RELOGIN_FAILED | 0x8044 | 重登陆失败,停止重登陆 |
EXCEPTION_PREVIEW_RECONNECT_CLOSED | 0x8045 | 关闭预览重连功能 |
EXCEPTION_ALARM_RECONNECT_CLOSED | 0x8046 | 关闭报警重连功能 |
EXCEPTION_SERIAL_RECONNECT_CLOSED | 0x8047 | 关闭透明通道重连功能 |
EXCEPTION_PIC_RECONNECT_CLOSED | 0x8048 | 关闭回显重连功能 |
EXCEPTION_PASSIVE_DECODE_RECONNECT_CLOSED | 0x8049 | 关闭被动解码重连功能 |
EXCEPTION_PASSIVE_TRANS_RECONNECT_CLOSED | 0x804a | 关闭被动转码重连功能 |
//注册接收异常消息的回调函数 NET_DVR_SetExceptionCallBack_V30(WM_NULL, NULL, g_ExceptionCallBack, NULL); //接收异常消息的回调函数的外部实现 void CALLBACK g_ExceptionCallBack(DWORD dwType, LONG lUserID, LONG lHandle, void *pUser) { char tempbuf[256]; ZeroMemory(tempbuf,256); switch(dwType) { case EXCEPTION_AUDIOEXCHANGE: //语音对讲时网络异常 sprintf(tempbuf,"语音对讲时网络异常!!!"); TRACE("%s",tempbuf); //TODO: 关闭语音对讲 break; case EXCEPTION_ALARM: //报警上传时网络异常 sprintf(tempbuf,"报警上传时网络异常!!!"); TRACE("%s",tempbuf); //TODO: 关闭报警上传 break; case EXCEPTION_PREVIEW: //网络预览时异常 sprintf(tempbuf,"网络预览时网络异常!!!"); TRACE("%s",tempbuf); //TODO: 关闭网络预览 break; case EXCEPTION_SERIAL: //透明通道传输时异常 sprintf(tempbuf,"透明通道传输时网络异常!!!"); TRACE("%s",tempbuf); //TODO: 关闭透明通道 break; case EXCEPTION_RECONNECT: //预览时重连 break; default: break; } };