imos_sdk_func.h 26 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567
  1. /*******************************************************************************
  2. Copyright (c) 2013, Zhejiang Uniview Technologies Co., Ltd. All rights reserved.
  3. --------------------------------------------------------------------------------
  4. imos_sdk_func.h
  5. Project Code: MW_SDK
  6. Module Name: SDK
  7. Date Created: 2012-01-14
  8. Author: c00510
  9. Description: 该文件定义了sdk相关的错误码、宏、枚举、结构体、函数接口
  10. --------------------------------------------------------------------------------
  11. Modification History
  12. DATE NAME DESCRIPTION
  13. --------------------------------------------------------------------------------
  14. 2012-01-14
  15. *******************************************************************************/
  16. #ifndef __IMOS_SDK_FUNC_H__
  17. #define __IMOS_SDK_FUNC_H__
  18. #ifdef __cplusplus
  19. extern "C"{
  20. #endif /* __cplusplus */
  21. #if 0
  22. #endif
  23. /*********************************** 公共函数 **************************************************
  24. SDK Info
  25. ***************************************************************************************/
  26. /** @defgroup groupSDKInfo SDK日志和信息
  27. * SDK日志记录和版本信息
  28. * @{
  29. */
  30. /**
  31. * 获取SDK版本号 \n
  32. * @param [OUT]pucVersion 版本号,长度: IMOS_MW_SDK_CLIENT_VERSION_LEN
  33. * @return ULONG,返回如下结果:
  34. * - #ERR_COMMON_SUCCEED 成功
  35. * - #ERR_SDK_COMMON_INVALID_PARAM 参数非法
  36. * @note
  37. * - 调用者需保证指针所指向的内存长度不小于: IMOS_MW_SDK_CLIENT_VERSION_LEN
  38. */
  39. IMOS_EXPORT ULONG STDCALL IMOS_MW_GetSDKVersion(OUT UCHAR *pucVersion);
  40. /**
  41. * 设置SDK日志信息 \n
  42. * @param [IN] ulLogLevel 日志级别,参见: IMOS_SDK_LOG_CLOSE 等
  43. * @param [IN] pcLogPath 保存路径
  44. * @param [IN] ulLogSize 日志大小
  45. * @return ULONG,返回如下结果:
  46. * - #ERR_COMMON_SUCCEED 成功
  47. * - #ERR_SDK_COMMON_INVALID_PARAM 参数非法
  48. * - #ERR_SDK_LOG_CLOSE 日志已关闭
  49. * @note
  50. * - 1、日志级别的含义,实际记录所有高于设置级别的日志信息,建议设置为: IMOS_SDK_LOG_INFO。
  51. * - 2、日志保存路径需指定,路径长度和操作系统有关,sdk不做限制,windows默认路径长度小于等于256字节(包括文件名在内)。
  52. * - 3、SDK默认日志文件名称 "IMOS_MW_SDK00.log", 默认单个日志文件大小为1.5M,超过该大小时,将已有日志文件备份为"IMOS_MW_SDK01.log", 后重新记录在原文件中。
  53. */
  54. IMOS_EXPORT ULONG STDCALL IMOS_MW_SetLog(IN ULONG ulLogLevel,
  55. IN CHAR *pcLogPath,
  56. IN ULONG ulLogSize);
  57. /** @defgroup groupDeviceStatus 获取设备状态
  58. * 获取设备状态接口
  59. * @{
  60. */
  61. /**
  62. * 获取状态函数 \n
  63. * @param [IN] pcUserID 用户ID
  64. * @param [IN] ulChannel 通道号
  65. * @param [IN] ulCmdType 状态命令类型, 参见: IMOS_MW_STATUS_KEEPALIVE 等
  66. * @param [INOUT] pStatusInfo 状态信息, 参见各状态命令类型的 说明
  67. * @return ULONG,返回如下结果:
  68. * - #ERR_COMMON_SUCCEED 成功
  69. * - #ERR_SDK_COMMON_FAIL 操作失败
  70. * - #ERR_SDK_COMMON_INVALID_PARAM 参数非法
  71. * - #ERR_SDK_USERNONEXIST 用户不存在
  72. * - #ERR_SDK_COMMAND_TIMEOUT 请求超时
  73. * - #ERR_SDK_COMMON_NO_MEMORY 系统内存不足
  74. * @note
  75. * - 无
  76. */
  77. IMOS_EXPORT ULONG STDCALL IMOS_MW_GetDeviceStatus(IN CHAR *pcUserID,
  78. IN ULONG ulChannel,
  79. IN ULONG ulCmdType,
  80. INOUT VOID *pStatusInfo);
  81. /**
  82. * 系统重启 \n
  83. * @param [IN] pcUserID 用户信息标识
  84. * @return ULONG,返回如下结果:
  85. * - #ERR_COMMON_SUCCEED 成功
  86. * - #ERR_SDK_COMMON_FAIL 操作失败
  87. * - #ERR_SDK_COMMON_INVALID_PARAM 参数非法
  88. * - #ERR_SDK_USERNONEXIST 用户不存在
  89. * - #ERR_SDK_COMMAND_TIMEOUT 请求超时
  90. * @note 无
  91. */
  92. IMOS_EXPORT ULONG STDCALL IMOS_MW_Reboot(IN CHAR *pcUserID);
  93. /*************************************************************************************
  94. SDK Init
  95. ***************************************************************************************/
  96. /** @defgroup groupSDKInit SDK初始化和注销
  97. * SDK初始化,详细的调用依赖关系请参见SDK说明文档。该模块包含初始化接口和清空接口。
  98. * @{
  99. */
  100. /**
  101. * SDK初始化 \n
  102. * @param [IN] 无
  103. * @return ULONG,返回如下结果:
  104. * - #ERR_COMMON_SUCCEED 成功
  105. * - #ERR_SDK_COMMON_FAIL 操作失败
  106. * - #ERR_SDK_CREATE_THREAD_FAIL 创建线程失败
  107. * - #ERR_SDK_XP_INIT_FAILED 播放器初始化失败
  108. * - #ERR_SDK_REINIT SDK 已经初始化
  109. * - #ERR_SDK_COMMON_NO_MEMORY 缓存不足
  110. * @note 无
  111. */
  112. IMOS_EXPORT ULONG STDCALL IMOS_MW_Initiate(VOID);
  113. /**
  114. * SDK资源释放 \n
  115. * @param [IN] 无
  116. * @return ULONG,返回如下结果:
  117. * - #ERR_COMMON_SUCCEED 成功
  118. * - #ERR_SDK_COMMON_FAIL 操作失败
  119. * @note 无
  120. */
  121. IMOS_EXPORT ULONG STDCALL IMOS_MW_Cleanup(VOID);
  122. /** @} */ /* end of SDKInit Module */
  123. /*************************************************************************************
  124. Status Report
  125. ***************************************************************************************/
  126. /** @defgroup groupStatusReport 设置状态上报回调函数
  127. * 设置设备运行中的状态或异常消息的处理函数
  128. * @{
  129. */
  130. /**
  131. * SDK状态上报回调函数 \n
  132. * @param [IN] pcUserID 用户ID, 表示当前上报状态的用户
  133. * @param [IN] ulReportType 消息或者异常消息类型,参见 IMOS_MW_STATUS_KEEPALIVE 等
  134. * @param [IN] pParam 存放消息或异常消息数据的缓冲区指针
  135. * @return ULONG
  136. * @note
  137. * - 1、用户需要确保该回调函数尽快返回
  138. * - 2、不能在该回调函数中直接调用播放器的任何接口函数。
  139. * - 3、参数pParam所指的缓冲区中存放的数据的类型视消息或者异常消息类型而定,用户需要根据消息或者异常消息类型对其做类型转换
  140. */
  141. typedef VOID (STDCALL* IMOS_MW_STATUS_REPORT_CALLBACK_PF)(IN CHAR *pcUserID,
  142. IN ULONG ulReportType,
  143. IN VOID *pParam);
  144. /**
  145. * 设置状态上报回调函数 \n
  146. * @param [IN] pfStatusReportCB SDK状态上报回调函数的函数指针
  147. * @return ULONG,返回如下结果:
  148. * - #ERR_COMMON_SUCCEED 成功
  149. * @note
  150. * - 1、用户需要确保该回调函数尽快返回。
  151. * - 2、不能在该回调函数中直接调用播放器SDK的任何接口函数。
  152. */
  153. IMOS_EXPORT ULONG STDCALL IMOS_MW_SetStatusCallback(IN IMOS_MW_STATUS_REPORT_CALLBACK_PF pfStatusReportCBFun);
  154. /*************************************************************************************
  155. User Login
  156. ***************************************************************************************/
  157. /** @defgroup groupUserLogin 用户登录
  158. * SDK用户登录、登出
  159. * @{
  160. */
  161. /**
  162. * 用户登录 \n
  163. * @param [IN] pcUserName 用户输入的登录名,长度为 IMOS_MW_USER_NAME_LEN
  164. * @param [IN] pcPassword 用户输入的密码,长度为 IMOS_MW_USER_PASSWORD_LEN
  165. * @param [IN] pcServerIP 目的终端的IP地址,长度为 IMOS_MW_IPADDR_LEN
  166. * @param [IN] usServerPort 目的终端的端口号,若为0,则程序内部分配
  167. * @param [OUT] pcUserID 用户ID,长度为 IMOS_MW_RES_CODE_LEN
  168. * @return ULONG,返回如下结果:
  169. * - #ERR_COMMON_SUCCEED 成功
  170. * - #ERR_SDK_COMMON_FAIL 操作失败
  171. * - #ERR_SDK_COMMON_INVALID_PARAM 输入参数非法
  172. * - #ERR_SDK_NOTINIT 设备SDK未初始化
  173. * - #ERR_SDK_USERFULL 设备用户已满
  174. * - #ERR_SDK_USERNONEXIST 用户不存在
  175. * - #ERR_SDK_USER_PASSWD_INVALID 用户密码错误
  176. * - #ERR_SDK_COMMAND_TIMEOUT 请求超时
  177. * @note
  178. * - 1、该接口用于登录IPC设备
  179. * - 2、pcUserID 用户标识,具有唯一性,后续对设备的操作都需要通过此ID实现
  180. */
  181. IMOS_EXPORT ULONG STDCALL IMOS_MW_Login(IN CHAR *pcUserName,
  182. IN CHAR *pcPassword,
  183. IN CHAR *pcServerIP,
  184. IN USHORT usServerPort,
  185. OUT CHAR *pcUserID);
  186. IMOS_EXPORT ULONG STDCALL IMOS_MW_LoginReconnect(IN CHAR *pcUserName,
  187. IN CHAR *pcPassword,
  188. IN CHAR *pcServerIP,
  189. IN USHORT usServerPort,
  190. OUT CHAR *pcUserID);
  191. /**
  192. * 用户注销 \n
  193. * @param [IN] pcUserID 用户ID
  194. * @return ULONG,返回如下结果:
  195. * - #ERR_COMMON_SUCCEED 成功
  196. * - #ERR_SDK_COMMON_FAIL 操作失败
  197. * - #ERR_SDK_COMMON_INVALID_PARAM 输入参数非法
  198. * - #ERR_SDK_USERNONEXIST 用户非法
  199. * - #ERR_SDK_COMMAND_TIMEOUT 请求超时
  200. * @note
  201. * - 输入参数中用户ID,是登录时获取到的。
  202. */
  203. IMOS_EXPORT ULONG STDCALL IMOS_MW_Logout(IN CHAR *pcUserID);
  204. /*************************************************************************************
  205. Device Config
  206. ***************************************************************************************/
  207. /** @defgroup groupDeviceConfig 参数配置
  208. * 参数配置
  209. * @{
  210. */
  211. /**
  212. * 获取设备配置信息 \n
  213. * @param [IN] pcUserID 用户ID
  214. * @param [IN] ulCmdType 命令类型,参见: IMOS_MW_SYSTEM_TIME_INFO 等
  215. * @param [IN] ulChannel 通道号
  216. * @param [INOUT] pulBufferLen 传入数据的缓冲区大小
  217. * @param [INOUT] pConfigDataBuf 存放输出参数的缓冲区
  218. * @return ULONG,返回如下结果:
  219. * - #ERR_COMMON_SUCCEED 成功
  220. * - #ERR_SDK_COMMON_FAIL 操作失败
  221. * - #ERR_SDK_COMMON_INVALID_PARAM 参数非法
  222. * - #ERR_SDK_USERNONEXIST 用户非法
  223. * - #ERR_SDK_COMMAND_TIMEOUT 请求超时
  224. * - #ERR_SDK_COMMON_NO_MEMORY 系统内存不足
  225. * - #ERR_SDK_NOENOUGH_BUF 缓存大小不足
  226. * @note
  227. * - 1、参数 ulChannel 对于各类型命令字有不同的含义,部分命令字不需要该参数,设置为无效值(0xFFFF)。
  228. * - 2、参数 pulBufferLen 入参时表示存放获取到配置的缓存区大小,出参表示实际获取到配置需要的缓存区大小;
  229. * 对于部分长度可变的配置项,若入参缓存区大小不够,需要根据出参重新获取配置。
  230. * - 3、参数 pConfigDataBuf 表示存放获取到配置的指针,其对应的结构定义参见各命令字的说明,其中部分参数的获取,需要传入指定参数。
  231. */
  232. IMOS_EXPORT ULONG STDCALL IMOS_MW_GetConfig(IN CHAR *pcUserID,
  233. IN ULONG ulCmdType,
  234. IN ULONG ulChannel,
  235. INOUT ULONG *pulBufferLen,
  236. INOUT VOID *pConfigDataBuf);
  237. /**
  238. * 设置设备配置信息 \n
  239. * @param [IN] pcUserID 用户ID
  240. * @param [IN] ulCmdType 命令类型,参见: IMOS_MW_SYSTEM_TIME_INFO 等
  241. * @param [IN] ulChannel 通道号
  242. * @param [IN] ulBufferLen 传入数据的缓冲区大小
  243. * @param [IN] pConfigDataBuf 存放输入参数的缓冲区
  244. * @return ULONG,返回如下结果:
  245. * - #ERR_COMMON_SUCCEED 成功
  246. * - #ERR_SDK_COMMON_FAIL 操作失败
  247. * - #ERR_SDK_COMMON_INVALID_PARAM 参数非法
  248. * - #ERR_SDK_USERNONEXIST 用户非法
  249. * - #ERR_SDK_COMMAND_TIMEOUT 请求超时
  250. * - #ERR_SDK_COMMON_NO_MEMORY 系统内存不足
  251. * @note
  252. * - 1、参数 ulChannel 对于各类型命令字有不同的含义,部分命令字不需要该参数,设置为无效值(0xFFFF)。
  253. * - 2、参数 pulBufferLen 表示存放待设置的配置缓存区大小。
  254. * - 3、参数 pConfigDataBuf 表示存待设置配置的指针,其对应的结构定义参见各命令字的说明,其中部分参数的设置,需要传入指定参数。
  255. */
  256. IMOS_EXPORT ULONG STDCALL IMOS_MW_SetConfig(IN CHAR *pcUserID,
  257. IN ULONG ulCmdType,
  258. IN ULONG ulChannel,
  259. IN ULONG ulBufferLen,
  260. IN VOID *pConfigDataBuf);
  261. /**
  262. * 删除设备配置信息 \n
  263. * @param [IN] pcUserID 用户ID
  264. * @param [IN] ulCmdType 命令类型,参见: IMOS_MW_INFO_OSD_CFG 等
  265. * @param [IN] ulChannel 通道号
  266. * @param [IN] ulBufferLen 传入数据的缓冲区大小
  267. * @param [IN] pConfigDataBuf 存放输入参数的缓冲区
  268. * @return ULONG,返回如下结果:
  269. * - #ERR_COMMON_SUCCEED 成功
  270. * - #ERR_SDK_COMMON_FAIL 操作失败
  271. * - #ERR_SDK_COMMON_INVALID_PARAM 参数非法
  272. * - #ERR_SDK_USERNONEXIST 用户非法
  273. * - #ERR_SDK_COMMAND_TIMEOUT 请求超时
  274. * - #ERR_SDK_COMMON_NO_MEMORY 系统内存不足
  275. * @note
  276. * - 1、参数 ulChannel 对于各类型命令字有不同的含义,部分命令字不需要该参数,设置为无效值(0xFFFF)。
  277. * - 2、参数 pulBufferLen 表示存放待设置的配置缓存区大小。
  278. * - 3、参数 pConfigDataBuf 表示存待设置配置的指针,其对应的结构定义参见各命令字的说明,其中部分参数的删除,需要传入指定参数。
  279. * - 4、支持删除的配置有:叠加OSD配置,遮盖OSD配置、运动检测区域配置、告警联动配置
  280. */
  281. IMOS_EXPORT ULONG STDCALL IMOS_MW_DelConfig(IN CHAR *pcUserID,
  282. IN ULONG ulCmdType,
  283. IN ULONG ulChannel,
  284. IN ULONG ulBufferLen,
  285. IN VOID *pConfigDataBuf);
  286. /***************************************************************************************/
  287. /**
  288. * TCP 接受数据回调函数 \n
  289. * @param [IN] pcUserID 用户信息标识
  290. * @param [IN] pstAlarmInfo 事件信息(含事件类型、时间、来源)
  291. * @return ULONG
  292. * @note 无
  293. */
  294. typedef ULONG (STDCALL* IMOS_MW_STREAMDATA_CALLBACK_PF)(IN ULONG ulStreamHandle,
  295. IN CHAR *pcStreamBuf,
  296. IN INT lBufLen);
  297. /**
  298. * 获取照片流回调,结构形式。 \n
  299. * @param [IN] const IMOS_MW_UNIVIEW_PROTOCOL_HEADER_S *pstUniviewData 照片信息
  300. * @param [IN] const CHAR* DeviceIP 设备IP (用于区分收到的照片来源)
  301. * @return 无。
  302. * @note :带中文的自动为utf8格式
  303. * -
  304. */
  305. typedef VOID (STDCALL* IMOS_MW_TMS_MULTIUSER_PIC_UPLOAD_PF)(IN const IMOS_MW_MULTI_UNIVIEW_PROTOCOL_HEADER_S *pstUniviewData,
  306. IN const ULONG ulStreamHandle);
  307. /**
  308. * 获取照片流回调(XML形式)。 \n
  309. * @param [IN] const ULONG ulXmlLen, XML长度
  310. * @param [IN] const CHAR *pcPicXmlInfo 照片相关信息, 以XML形式提供
  311. * @param [IN] const IMOS_MW_PIC_INFO_S *pstPicData 照片数据
  312. * @param [IN] const ULONG ulStreamHandle 流句柄
  313. * @return 无。
  314. * @note
  315. * -
  316. */
  317. typedef VOID (STDCALL* IMOS_MW_PIC_XML_UPLOAD_PF)(IN const ULONG ulXmlLen,
  318. IN const CHAR *pcPicXmlInfo,
  319. IN const IMOS_MW_PIC_INFO_S *pstPicData,
  320. IN const ULONG ulStreamHandle);
  321. /**
  322. * 创建(启动)媒体流 \n
  323. * @param [IN] pcUserID 用户ID
  324. * @param [IN] ulChannel 通道号, 待扩展
  325. * @param [IN] ulStreamID 流ID, 参见 IMOS_MW_STREAM_ID_MAIN 等
  326. * @param [IN] ulTransMode 流传输模式,参见 IMOS_MW_TRANSFER_MODE_RTP_UDP 等
  327. * @param [IN] pcIpAddress 码流接收端IP地址,
  328. * @param [IN] usPort 码流接收端端口, 若端口为0, 则由SDK内部分配接收端口
  329. * @param [IN] bKeepAlive 流保活标志,建立流用于第三方播放时,填 BOOL_FALSE
  330. * @param [OUT] pulStreamHandle 流句柄
  331. * @return ULONG,返回如下结果:
  332. * - #ERR_COMMON_SUCCEED 成功
  333. * - #ERR_SDK_COMMON_FAIL 操作失败
  334. * - #ERR_SDK_COMMON_INVALID_PARAM 参数非法
  335. * - #ERR_SDK_USERNONEXIST 用户不存在
  336. * - #ERR_SDK_COMMON_NO_MEMORY 系统内存分配失败
  337. * - #ERR_SDK_SOCKET_LSN_FAIL 创建Socket失败
  338. * - #ERR_SDK_XP_PORT_ALLOC_FAILED 获取播放器资源失败
  339. * - #ERR_SDK_DEVICE_STREAM_FULL 设备流已满
  340. * - #ERR_SDK_XP_START_STREAM_FAILED 媒体流创建失败
  341. * - #ERR_SDK_COMMAND_TIMEOUT 请求超时
  342. * @note
  343. * - 1、码流接收端IP地址设为: ""或 NULL, 或 "0.0.0.0" 均表示本端ip, 接收端端ip为本端时可不指定端口号(置0)
  344. * - 2、用于IPC设备实况流的建立
  345. * - 3、获取到的流句柄,用于后续对流的处理
  346. */
  347. IMOS_EXPORT ULONG STDCALL IMOS_MW_StartMediaStream(IN CHAR *pcUserID,
  348. IN ULONG ulChannel,
  349. IN ULONG ulStreamID,
  350. IN ULONG ulTransMode,
  351. IN CHAR *pcIpAddress,
  352. IN USHORT usPort,
  353. IN BOOL_T bKeepAlive,
  354. OUT ULONG *pulStreamHandle);
  355. IMOS_EXPORT ULONG STDCALL IMOS_MW_StartMediaStreamReconnect(IN CHAR *pcUserID,
  356. IN ULONG ulChannel,
  357. IN ULONG ulStreamID,
  358. IN ULONG ulTransMode,
  359. IN CHAR *pcIpAddress,
  360. IN USHORT usPort,
  361. IN BOOL_T bKeepAlive,
  362. OUT ULONG *pulStreamHandle);
  363. /**
  364. * 设置照片流数据回调函数 \n
  365. * @param [IN] pcUserID 用户信息标识
  366. * @param [IN] bReTran 是否重传 0 不重传 1 重传
  367. * @param [IN] pcReTranIP 重传码流接收端IP地址;不重传填空,""
  368. * @param [IN] IMOS_MW_TMS_PIC_UPLOAD_PF pfnPicDataCBFun 照片上传回调
  369. * @param [OUT] ULONG ulStreamHandle 流句柄
  370. * @return ULONG,返回如下结果:
  371. * - #ERR_COMMON_SUCCEED 成功
  372. * - #ERR_SDK_COMMON_FAIL 操作失败
  373. * - #ERR_SDK_USERNONEXIST 用户不存在
  374. * @note 1: 调用该函数实现了起流与设置回调,相机通过设置的回调函数上报照片,车牌,违章等信息。
  375. * 2: 如果设置重传, 相机为接SDK时将图片保存到SD卡, 连接SDK后会将SD卡中照片上报。
  376. * -
  377. */
  378. IMOS_EXPORT ULONG STDCALL IMOS_MW_SetPicStreamDataCallback(IN CHAR *pcUserID,
  379. IN BOOL_T bReTran,
  380. IN CHAR *pcReTranIP,
  381. IN IMOS_MW_TMS_MULTIUSER_PIC_UPLOAD_PF pfnPicDataCBFun,
  382. OUT ULONG *pulStreamHandle);
  383. /**
  384. * 删除(停止)媒体流 \n
  385. * @param [IN] pcUserID 用户ID
  386. * @param [IN] ulStreamHandle 流句柄,标识一条流
  387. * @return ULONG,返回如下结果:
  388. * - #ERR_COMMON_SUCCEED 成功
  389. * - #ERR_SDK_COMMAND_SEND_FAIL 消息发送失败
  390. * - #ERR_SDK_COMMAND_TIMEOUT 请求超时
  391. * - #ERR_SDK_DEVICE_STREAM_NONEXIST 设备流不存在
  392. * - #ERR_SDK_COMMON_INVALID_PARAM 参数非法
  393. * - #ERR_SDK_USERNONEXIST 用户非法
  394. * @note
  395. * - 用于IPC设备实况流的删除,流句柄是 IMOS_MW_StartMediaStream 获取到的
  396. */
  397. IMOS_EXPORT ULONG STDCALL IMOS_MW_StopMediaStream(IN CHAR *pcUserID,
  398. IN ULONG ulStreamHandle);
  399. /**
  400. * 设置视频数据回调函数 \n
  401. * @param [IN] pfnStreamData TCP码流回调函数
  402. * @param [IN] ulStreamHandle 流句柄,标识一条流
  403. * @return ULONG,返回如下结果:
  404. * - #ERR_COMMON_SUCCEED 成功
  405. * - #ERR_SDK_COMMAND_SEND_FAIL 消息发送失败
  406. * - #ERR_SDK_COMMAND_TIMEOUT 请求超时
  407. * - #ERR_SDK_DEVICE_STREAM_NONEXIST 设备流不存在
  408. * - #ERR_SDK_COMMON_INVALID_PARAM 参数非法
  409. * - #ERR_SDK_USERNONEXIST 用户非法
  410. * @note
  411. * - 用于IPC设备实况流的删除,流句柄是 IMOS_MW_StartMediaStream 获取到的
  412. *
  413. */
  414. IMOS_EXPORT ULONG STDCALL IMOS_MW_SetStreamDataCallBack(IN IMOS_MW_STREAMDATA_CALLBACK_PF pfnStreamData,
  415. IN ULONG ulStreamHandle);
  416. /**
  417. * 设置过车照片上传回调(卡口多用户) \n
  418. * @param [IN] IMOS_MW_TMS_MULTIUSER_PIC_UPLOAD_PF pfnPicDataCBFun 照片上传回调
  419. * @param [IN] ULONG ulStreamHandle 流句柄
  420. * @return ULONG,返回如下结果:
  421. * - #ERR_COMMON_SUCCEED 成功
  422. * - #ERR_SDK_COMMON_FAIL 操作失败
  423. * - #ERR_SDK_DEVICE_STREAM_NONEXIST 设备流不存在
  424. */
  425. IMOS_EXPORT ULONG STDCALL IMOS_MW_MultiUser_SetPicDataCallback(IN IMOS_MW_TMS_MULTIUSER_PIC_UPLOAD_PF pfnPicDataCBFun, IN ULONG ulStreamHandle);
  426. /**
  427. * 设置多张照片上传回调,照片信息以XML格式上传 \n
  428. * @param [IN] IMOS_MW_PIC_XML_UPLOAD_PF pfnPicDataCBFun 照片上传回调
  429. * @param [IN] IN ULONG ulStreamHandle 流句柄
  430. * @return ULONG,返回如下结果:
  431. * - #ERR_COMMON_SUCCEED 成功
  432. * - #ERR_SDK_COMMON_FAIL 操作失败
  433. * - #ERR_SDK_DEVICE_STREAM_NONEXIST 设备流不存在
  434. */
  435. IMOS_EXPORT ULONG STDCALL IMOS_MW_SetPicDataAndXmlInfoCallback(IN IMOS_MW_PIC_XML_UPLOAD_PF pfnPicDataCBFun,
  436. IN ULONG ulStreamHandle);
  437. /** @defgroup groupCameraCapture 手动前端抓拍
  438. * 手动前端抓拍
  439. * @{
  440. */
  441. /**
  442. * 手动前端抓拍 \n
  443. * @param [IN] pcUserID 用户ID
  444. * @param [IN] ulChannel 通道号
  445. * @param [INOUT] pulPicBuffSize 保存抓拍图片的缓冲区大小
  446. * @param [OUT] pcPicBuffer 保存抓拍图片的缓冲区
  447. * @return ULONG,返回如下结果:
  448. * - #ERR_COMMON_SUCCEED 成功
  449. * - #ERR_SDK_COMMON_FAIL 操作失败
  450. * - #ERR_SDK_USERNONEXIST 用户非法
  451. * - #ERR_SDK_COMMON_INVALID_PARAM 参数非法
  452. * @note
  453. * - 1、pulPicBuffSize 入参时,表示 用户分配的缓存区大小,出参为实际的图片所需缓存区大小
  454. * - 2、返回值为 "分配的缓存区不足" 时,用户需根据出参中的文件实际缓存区大小重新分配足够缓存后,
  455. * - 重新调用该接口获取已抓拍的照片
  456. */
  457. IMOS_EXPORT ULONG STDCALL IMOS_MW_Capture(IN CHAR *pcUserID,
  458. IN ULONG ulChannel,
  459. INOUT ULONG *pulPicBuffSize,
  460. OUT CHAR *pcPicBuffer);
  461. /**
  462. * 输出开关量 \n
  463. * @param [IN] pcUserID 用户ID
  464. * @return ULONG,返回如下结果:
  465. * - #ERR_COMMON_SUCCEED 成功
  466. * - #ERR_SDK_COMMON_FAIL 操作失败
  467. * - #ERR_SDK_COMMON_INVALID_PARAM 参数非法
  468. * - #ERR_SDK_USERNONEXIST 用户不存在
  469. * - #ERR_SDK_COMMAND_TIMEOUT 请求超时
  470. * @note
  471. * -
  472. */
  473. IMOS_EXPORT ULONG STDCALL IMOS_MW_SetOutputSwitchStatusCfg(IN CHAR *pcUserID);
  474. /**
  475. * 实现数据从SDK透传串口 \n
  476. * @param [IN] pcUserID 用户信息标识
  477. * @param [IN] pcDataBuffer 输入数据缓存(最大256 BYTE)
  478. * @param [IN] ulDataNum 输入数据长度(最大256 BYTE)
  479. * @param [IN] ulComIndex 串口号索引 (1----4) (根据界面透明通道配置 port依次为 1025,1026,1027,1028)
  480. * @return ULONG,返回如下结果:
  481. * - #ERR_COMMON_SUCCEED 成功
  482. * - #ERR_SDK_COMMON_FAIL 操作失败
  483. * - #ERR_SDK_USERNONEXIST 用户不存在
  484. * @note 无
  485. * -
  486. */
  487. ULONG STDCALL IMOS_MW_SendDataToCom(IN CHAR *pcUserID, IN CHAR *pcDataBuffer, IN LONG ulDataNum, IN ULONG ulComIndex);
  488. /**
  489. * 导入黑白名单文件 \n
  490. * @param [IN] pcUserID 用户信息标识
  491. * @param [IN] ulWhiteBlackType 黑白名单类型 参考IMOS_MW_GATE_WHITE
  492. * @param [IN] pcFile 白名单文件(含绝对路径)
  493. * @return ULONG,返回如下结果:
  494. * - #ERR_COMMON_SUCCEED 成功
  495. * - #ERR_SDK_COMMON_FAIL 操作失败
  496. * - #ERR_SDK_COMMON_INVALID_PARAM 参数非法
  497. * - #ERR_SDK_USERNONEXIST 用户不存在
  498. * - #ERR_SDK_COMMON_FAIL_STAT 读取文件失败
  499. * - #ERR_SDK_INVALID_CONFIGFILE 配置文件非法
  500. * - #ERR_SDK_COMMON_NO_MEMORY 系统内存不足
  501. * - #ERR_SDK_COMMAND_TIMEOUT 请求超时
  502. * @note
  503. * - 1、导入指定路径下的白名单文件(含绝对路径),文件名需命名为whiteblacklist.csv
  504. * - 2、路径长度和操作系统有关,sdk不做限制,windows默认路径长度小于等于256字节(包括文件名在内)。
  505. */
  506. IMOS_EXPORT ULONG STDCALL IMOS_MW_ImportWhiteBlackListFile(IN CHAR *pcUserID, IN CHAR *pcFile);
  507. /**
  508. * 导出黑白名单文件 \n
  509. * @param [IN] pcUserID 用户信息标识
  510. * @param [IN] ulWhiteBlackType 黑白名单类型 参考IMOS_MW_GATE_WHITE
  511. * @param [IN] pcFile 白名单文件(含绝对路径)
  512. * @return ULONG,返回如下结果:
  513. * - #ERR_COMMON_SUCCEED 成功
  514. * - #ERR_SDK_COMMON_FAIL 操作失败
  515. * - #ERR_SDK_COMMON_INVALID_PARAM 参数非法
  516. * - #ERR_SDK_USERNONEXIST 用户不存在
  517. * - #ERR_SDK_COMMON_FAIL_STAT 读取文件失败
  518. * - #ERR_SDK_INVALID_CONFIGFILE 配置文件非法
  519. * - #ERR_SDK_COMMON_NO_MEMORY 系统内存不足
  520. * - #ERR_SDK_COMMAND_TIMEOUT 请求超时
  521. * @note
  522. * - 1、导入指定路径下的白名单文件(含绝对路径),文件名需命名为whiteblacklist.csv
  523. * - 2、路径长度和操作系统有关,sdk不做限制,windows默认路径长度小于等于256字节(包括文件名在内)。
  524. */
  525. IMOS_EXPORT ULONG STDCALL IMOS_MW_ExportWhiteBlackListFile(IN CHAR *pcUserID, IN CHAR *pcFile);
  526. #ifdef __cplusplus
  527. }
  528. #endif
  529. #endif /*end of __IMOS_SDK_FUNC_H__*/