HCEHomePublic.h 8.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203
  1. #ifndef _HC_EHOME_PUBLIC_H_
  2. #define _HC_EHOME_PUBLIC_H_
  3. //多SDK公共定义
  4. #ifndef _HC_NET_SDK_H_
  5. /*******************平台相关的数据类型定义 begin**********************/
  6. #if (defined(_WIN32)) //windows
  7. #define NET_DVR_API extern "C" __declspec(dllimport)
  8. typedef unsigned __int64 UINT64;
  9. #elif defined(__linux__) || defined(__APPLE__) //linux
  10. typedef unsigned int DWORD;
  11. typedef unsigned short WORD;
  12. typedef unsigned short USHORT;
  13. typedef short SHORT;
  14. typedef int LONG;
  15. typedef unsigned char BYTE;
  16. #define BOOL int
  17. typedef unsigned int UINT;
  18. typedef void* LPVOID;
  19. typedef void* HANDLE;
  20. typedef unsigned int* LPDWORD;
  21. typedef unsigned long long UINT64;
  22. #ifndef TRUE
  23. #define TRUE 1
  24. #endif
  25. #ifndef FALSE
  26. #define FALSE 0
  27. #endif
  28. #ifndef NULL
  29. #define NULL 0
  30. #endif
  31. #define __stdcall
  32. #define CALLBACK
  33. #define NET_DVR_API extern "C"
  34. #endif //linux
  35. /*******************平台相关的数据类型定义 end**********************/
  36. /*******************全局错误码 begin**********************/
  37. #define NET_DVR_NOERROR 0 //没有错误
  38. #define NET_DVR_PASSWORD_ERROR 1 //用户名密码错误
  39. #define NET_DVR_NOENOUGHPRI 2 //权限不足
  40. #define NET_DVR_NOINIT 3 //没有初始化
  41. #define NET_DVR_CHANNEL_ERROR 4 //通道号错误
  42. #define NET_DVR_OVER_MAXLINK 5 //连接到DVR的客户端个数超过最大
  43. #define NET_DVR_VERSIONNOMATCH 6 //版本不匹配
  44. #define NET_DVR_NETWORK_FAIL_CONNECT 7 //连接服务器失败
  45. #define NET_DVR_NETWORK_SEND_ERROR 8 //向服务器发送失败
  46. #define NET_DVR_NETWORK_RECV_ERROR 9 //从服务器接收数据失败
  47. #define NET_DVR_NETWORK_RECV_TIMEOUT 10 //从服务器接收数据超时
  48. #define NET_DVR_NETWORK_ERRORDATA 11 //传送的数据有误
  49. #define NET_DVR_ORDER_ERROR 12 //调用次序错误
  50. #define NET_DVR_OPERNOPERMIT 13 //无此权限
  51. #define NET_DVR_COMMANDTIMEOUT 14 //DVR命令执行超时c
  52. #define NET_DVR_PARAMETER_ERROR 17 //参数错误
  53. #define NET_DVR_NOSUPPORT 23 //服务器不支持
  54. #define NET_DVR_DVROPRATEFAILED 29 //DVR操作失败
  55. #define NET_DVR_DIR_ERROR 40 //路径错误
  56. #define NET_DVR_ALLOC_RESOURCE_ERROR 41 //资源分配错误
  57. #define NET_DVR_AUDIO_MODE_ERROR 42 //声卡模式错误
  58. #define NET_DVR_NOENOUGH_BUF 43 //缓冲区太小
  59. #define NET_DVR_CREATESOCKET_ERROR 44 //创建SOCKET出错
  60. #define NET_DVR_SETSOCKET_ERROR 45 //设置SOCKET出错
  61. #define NET_DVR_MAX_NUM 46 //个数达到最大
  62. #define NET_DVR_USERNOTEXIST 47 //用户不存在
  63. #define NET_DVR_GETLOCALIPANDMACFAIL 53 //获得本地的IP地址或物理地址失败
  64. #define NET_DVR_VOICEMONOPOLIZE 69 //声卡被独占
  65. #define NET_DVR_CREATEDIR_ERROR 71 //建立日志文件目录失败
  66. #define NET_DVR_BINDSOCKET_ERROR 72 //绑定套接字失败
  67. #define NET_DVR_SOCKETCLOSE_ERROR 73 //socket连接中断,此错误通常是由于连接中断或目的地不可达
  68. #define NET_DVR_USERID_ISUSING 74 //注销时用户ID正在进行某操作
  69. #define NET_DVR_SOCKETLISTEN_ERROR 75 //监听失败
  70. #define NET_DVR_CONVERT_SDK_ERROR 85 //加载转码库失败
  71. #define NET_DVR_FUNCTION_NOT_SUPPORT_OS 98 //此功能不支持该操作系统
  72. #define NET_DVR_USE_LOG_SWITCH_FILE 103 //正在使用日志开关文件
  73. #define NET_DVR_PACKET_TYPE_NOT_SUPPORT 105 //码流封装格式错误
  74. #define NET_DVR_STREAM_ENCRYPT_CHECK_FAIL 130 //码流加密校验失败
  75. //语音对讲库错误码
  76. #define NET_AUDIOINTERCOM_OK 600 //无错误
  77. #define NET_AUDIOINTECOM_ERR_NOTSUPORT 601 //不支持
  78. #define NET_AUDIOINTECOM_ERR_ALLOC_MEMERY 602 //内存申请错误
  79. #define NET_AUDIOINTECOM_ERR_PARAMETER 603 //参数错误
  80. #define NET_AUDIOINTECOM_ERR_CALL_ORDER 604 //调用次序错误
  81. #define NET_AUDIOINTECOM_ERR_FIND_DEVICE 605 //未发现设备
  82. #define NET_AUDIOINTECOM_ERR_OPEN_DEVICE 606 //不能打开设备诶
  83. #define NET_AUDIOINTECOM_ERR_NO_CONTEXT 607 //设备上下文出错
  84. #define NET_AUDIOINTECOM_ERR_NO_WAVFILE 608 //WAV文件出错
  85. #define NET_AUDIOINTECOM_ERR_INVALID_TYPE 609 //无效的WAV参数类型
  86. #define NET_AUDIOINTECOM_ERR_ENCODE_FAIL 610 //编码失败
  87. #define NET_AUDIOINTECOM_ERR_DECODE_FAIL 611 //解码失败
  88. #define NET_AUDIOINTECOM_ERR_NO_PLAYBACK 612 //播放失败
  89. #define NET_AUDIOINTECOM_ERR_DENOISE_FAIL 613 //降噪失败
  90. #define NET_AUDIOINTECOM_ERR_UNKOWN 619 //未知错误
  91. #define NET_ERR_TERM_NAME_REPEAT 1313 //终端名称重复
  92. #define NET_ERR_TERM_SERIAL_REPEAT 1314 //终端序列号重复
  93. #define NET_SS_CLIENT_ERR_KMS_TOKEN_FAIL 3601//KMS图片上传协议,获取Token失败
  94. #define NET_SS_CLIENT_ERR_KMS_UPLOAD_FAIL 3602//KMS图片上传协议,上传失败
  95. #define NET_SS_CLIENT_ERR_CLOUD_POOLIST_FAIL 3603//云存储协议,获取资源池失败
  96. #define NET_SS_CLIENT_ERR_CLOUD_BESTNODE_FAIL 3604//云存储协议,获取最优节点失败
  97. /*******************全局错误码 begin**********************/
  98. #define MAX_PASSWD_LEN 32
  99. #define NAME_LEN 32 //用户名长度
  100. #endif //_HC_NET_SDK_H_
  101. #define MAX_DEVICE_ID_LEN 256 //设备ID长度
  102. #define NET_EHOME_SERIAL_LEN 12
  103. #define MAX_MASTER_KEY_LEN 16
  104. #define MAX_TIME_LEN 32 //时间字符串长度
  105. #define MAX_URL_LEN_SS 4096 //图片服务器回调URL长度
  106. #define MAX_TIME_LEN 32 //时间字符串长度
  107. #define MAX_URL_LEN_SS 4096 //图片服务器回调URL长度
  108. typedef struct tagNET_EHOME_IPADDRESS
  109. {
  110. char szIP[128];
  111. WORD wPort; //端口
  112. char byRes[2];
  113. }NET_EHOME_IPADDRESS, *LPNET_EHOME_IPADDRESS;
  114. typedef struct tagNET_EHOME_ZONE
  115. {
  116. DWORD dwX; //X轴坐标
  117. DWORD dwY; //Y轴坐标
  118. DWORD dwWidth; //宽度
  119. DWORD dwHeight; //高度
  120. }NET_EHOME_ZONE, *LPNET_EHOME_ZONE;
  121. //本地配置
  122. typedef enum tagNET_EHOME_LOCAL_CFG_TYPE
  123. {
  124. UNDEFINE = -1, //暂时没有具体的定义
  125. ACTIVE_ACCESS_SECURITY = 0, //设备主动接入的安全性
  126. AMS_ADDRESS = 1, //报警服务器本地回环地址
  127. SEND_PARAM = 2, //发送参数配置
  128. SET_REREGISTER_MODE = 3, //设置设备重复注册模式
  129. LOCAL_CFG_TYPE_GENERAL = 4 //通用参数配置
  130. }NET_EHOME_LOCAL_CFG_TYPE, *LPNET_EHOME_LOCAL_CFG_TYPE;
  131. typedef struct tagNET_EHOME_LOCAL_ACCESS_SECURITY
  132. {
  133. DWORD dwSize;
  134. BYTE byAccessSecurity; //0-兼容模式(允许任意版本的协议接入),1-普通模式(只支持4.0以下版本,不支持协议安全的版本接入) 2-安全模式(只允许4.0以上版本,支持协议安全的版本接入)
  135. BYTE byRes[127];
  136. }NET_EHOME_LOCAL_ACCESS_SECURITY,*LPNET_EHOME_LOCAL_ACCESS_SECURITY;
  137. typedef struct tagNET_EHOME_AMS_ADDRESS
  138. {
  139. DWORD dwSize;
  140. BYTE byEnable; //0-关闭CMS接收报警功能,1-开启CMS接收报警功能
  141. BYTE byRes1[3];
  142. NET_EHOME_IPADDRESS struAddress; //AMS本地回环地址
  143. BYTE byRes2[32];
  144. }NET_EHOME_AMS_ADDRESS, *LPNET_EHOME_AMS_ADDRESS;
  145. typedef struct tagNET_EHOME_SEND_PARAM
  146. {
  147. DWORD dwSize;
  148. DWORD dwRecvTimeOut; //接收超时时间,单位毫秒
  149. BYTE bySendTimes; //报文发送次数,为了应对网络环境较差的情况下,丢包的情况,默认一次,最大3次
  150. BYTE byRes2[127];
  151. }NET_EHOME_SEND_PARAM, *LPNET_EHOME_SEND_PARAM;
  152. //Ehome5.0协议设备EhomeKey信息
  153. typedef struct tagNET_EHOME_DEV_SESSIONKEY
  154. {
  155. BYTE sDeviceID[MAX_DEVICE_ID_LEN]; //设备ID/*256*/
  156. BYTE sSessionKey[MAX_MASTER_KEY_LEN]; //设备Sessionkey/*16*/
  157. } NET_EHOME_DEV_SESSIONKEY, *LPNET_EHOME_DEV_SESSIONKEY;
  158. typedef struct tagNET_EHOME_SET_REREGISTER_MODE
  159. {
  160. DWORD dwSize;
  161. DWORD dwReRegisterMode; //设置设备重复注册模式,仅针对EHome2.0协议,若为0,表示在保活时间内设备重复注册,EHomeSDK接受,默认为此方式,若为1,表示在保活时间内,设备重复注册,不接受,回复设备403重复注册错误码
  162. }NET_EHOME_SET_REREGISTER_MODE, *LPNET_EHOME_SET_REREGISTER_MODE;
  163. typedef struct tagNET_EHOME_LOCAL_GENERAL_CFG
  164. {
  165. BYTE byAlarmPictureSeparate; //控制透传ISAPI报警数据和图片是否分离,0-不分离,1-分离(分离后走EHOME_ISAPI_ALARM回调返回)
  166. BYTE byRes[127]; //保留
  167. }NET_EHOME_LOCAL_GENERAL_CFG, *LPNET_EHOME_LOCAL_GENERAL_CFG;
  168. #endif //_HC_EHOME_PUBLIC_H_