You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

850 lines
26 KiB

  1. #pragma once
  2. #ifndef _XNetSDKDefine_H_
  3. #define _XNetSDKDefine_H_
  4. #ifndef uint64
  5. #if defined( WIN32 )
  6. typedef unsigned __int64 uint64;
  7. #else
  8. typedef unsigned long long uint64;
  9. #endif
  10. #endif
  11. #define N_XSDK_IP_MAX_SIZE 128
  12. #define SXSDK_NAME_LEN 32
  13. #define SXSDK_PTZ_PRESETNUM 256
  14. typedef enum EXSDK_ERROR
  15. {
  16. EXSDK_ER_OK = 0,
  17. EXSDK_ER_OBJ_NOT_EXIST = -1239510,
  18. EXSDK_ER_VALUE_NOT_EXIST = -1239511,
  19. EXSDK_ER_ERROR = -100000,
  20. EXSDK_ER_PARAM_ERROR = -99999,
  21. EXSDK_ER_CREATE_FILE = -99998,
  22. EXSDK_ER_OPEN_FILE = -99997,
  23. EXSDK_ER_WRITE_FILE = -99996,
  24. EXSDK_ER_READ_FILE = -99995,
  25. EXSDK_ER_NO_SUPPORTED = -99994,
  26. EXSDK_ER_NET = -99993, // NET ERROR
  27. EXSDK_ER_OBJ_EXIST = -99992,
  28. EXSDK_ER_TIMEOUT = -99991,
  29. EXSDK_ER_NOT_FOUND = -99990,
  30. EXSDK_ER_NEW_BUFFER = -99989,
  31. EXSDK_ER_NET_RECV = -99988,
  32. EXSDK_ER_NET_SEND = -99987,
  33. EXSDK_ER_OBJECT_BUSY = -99986,
  34. EXSDK_ER_SERVER_INTERNAL_ERROR = -99985, //服务器内部错误
  35. EXSDK_ER_SERVER_BIND_PORT = -99984, //监听端口bind失败(端口被占用)
  36. EXSDK_ER_SERVER_LISTEN = -99983, // 监听服务器启动失败
  37. EXSDK_ER_NET_SEND_BUF_FULL = -99982, // 发送缓冲区满了
  38. EXSDK_ER_NO_BUFFER = -99981, // 缓冲区大小不够或缓冲区满
  39. EXSDK_ER_USER_CANCEL = -90000,
  40. EXSDK_ER_Dev_NotLogin = -90002, // 设备未登录
  41. EXSDK_ER_Dev_NotFound = -70119, // Not Found
  42. EXSDK_ER_UserOrPassword = -70203, // 登录设备密码错误
  43. }EXSDK_ERROR;
  44. typedef enum EXSDK_UPGRADE_ERROR
  45. {
  46. EXSDK_ER_NET_OPERATION_UPGRADE_ALAREADY_START = 511, ///< 已经开始升级
  47. EXSDK_ER_NET_OPERATION_UPGRADE_NOT_START = 512, ///< 未开始升级
  48. EXSDK_ER_NET_OPERATION_UPGRADE_DATA_ERROR = 513, ///< 升级数据错误
  49. EXSDK_ER_NET_OPERATION_UPGRADE_FAILED = 514, ///< 升级失败
  50. EXSDK_ER_NET_OPERATION_UPGRADE_SUCCESS = 515, ///< 升级成功
  51. }EXSDK_UPGRADE_ERROR;
  52. typedef enum ESXSDK_CMD
  53. {
  54. ESXSDK_MSG_BEGIN = 12000,
  55. ESXSDK_DEV_LOGIN = 12001, // 登录结果返回--XSDK_DevLogin
  56. ESXSDK_MEDIA_START_REAL_PLAY = 12002, // 实时视频结果返回--XSDK_MediaRealPlay
  57. ESXSDK_MEDIA_START_FACE_IMAGE = 12003, // 请求人脸抓图返回--XSDK_MediaGetFaceImage
  58. ESXSDK_MEDIA_START_RECORD_PLAY = 12004, // 录像回放结果返回--XSDK_MediaRecordPlay
  59. ESXSDK_MEDIA_DOWN_RECORD_FILE = 12005, // 录像下载
  60. ESXSDK_MEDIA_DOWN_IMAGES_FILE = 12006, // 录像缩略图下载
  61. ESXSDK_MEDIA_START_TALK = 12007, // 开始对讲回调
  62. ESXSDK_MEDIA_STOPT_TALK = 12008, // 结束对讲(服务器内部使用)
  63. ESXSDK_MEDIA_ON_INFO = 12010, // 媒体信息回调
  64. ESXSDK_MEDIA_SET_PARAM = 12011, // 修改参数
  65. // 设备协议交互ESXSDK_DEV_GENERAL_COMMAND
  66. ESXSDK_DEV_GENERAL_COMMAND = 12100, // 通用交互返回
  67. ESXSDK_DEV_GET_SYS_CONFIG = 12101, // 设备系统配置获取
  68. ESXSDK_DEV_SET_SYS_CONFIG = 12102, // 设备系统配置设置
  69. ESXSDK_DEV_GET_CHN_CONFIG = 12103, // 设备通道配置获取
  70. ESXSDK_DEV_SET_CHN_CONFIG = 12104, // 设备通道配置设置
  71. ESXSDK_DEV_FIND_FILE = 12105, // 设备通道配置设置
  72. ESXSDK_DEV_SNAP = 12106, // 设备通道抓图
  73. ESXSDK_DEV_TRANSPORT_OPEN = 12107, // 打开设备透明串口
  74. ESXSDK_DEV_TRANSCOMWRITE = 12108, // 发送透明串口数据
  75. ESXSDK_DEV_ON_RECV_TRANSPORT_DATA = 12109,// 发送透明串口数据
  76. ESXSDK_DEV_USER_COMMAND_BEGIN = 12280, // 用户自定义消息ID开始
  77. ESXSDK_DEV_GENERAL_COMMAND_END1 = 12300,// 通用交互返回
  78. ESXSDK_DEV_GENERAL_COMMAND_END2 = 12499,// 通用交互内部使用
  79. ESXSDK_ON_DEV_STATE = 12500, // 设备状态返回,param1参考:EXSDK_DEV_STATE
  80. ESXSDK_ON_DEV_ALARM_MSG = 1504, // 设备报警回调消息ID
  81. ESXSDK_ON_SEARCH_DEVICES = 13001, // 局域网设备搜索--XSDK_SearchDevices
  82. ESXSDK_MEDIA_ON_PLAY_STATE = 13002, // 媒体状态回调
  83. ESXSDK_MEDIA_PAUSE = 13003, // 媒体暂停/播放
  84. ESXSDK_MEDIA_SEEK_TO_TIME = 13004, // 媒体Seek
  85. ESXSDK_MEDIA_SET_SPEED = 13005, // 媒体Seek
  86. ESXSDK_DEV_UPGRADE = 13006, // 升级设备返回
  87. ESXSDK_ON_DAS_SERVER_START = 13007, // DAS服务器启动结果返回
  88. ESXSDK_ON_DAS_DEVICE_REGIST = 13008, // DAS设备注册
  89. ESXSDK_DEV_SEND_COMMAND = 13009, // 发送命令
  90. ESXSDK_PTL_DATA_TRANSPORT = 15000, // 协议数据直接转发
  91. ESXSDK_MSG_END = 15000,
  92. }ESXSDK_CMD;
  93. typedef enum ESXSDK_DEV_COMMAND
  94. {
  95. EXCMD_GENERAL = -1,
  96. //C1: 登录,登出,保活
  97. EXCMD_LOGIN_REQ = 1000,
  98. EXCMD_LOGIN_RSP = 1001,
  99. EXCMD_LOGOUT_REQ = 1002,
  100. EXCMD_LOGOUT_RSP = 1003,
  101. EXCMD_FORCELOGOUT_REQ = 1004,
  102. EXCMD_FORCELOGOUT_RSP = 1005,
  103. EXCMD_KEEPALIVE_REQ = 1006,
  104. EXCMD_KEEPALIVE_RSP = 1007,
  105. EXCMD_LOGIN_DAS_REQ = 1008,
  106. EXCMD_LOGIN_DAS_RSP = 1009,
  107. EXCMD_LOGIN_INFO_ENCRYPT_REQ = 1010,
  108. EXCMD_LOGIN_INFO_ENCRYPT_RSP = 1011,
  109. //C2: 系统信息,存储信息
  110. EXCMD_SYSINFO_REQ = 1020,
  111. EXCMD_SYSINFO_RSP = 1021,
  112. //C3: 编码配置, 遮挡,叠加,图像颜色
  113. //C4: 录像设置
  114. //C5: 动检,遮挡,视频丢失,外部告警,网络告警,存储告警
  115. //C6: 通用网络配置,网络服务配置
  116. //C7: 串口配置
  117. //C8: 云台配置,预置点,巡航
  118. //C9: 本地轮巡,TV调解,视频输入,输出,音频输入
  119. //C10: 通用配置,本地化配置
  120. //C11: 自动维护
  121. EXCMD_CONFIG_SET = 1040,
  122. EXCMD_CONFIG_SET_RSP = 1041,
  123. EXCMD_CONFIG_GET = 1042,
  124. EXCMD_CONFIG_GET_RSP = 1043,
  125. EXCMD_DEFAULT_CONFIG_GET = 1044,
  126. EXCMD_DEFAULT_CONFIG_GET_RSP = 1045,
  127. EXCMD_CONFIG_CHANNELTILE_SET = 1046,
  128. EXCMD_CONFIG_CHANNELTILE_SET_RSP = 1047,
  129. EXCMD_CONFIG_CHANNELTILE_GET = 1048,
  130. EXCMD_CONFIG_CHANNELTILE_GET_RSP = 1049,
  131. EXCMD_CONFIG_CHANNELTILE_DOT_SET = 1050,
  132. EXCMD_CONFIG_CHANNELTILE_DOT_SET_RSP = 1051,
  133. //系统调试
  134. EXCMD_SYSTEM_DEBUG_REQ = 1052,
  135. EXCMD_SYSTEM_DEBUG_RSP = 1053,
  136. //OSD三行点阵信息
  137. EXCMD_CONFIG_OSDINFO_DOT_SET = 1054,
  138. EXCMD_CONFIG_OSDINFO_DOT_SET_RSP = 1055,
  139. //C12: 能力级查询
  140. EXCMD_ABILITY_GET = 1360,
  141. EXCMD_ABILITY_GET_RSP = 1361,
  142. //C13: 云台控制
  143. EXCMD_PTZ_REQ = 1400,
  144. EXCMD_PTZ_RSP = 1401,
  145. //C14: 监视控制
  146. EXCMD_MONITOR_REQ = 1410,
  147. EXCMD_MONITOR_RSP = 1411,
  148. EXCMD_MONITOR_DATA = 1412,
  149. EXCMD_MONITOR_CLAIM = 1413,
  150. EXCMD_MONITOR_CLAIM_RSP = 1414,
  151. //C15: 回放控制
  152. EXCMD_PLAY_REQ = 1420,
  153. EXCMD_PLAY_RSP = 1421,
  154. EXCMD_PLAY_DATA = 1422,
  155. EXCMD_PLAY_EOF = 1423,
  156. EXCMD_PLAY_CLAIM = 1424,
  157. EXCMD_PLAY_CLAIM_RSP = 1425,
  158. EXCMD_DOWNLOAD_DATA = 1426,
  159. //C16: 语音对讲控制
  160. EXCMD_TALK_REQ = 1430,
  161. EXCMD_TALK_RSP = 1431,
  162. EXCMD_TALK_CU_PU_DATA = 1432,
  163. EXCMD_TALK_PU_CU_DATA = 1433,
  164. EXCMD_TALK_CLAIM = 1434,
  165. EXCMD_TALK_CLAIM_RSP = 1435,
  166. EXCMD_TALK_NVR_TO_IPC_REQ = 1436, //NVR和其连接的前端开始对讲
  167. EXCMD_TALK_NVR_TO_IPC_RSP = 1437,
  168. //C17: 文件查询包括录像文件,图片文件,日志文件
  169. EXCMD_FILESEARCH_REQ = 1440,
  170. FILESEARCH_RSP = 1441,
  171. EXCMD_LOGSEARCH_REQ = 1442,
  172. EXCMD_LOGSEARCH_RSP = 1443,
  173. EXCMD_FILESEARCH_BYTIME_REQ = 1444,
  174. EXCMD_FILESEARCH_BYTIME_RSP = 1445,
  175. //C18: 系统管理
  176. EXCMD_SYSMANAGER_REQ = 1450,
  177. EXCMD_SYSMANAGER_RSP = 1451,
  178. // 系统时间和录像模式查询
  179. EXCMD_TIMEQUERY_REQ = 1452,
  180. EXCMD_TIMEQUERY_RSP = 1453,
  181. //C19: 硬盘管理
  182. EXCMD_DSIKMANAGER_REQ = 1460,
  183. EXCMD_DSIKMANAGER_RSP = 1461,
  184. //C20: 用户管理
  185. EXCMD_FULLAUTHORITYLIST_GET = 1470,
  186. EXCMD_FULLAUTHORITYLIST_GET_RSP = 1471,
  187. EXCMD_USERS_GET = 1472,
  188. EXCMD_USERS_GET_RSP = 1473,
  189. EXCMD_GROUPS_GET = 1474,
  190. EXCMD_GROUPS_GET_RSP = 1475,
  191. EXCMD_ADDGROUP_REQ = 1476,
  192. EXCMD_ADDGROUP_RSP = 1477,
  193. EXCMD_MODIFYGROUP_REQ = 1478,
  194. EXCMD_MODIFYGROUP_RSP = 1479,
  195. EXCMD_DELETEGROUP_REQ = 1480,
  196. EXCMD_DELETEGROUP_RSP = 1481,
  197. EXCMD_ADDUSER_REQ = 1482,
  198. EXCMD_ADDUSER_RSP = 1483,
  199. EXCMD_MODIFYUSER_REQ = 1484,
  200. EXCMD_MODIFYUSER_RSP = 1485,
  201. EXCMD_DELETEUSER_REQ = 1486,
  202. EXCMD_DELETEUSER_RSP = 1487,
  203. EXCMD_MODIFYPASSWORD_REQ = 1488,
  204. EXCMD_MODIFYPASSWORD_RSP = 1489,
  205. //C21: 布警/撤警,告警上报
  206. EXCMD_GUARD_REQ = 1500,
  207. EXCMD_GUARD_RSP = 1501,
  208. EXCMD_UNGUARD_REQ = 1502,
  209. EXCMD_UNGUARD_RSP = 1503,
  210. EXCMD_ALARM_REQ = 1504,
  211. EXCMD_ALARM_RSP = 1505,
  212. EXCMD_NET_ALARM_REQ = 1506,
  213. EXCMD_NET_ALARM_RSP = 1507,
  214. EXCMD_ALARMCENTER_MSG_REQ = 1508,
  215. //C22: 系统升级控制
  216. EXCMD_UPGRADE_REQ = 1520,
  217. EXCMD_UPGRADE_RSP = 1521,
  218. EXCMD_UPGRADE_DATA = 1522,
  219. EXCMD_UPGRADE_DATA_RSP = 1523,
  220. EXCMD_UPGRADE_PROGRESS = 1524,
  221. EXCMD_UPGRADE_INFO_REQ = 1525,
  222. EXCMD_UPGRADE_INFO_RSQ = 1526,
  223. EXCMD_UPGRADE_RESULT = 1527, //升级结果通知
  224. //C23: 设备自动搜索
  225. EXCMD_IPSEARCH_REQ = 1530,
  226. EXCMD_IPSEARCH_RSP = 1531,
  227. EXCMD_IP_SET_REQ = 1532,
  228. EXCMD_IP_SET_RSP = 1533,
  229. //C24: 系统信息导入导出
  230. EXCMD_CONFIG_IMPORT_REQ = 1540,
  231. EXCMD_CONFIG_IMPORT_RSP = 1541,
  232. EXCMD_CONFIG_EXPORT_REQ = 1542,
  233. EXCMD_CONFIG_EXPORT_RSP = 1543,
  234. EXCMD_LOG_EXPORT_REQ = 1544,
  235. EXCMD_LOG_EXPORT_RSP = 1545,
  236. //C25: 网络键盘
  237. EXCMD_NET_KEYBOARD_REQ = 1550,
  238. EXCMD_NET_KEYBOARD_RSP = 1551,
  239. // 网络抓拍
  240. EXCMD_NET_SNAP_REQ = 1560,
  241. EXCMD_NET_SNAP_RSP = 1561,
  242. EXCMD_SET_IFRAME_REQ = 1562,
  243. EXCMD_SET_IFRAME_RSP = 1563,
  244. // 透明串口
  245. EXCMD_RS232_READ_REQ = 1570,
  246. EXCMD_RS232_READ_RSP = 1571,
  247. EXCMD_RS232_WRITE_REQ = 1572,
  248. EXCMD_RS232_WRITE_RSP = 1573,
  249. EXCMD_RS485_READ_REQ = 1574,
  250. EXCMD_RS485_READ_RSP = 1575,
  251. EXCMD_RS485_WRITE_REQ = 1576,
  252. EXCMD_RS485_WRITE_RSP = 1577,
  253. EXCMD_TRANSPARENT_COMM_REQ = 1578,
  254. EXCMD_TRANSPARENT_COMM_RSP = 1579,
  255. EXCMD_RS485_TRANSPARENT_DATA_REQ = 1580,
  256. EXCMD_RS485_TRANSPARENT_DATA_RSP = 1581,
  257. EXCMD_RS232_TRANSPARENT_DATA_REQ = 1582,
  258. EXCMD_RS232_TRANSPARENT_DATA_RSP = 1583,
  259. //网络登录时间同步
  260. EXCMD_SYNC_TIME_REQ = 1590,
  261. EXCMD_SYNC_TIME_RSP = 1591,
  262. //ui截图
  263. EXCMD_PHOTO_GET_REQ = 1600,
  264. EXCMD_PHOTO_GET_RSP = 1601,
  265. //上传数据
  266. EXCMD_UPLOAD_DATA_START_REQ = 1610,
  267. EXCMD_UPLOAD_DATA_START_RSP = 1611,
  268. EXCMD_UPLOAD_DATA_STOP_REQ = 1612,
  269. EXCMD_UPLOAD_DATA_STOP_RSP = 1613,
  270. //1614 - 1629预留MSG,区分上传数据类型
  271. EXCMD_VEHICLE_INFO_REQ = 1614,
  272. EXCMD_VEHICLE_INFO_RSP = 1615,
  273. EXCMD_RECORD_STATE_REQ = 1616,
  274. EXCMD_RECORD_STATE_RSP = 1617,
  275. EXCMD_DIGITCHN_STATE_REQ = 1618,
  276. EXCMD_DIGITCHN_STATE_RSP = 1619,
  277. EXCMD_TITLE_INFO_REQ = 1620,
  278. EXCMD_TITLE_INFO_RSP = 1621,
  279. //人数统计数据
  280. EXCMD_CPC_DATA_SEARCH_REQ = 1630,
  281. EXCMD_CPC_DATA_SEARCH_RSP = 1631,
  282. EXCMD_CPC_DATA_CLEAR_REQ = 1632,
  283. EXCMD_CPC_DATA_CLEAR_RSP = 1633,
  284. //远程搜索
  285. EXCMD_NET_LOCALSEARCH_REQ = 1634,
  286. EXCMD_NET_LOCALSEARCH_RSP = 1635,
  287. //邮件测试
  288. EXCMD_NET_MAILTEST_REQ = 1636,
  289. EXCMD_NET_MAILTEST_RSP = 1637,
  290. //手机信息
  291. EXCMD_PHONE_INFO_SET = 1638,
  292. EXCMD_PHONE_INFO_SET_RSP = 1639,
  293. //硬盘信息
  294. EXCMD_NET_RECORD_INFO_REQ = 1640,
  295. EXCMD_NET_RECORD_INFO_RSP = 1641,
  296. //文件操作,包括删除增加文件夹
  297. EXCMD_NET_FILE_OPRATE_REQ = 1642,
  298. EXCMD_NET_FILE_OPRATE_RSP = 1643,
  299. //默认配置导出,就出厂的默认的配置
  300. EXCMD_NET_CUSTOM_CFG_EXPORT_REQ = 1644,
  301. EXCMD_NET_CUSTOM_CFG_EXPORT_RSP= 1645,
  302. //本地音频文件搜索
  303. EXCMD_MUSICFILESEARCH_REQ = 1646,
  304. EXCMD_MUSICFILESEARCH_RSP = 1647,
  305. //本地音频文件播放控制
  306. EXCMD_MUSICPLAY_REQ = 1648,
  307. EXCMD_MUSICPLAY_RSP = 1649,
  308. EXCMD_AUTHORIZATION_REQ = 1650,
  309. EXCMD_AUTHORIZATION_RSQ = 1651,
  310. EXCMD_SET_DIG_IP_REQ = 1652,
  311. EXCMD_SET_DIG_IP_RSP = 1653,
  312. //设置OSD信息,提供给客户
  313. EXCMD_SET_OSD_INFO_REQ = 1654,
  314. EXCMD_SET_OSD_INFO_RSP = 1655,
  315. //OSD叠加,用于实时的叠加,不保存配置
  316. EXCMD_SET_OSD_INFO_REQ_V2 = 1656,
  317. EXCMD_SET_OSD_INFO_RSP_V2 =1657,
  318. //语言导出导入
  319. EXCMD_EXPORT_LANGUAGE_REQ = 1666,
  320. EXCMD_EXPORT_LANGUAGE_RSP = 1667,
  321. EXCMD_IMPORT_LANGUAGE_REQ = 1668,
  322. EXCMD_IMPORT_LANGUAGE_RSP = 1669,
  323. EXCMD_DELETE_LANGUAGE_REQ = 1770,
  324. EXCMD_DELETE_LANGUAGE_RSP = 1771,
  325. //云升级控制
  326. EXCMD_CLOUD_VERSION_REQ = 2000,
  327. EXCMD_CLOUD_VERSION_RSP = 2001,
  328. EXCMD_CLOUD_UPGRADE_START_REQ = 2002,
  329. EXCMD_CLOUD_UPGRADE_START_RSP = 2003,
  330. EXCMD_CLOUD_UPGRADE_STOP_REQ = 2004,
  331. EXCMD_CLOUD_UPGRADE_STOP_RSP = 2005,
  332. EXCMD_CLOUD_UPGRADE_PROGRESS = 2006,
  333. //FTP
  334. EXCMD_NET_FTPTEST_REQ = 2008,
  335. EXCMD_NET_FTPTEST_RSP = 2009,
  336. //对讲恢复音频开关
  337. EXCMD_TLAK_ONLY_RECVCONFIG_REQ= 2010,
  338. EXCMD_TLAK_ONLY_RECVCONFIG_RSP = 2011,
  339. //设置录像指示灯状态
  340. EXCMD_FB_EXTRA_STATE_REQ = 2012,
  341. EXCMD_FB_EXTRA_STATE_RSP = 2013,
  342. //获取录像指示灯状态
  343. EXCMD_FB_EXTRA_GET_STATE_REQ = 2014,
  344. EXCMD_FB_EXTRA_GET_STATE_RSP = 2015,
  345. EXCMD_CLOUD_NEW_VERSION_REQ = 2016, //新版本客户端使用该命令查询版本信息
  346. EXCMD_CLOUD_NEW_VERSION_RSP = 2017,
  347. EXCMD_CLOUD_NEW_UPGRADE_START_REQ = 2018,
  348. EXCMD_CLOUD_NEW_UPGRADE_START_RSP = 2019,
  349. EXCMD_NET_SPLIT_CONTROL_REQ=2020,
  350. EXCMD_NET_SPLIT_CONTROL_RSP=2021,
  351. EXCMD_CONSUMER_STATE_UPLOAD_REQ = 2022,
  352. EXCMD_CONSUMER_STATE_UPLOAD_RSP = 2023,
  353. EXCMD_ELECT_STATE_REQ = 2024,
  354. EXCMD_ELECT_STATE_RSP = 2025,
  355. EXCMD_NET_FILE_BACKUP_REQ = 2030, //备份到u盘控制
  356. EXCMD_NET_FILE_BACKUP_RSP = 2031,
  357. EXCMD_GET_BREVIARY_PIC_REQ = 2038, // 录像缩略图请求
  358. EXCMD_GET_BREVIARY_PIC_RSP = 2039, // 录像缩略图请求返回
  359. EXCMD_GET_BREVIARY_PIC_DATA_RSP = 2140,// 录像缩略图数据返回
  360. EXCMD_MUSICBOX_STATE_REQ = 2050,
  361. MUSICBOX_STATE_RSP = 2051,
  362. EXCMD_FACE_IMAGE_GET_REQ = 2060,
  363. EXCMD_FACE_IMAGE_GET_RSP = 2061,
  364. EXCMD_FACE_IMAGE_CLAIM_REQ = 2062,
  365. EXCMD_FACE_IMAGE_CLAIM_RSP = 2063,
  366. EXCMD_FACE_IMAGE_DATA = 2064,
  367. EXCMD_EXTERNAL_SENSOR_OPERATE_REQ = 2128,
  368. // 订阅巡航上报结束
  369. EXCMD_PTZ_TOUR_END_RSP = 2141,
  370. //图片导入基本操作
  371. EXCMD_INTEL_FACE_PIC_IMPORT_REQ = 2170, //图片导入请求
  372. EXCMD_INTEL_FACE_PIC_IMPORT_RSP = 2171,
  373. EXCMD_INTEL_FACE_PICDATA_IMPORT_REQ = 2172, //图片数据导入
  374. EXCMD_INTEL_FACE_PICDATA_IMPORT_RSP = 2173,
  375. EXCMD_INTEL_FACE_IMPORT_RESULT_REQ = 2174, //导入图片结果请求
  376. EXCMD_INTEL_FACE_IMPORT_RESULT_RSP = 2175,
  377. EXCMD_INTEL_FACE_EXPORT_RESULT_REQ = 2176, //导出所有结果
  378. EXCMD_INTEL_FACE_EXPORT_RESULT_RSP = 2177,
  379. EXCMD_INTEL_FACE_DATA_WRITE_RSP = 2178, //数据写FPGA返回和2172和2173对应
  380. EXCMD_MODEINDEX_UPLOAD_REQ = 3014,
  381. EXCMD_GENERALSTATE_UPLOAD_REQ = 3016, //通用状态上报
  382. EXCMD_GENERALSTATE_UPLOAD_RSP = 3017,
  383. EXCMD_GET_LOGIN_ENCRYPTION_TYPE = 99999,//获取设备登录密码加密类型
  384. }ESXSDK_DEV_COMMAND;
  385. // 设备状态枚举
  386. typedef enum ESDK_STATE_DEV
  387. {
  388. ESTATE_DEV_None = 0,
  389. ESTATE_DEV_NetDisConnect = 2, // 设备断线
  390. ESTATE_DEV_Logined = 6, // 设备登录成功
  391. }ESDK_STATE_DEV;
  392. // 通道状态枚举
  393. typedef enum EMediaChnState
  394. {
  395. EState_Media_NetDisConnect = 2, // 通道断线
  396. EState_Media_NetConnecting = 3, // 正在连接
  397. EState_Media_NetConnected = 4, // 网络连接成功
  398. EState_Media_RecvData = 8, // 正在接收数据
  399. EState_Media_DataEnd = 9, // 数据接收结束
  400. }EMediaChnState;
  401. typedef enum EUpgradeStep
  402. {
  403. EUpgradeStep_Down = 1,
  404. // 进度0~100: 下载升级文件过程(通过服务器升级)
  405. EUpgradeStep_SendFile = 2,
  406. // 进度0~100: 发送文件进度(发送升级包到设备)
  407. EUpgradeStep_SendFile_Complete = 3,
  408. // 进度0: 发送文件完成
  409. EUpgradeStep_Upgrade = 4,
  410. // 进度0~100: 升级过程进度
  411. // 进度515: 升级完成,需要重启
  412. EUpgradeStep_Upgrade_Complete = 5,
  413. // 进度0: 升级完成
  414. EUpgradeStep_Complete = 6,
  415. // 进度1: 升级过程结束等待设备重启
  416. // 进度50: 设备正在重启
  417. // 进度100: 设备重启成功
  418. // 小于0: 失败错误返回
  419. }EUpgradeStep;
  420. ////////////////////////////About Device////////////////////////////
  421. //IP addr
  422. typedef union _SXSDK_IPAddress
  423. {
  424. unsigned char c[4];
  425. unsigned short s[2];
  426. unsigned int l;
  427. }SXSDK_IPAddress;
  428. ////!普通网络设置 --
  429. typedef struct SXSDK_CONFIG_NET_COMMON
  430. {
  431. //!主机名
  432. char HostName[64];
  433. //!主机IP
  434. SXSDK_IPAddress HostIP;
  435. //!子网掩码
  436. SXSDK_IPAddress Submask;
  437. //!网关IP
  438. SXSDK_IPAddress Gateway;
  439. char pLocalLinkAddr[32]; //本地链路地址
  440. char pAddr[64]; //ipv6地址
  441. char pGateway[64];
  442. //!HTTP服务端口
  443. int HttpPort;
  444. //!TCP侦听端口
  445. int TCPPort;
  446. //!SSL侦听端口
  447. int SSLPort;
  448. //!UDP侦听端口
  449. int UDPPort;
  450. //!最大连接数
  451. int MaxConn;
  452. //!监视协议 {"TCP","UDP","MCAST",…}
  453. char MonMode[32];
  454. //!限定码流值
  455. int MaxBps;
  456. int TransferPlan; ///传输策略
  457. bool bUseHSDownLoad; ///是否启用高速录像下载测率
  458. char sMac[64]; ///MAC地址
  459. char sSn[64]; ///序列号
  460. int DeviceType; ///设备类型,手机区分是插座还是普通设备
  461. int ChannelNum; ///通道数
  462. int Device_Type; ///设备类型,见enum SDK_DevType
  463. char Version[64]; //版本信息
  464. char BuildDate[64]; //版本日期
  465. char OtherFunction[49]; ///用来保存修改其它厂家IP所需信息
  466. char Manufacturer; ///设备生产商,见枚举SDK_Manufacturer
  467. char Resume[6]; ///保留
  468. }SXSDK_CONFIG_NET_COMMON;
  469. ////跨网段修改IP
  470. typedef struct SXSDK_CONFIG_NET_COMMON_V2
  471. {
  472. char HostName[64]; ///主机名
  473. SXSDK_IPAddress HostIP; ///主机IP
  474. SXSDK_IPAddress Submask; ///子网掩码
  475. SXSDK_IPAddress Gateway; ///网关IP
  476. int HttpPort; ///HTTP服务端口
  477. int TCPPort; ///TCP侦听端口
  478. int SSLPort; ///SSL侦听端口
  479. int UDPPort; ///UDP侦听端口
  480. int MaxConn; ///最大连接数
  481. int MonMode; ///监视协议 {"TCP","UDP","MCAST",?}
  482. int MaxBps; ///限定码流值
  483. int TransferPlan; ///传输策略
  484. bool bUseHSDownLoad; ///是否启用高速录像下载测率
  485. char sMac[64]; ///MAC地址
  486. char UserName[64]; ///设备用户名
  487. char Password[64]; ///设备密码
  488. char LocalMac[64];
  489. int nPasswordType;
  490. char Resume[92]; ///保留
  491. }SXSDK_CONFIG_NET_COMMON_V2;
  492. typedef struct SXSDK_DevAttr
  493. {
  494. int AliveInterval;
  495. int ChannelNum;
  496. char DeviceType[64];
  497. int ExtraChannel;
  498. int nTotalChnCount;
  499. }SXSDK_DevAttr;
  500. /// 修改用户密码请求
  501. typedef struct SXSDK_MODIFY_PSW
  502. {
  503. char sUserName[32];
  504. char Password[32];
  505. char NewPassword[32];
  506. }SXSDK_MODIFY_PSW;
  507. ////////Login////////
  508. typedef enum EDEV_CNN_TYPE
  509. {
  510. EDEV_CNN_TYPE_IP_DNS = 0,
  511. EDEV_CNN_TYPE_DAS = 1,
  512. }EDEV_NET_TYPE;
  513. typedef struct SXSDKLoginParam
  514. {
  515. char sDevId[128]; // ip/dns/sn
  516. int nDevPort;
  517. char sUserName[64];
  518. char sPassword[64];
  519. EDEV_NET_TYPE nCnnType;
  520. }SXSDKLoginParam;
  521. typedef struct SXSDKDASDeviceInfo
  522. {
  523. char sDevIP[64];
  524. int nDevPort;
  525. int nChannelNum;
  526. char sDevId[128];
  527. char sDevType[64];
  528. char sUserName[64];
  529. char sPassword[64];
  530. char sEncryptType[64];
  531. char sRes[512];
  532. }SXSDKDASDeviceInfo;
  533. // 录像相关参数
  534. #define EMFileType_mp4 "mp4" //MP4录像
  535. #define EMFileType_jpg "jpg" //图片
  536. #define EMFileType_idximg "idximg" //索引图片
  537. #define EMFileType_recod "h264" //录像
  538. #define EMFileSubType_ALL "*" // 全部录像或抓图
  539. #define EMFileSubType_ALARM "A" // 报警录像或抓图
  540. #define EMFileSubType_DETECT "M" // 动检报警录像或抓图
  541. #define EMFileSubType_HANDLE "H" // 手动录像或手动抓图
  542. #define EMFileSubType_KEY "K" // 关键录像或关键抓图
  543. #define EMFileSubType_URGENT "V" // 紧急录像
  544. #define EMFileSubType_ORIGINAL "R" // 原始录像
  545. #define EMFileSubType_INDUCTION "P" // 感应图片
  546. typedef struct SXSDKQueryRecordReq
  547. {
  548. int nChannel;
  549. int nStreamType; // 0:Main 1:SubStream
  550. char sBeginTime[32]; // YYYY-MM-DD HH:mm:SS
  551. char sEndTime[32]; // YYYY-MM-DD HH:mm:SS
  552. char sFileType[32];
  553. char sFileSubType[32];
  554. }SXSDKQueryRecordReq;
  555. typedef struct SXSDKQueryRecordRes
  556. {
  557. int nChannel;
  558. int nFileLength;
  559. int nDiskNo;
  560. int nSerialNo;
  561. int nStreamType;
  562. char sFileType[32];
  563. char sFileSubType[32];
  564. char sBeginTime[32]; // YYYY-MM-DD HH:mm:SS
  565. char sEndTime[32]; // YYYY-MM-DD HH:mm:SS
  566. char sFileName[128]; // 文件名称
  567. }SXSDKQueryRecordRes;
  568. ////////Device PTZ////////
  569. typedef enum SXSDK_PTZ_ControlType
  570. {
  571. SXSDK_PTZ_UP_CONTROL = 0, //up
  572. SXSDK_PTZ_DOWN_CONTROL, //down
  573. SXSDK_PTZ_LEFT_CONTROL, //left
  574. SXSDK_PTZ_RIGHT_CONTROL, //right
  575. SXSDK_PTZ_ZOOM_ADD_CONTROL, //zoom+
  576. SXSDK_PTZ_ZOOM_DEC_CONTROL, //zoom-
  577. SXSDK_PTZ_FOCUS_ADD_CONTROL, //focus+
  578. SXSDK_PTZ_FOCUS_DEC_CONTROL, //focus-
  579. SXSDK_PTZ_APERTURE_ADD_CONTROL, //aperture+
  580. SXSDK_PTZ_APERTURE_DEC_CONTROL, //aperture-
  581. SXSDK_PTZ_POINT_MOVE_CONTROL, //move to preset
  582. SXSDK_PTZ_POINT_SET_CONTROL, //set
  583. SXSDK_PTZ_POINT_DEL_CONTROL, //delete
  584. SXSDK_PTZ_POINT_LOOP_CONTROL, //tour in presets
  585. SXSDK_PTZ_LAMP_CONTROL, //lamp and wiper
  586. SXSDK_EXTPTZ_LEFTTOP , //left-up
  587. SXSDK_EXTPTZ_RIGHTTOP, //right-up
  588. SXSDK_EXTPTZ_LEFTDOWN, //left-down
  589. SXSDK_EXTPTZ_RIGHTDOWN, //right-down
  590. }SXSDK_PTZ_ControlType;
  591. typedef struct SXSDK_PRESET_INFO
  592. {
  593. unsigned char ucChannel; //channel
  594. unsigned char ucPresetID; //preset No.
  595. unsigned char iSpeed; //preset speed speed 1~15 level
  596. unsigned char iDWellTime; //preset delay time 1~255
  597. unsigned char szPresetName[SXSDK_NAME_LEN]; //preset name
  598. }SXSDK_PRESET_INFO;
  599. typedef struct SXSDK_PTZ_PRESET_SCHEDULE
  600. {
  601. unsigned int dwSize;
  602. unsigned int dwCount;
  603. SXSDK_PRESET_INFO struPreset[SXSDK_PTZ_PRESETNUM];
  604. }SXSDK_PTZ_PRESET_SCHEDULE;
  605. #define SXSDK_DEV_PRESET_CFG 90 //configure of PTZ preset
  606. ////////////////////////////About Media////////////////////////////
  607. typedef enum EXSDK_DATA_FORMATE
  608. {
  609. EXSDK_DATA_FORMATE_NONE = 0,
  610. EXSDK_DATA_FORMATE_FRAME = 1,
  611. EXSDK_DATA_FORMATE_YUV420 =2, // 暂不支持
  612. EXSDK_DATA_MEDIA_ON_PLAY_STATE = ESXSDK_MEDIA_ON_PLAY_STATE,// 媒体状态回调EMediaChnState
  613. EXSDK_DATA_FORMATE_FACE_IMAGE = 2064, // 人脸识别图片
  614. }EXSDK_DATA_FORMATE;
  615. #define XSDK_SAMPLE_FREQ_4000 1
  616. #define XSDK_SAMPLE_FREQ_8000 2
  617. #define XSDK_SAMPLE_FREQ_11025 3
  618. #define XSDK_SAMPLE_FREQ_16000 4
  619. #define XSDK_SAMPLE_FREQ_20000 5
  620. #define XSDK_SAMPLE_FREQ_22050 6
  621. #define XSDK_SAMPLE_FREQ_32000 7
  622. #define XSDK_SAMPLE_FREQ_44100 8
  623. #define XSDK_SAMPLE_FREQ_48000 9
  624. // Frame Type:
  625. #define XSDK_FRAME_TYPE_UNKNOWN 0
  626. #define XSDK_FRAME_TYPE_VIDEO 1
  627. #define XSDK_FRAME_TYPE_AUDIO 2
  628. #define XSDK_FRAME_TYPE_DATA 3
  629. // Sub Type:
  630. #define XSDK_FRAME_TYPE_VIDEO_I_FRAME 0
  631. #define XSDK_FRAME_TYPE_VIDEO_P_FRAME 1
  632. #define XSDK_FRAME_TYPE_VIDEO_B_FRAME 2
  633. #define XSDK_FRAME_TYPE_VIDEO_S_FRAME 3
  634. #define XSDK_FRAME_TYPE_DATA_TEXT 5
  635. #define XSDK_FRAME_TYPE_DATA_INTL 6
  636. // Encode type:
  637. #define XSDK_ENCODE_UNKNOWN 0
  638. #define XSDK_ENCODE_VIDEO_MPEG4 1
  639. #define XSDK_ENCODE_VIDEO_H264 2
  640. #define XSDK_ENCODE_VIDEO_H265 3
  641. #define XSDK_ENCODE_VIDEO_JPEG 3
  642. #define XSDK_ENCODE_VIDEO_SVAC 5
  643. #define XSDK_ENCODE_VIDEO_SVAC_NEW 6
  644. #define XSDK_ENCODE_AUDIO_PCM8 7 // 8BITS,8K
  645. #define XSDK_ENCODE_AUDIO_G729 8
  646. #define XSDK_ENCODE_AUDIO_IMA 9
  647. #define XSDK_ENCODE_AUDIO_PCM_MULAW 10
  648. #define XSDK_ENCODE_AUDIO_G721 11
  649. #define XSDK_ENCODE_AUDIO_PCM8_VWIS 12 // 16BITS,8K
  650. #define XSDK_ENCODE_AUDIO_ADPCM 13 // 16BITS,8K/16K
  651. #define XSDK_ENCODE_AUDIO_G711A 14 // 16BITS,8K
  652. #define XSDK_ENCODE_AUDIO_AAC 15
  653. #define XSDK_ENCODE_AUDIO_AAC2 16
  654. #define XSDK_ENCODE_AUDIO_G711U 22
  655. #define XSDK_ENCODE_AUDIO_TALK 30
  656. #define XSDK_ENCODE_AUDIO_MP4 100
  657. typedef struct SXSDK_FRAME_INFO
  658. {
  659. unsigned char *pHeader; //码流数据带有私有头
  660. unsigned char *pContent; //码流数据去除私有头
  661. int nLength; //对应pHeader的长度
  662. int nFrameLength; //对应pContent的长度
  663. int nType; //对应上面的Frame Type
  664. int nSubType; //对应上面的SubType
  665. int nEncodeType; //对应上面的Encode type。例如MPEG4/H264, PCM, MSADPCM, etc.
  666. int nYear; //此帧的年、月、日、时、分、秒
  667. int nMonth;
  668. int nDay;
  669. int nHour;
  670. int nMinute;
  671. int nSecond;
  672. uint64 nTimeStamp; //此帧时间戳(毫秒)
  673. int nFrameRate; //视频帧率
  674. int nWidth; //视频的宽高
  675. int nHeight;
  676. int nChannels; //音频的通道
  677. int nBitsPerSample; //采样的位深
  678. int nSamplesPerSecond; //采样率
  679. int nParam1; // 扩展用
  680. int nParam2; // 扩展用
  681. uint64 nPos;
  682. }SXSDK_FRAME_INFO;
  683. /////////////////////////////////////////////////////////
  684. typedef struct SXSDK_IA_COMM_RES_S
  685. {
  686. char resultType; //识别类型类型 0:车牌 1:人脸识别
  687. char picSubType; //0:大图 1:小图 2:一组图片传输完成
  688. char picFormat; //0:jpg 1:bmp 2:yuv
  689. char tagNum; //目标个数
  690. unsigned int framID; //帧ID
  691. unsigned int tagsec; //事件发生时的时间秒
  692. unsigned int tagusec; //事件发生时的时间微妙
  693. char channel;
  694. char reserved[3];
  695. }SXSDK_IA_COMM_RES_S;
  696. typedef struct SXSDK_FACE_DETECT //人脸信息
  697. {
  698. char sex;//性别
  699. char age;//年龄
  700. char resv[26];
  701. }SXSDK_FACE_DETECT;
  702. typedef struct SXSDK_RECT_S
  703. {
  704. int leftX;
  705. int topY;
  706. int width;
  707. int height;
  708. } SXSDK_RECT_S;
  709. typedef struct SXSDK_FR_TARGET_INFO //人脸检测
  710. {
  711. SXSDK_RECT_S stRect;
  712. SXSDK_FACE_DETECT face;
  713. char resv[12];
  714. }SXSDK_FR_TARGET_INFO;
  715. typedef struct SDK_IA_FR_REC_S //人脸检测
  716. {
  717. SXSDK_IA_COMM_RES_S comm;
  718. int index; //当前图片的索引号
  719. SXSDK_FR_TARGET_INFO info; // FR_TARGET_INFO
  720. }SXSDK_IA_FR_REC_S;
  721. typedef enum EXSDK_ATTR
  722. {
  723. EXSDK_ATTR_ENABLE_PTL_ENCODE = 1024, // 启用/关闭设备协议加密功能
  724. EXSDK_Str_ATTR_DevAttr_Type = 1025, // 获取设备类型(返回字符串)
  725. EXSDK_Int_ATTR_DevAttr_Chnnel = 1026, // 获取设备总通道数
  726. }EXSDK_ATTR;
  727. #endif //_XNetSDKDefine_H_