Param.h 7.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219
  1. #ifndef __VISION_SYSTEM_PARAM__H__
  2. #define __VISION_SYSTEM_PARAM__H__
  3. #include "Def.h"
  4. #include "MVParamType.h"
  5. #ifdef __cplusplus
  6. extern "C" {
  7. #endif
  8. #define TRUE 1
  9. #define FALSE 0
  10. #define MAX_PARAM_CNT 500
  11. #define PARAM_TYPE_MAX_LEN 255
  12. #define PARAM_NAME_MAX_LEN 255
  13. #define PARAM_ATTR_MAX_LEN 255
  14. #define MAX_STR_LEN 256
  15. typedef void* VS_PARAM_HANDLE;
  16. /// \~chinese
  17. /// 创建指定数据类型的参数对象,获取到的对象由调用者释放
  18. /// \param [in] dataType 指定的参数类型
  19. /// \param [in] name 参数名称
  20. /// \retval null 创建失败
  21. /// \retval 非空 参数对象指针
  22. VISION_SYSTEM_API VS_PARAM_HANDLE CALLMETHOD VS_createParam(Dahua::VisionParam::EMVParamType dataType, const char *name);
  23. /// \~chinese
  24. /// 参数对象深拷贝,该对象由调用者释放
  25. /// \param [in] handle 待拷贝的参数对象指针,使用完成后需要外部显示释放该对象
  26. /// \retval null 拷贝失败
  27. /// \retval 非空 深拷贝后的参数对象指针
  28. VISION_SYSTEM_API VS_PARAM_HANDLE CALLMETHOD VS_cloneParam(VS_PARAM_HANDLE handle);
  29. /// \~chinese
  30. /// 给指定的整数类型参数对象设置具体的值
  31. /// \param [in] handle 参数对象指针
  32. /// \param [in] val 整数类型具体值
  33. /// \retval 0 设置成功
  34. /// \retval 非0 设置失败
  35. VISION_SYSTEM_API int32_t CALLMETHOD VS_setIntValue(VS_PARAM_HANDLE handle, int64_t val);
  36. /// \~chinese
  37. /// 给指定的浮点类型参数对象设置具体的值
  38. /// \param [in] handle 参数对象指针
  39. /// \param [in] val 浮点类型具体值
  40. /// \retval 0 设置成功
  41. /// \retval 非0 设置失败
  42. VISION_SYSTEM_API int32_t CALLMETHOD VS_setDoubleValue(VS_PARAM_HANDLE handle, double val);
  43. /// \~chinese
  44. /// 给指定的布尔类型参数对象设置具体的值
  45. /// \param [in] handle 参数对象指针
  46. /// \param [in] val 布尔类型具体值
  47. /// \retval 0 设置成功
  48. /// \retval 非0 设置失败
  49. VISION_SYSTEM_API int32_t CALLMETHOD VS_setBoolValue(VS_PARAM_HANDLE handle, bool val);
  50. /// \~chinese
  51. /// 给指定的字符串类型参数对象设置具体的值
  52. /// \param [in] handle 参数对象指针
  53. /// \param [in] val 字符串类型具体值
  54. /// \retval 0 设置成功
  55. /// \retval 非0 设置失败
  56. VISION_SYSTEM_API int32_t CALLMETHOD VS_setStringValue(VS_PARAM_HANDLE handle, const char* val);
  57. /// \~chinese
  58. /// 给指定的二进制类型参数对象设置具体的值
  59. /// \param [in] handle 参数对象指针
  60. /// \param [in] val 二进制类型具体值
  61. /// \param [in] len 二进制类型具体值的长度
  62. /// \retval 0 设置成功
  63. /// \retval 非0 设置失败
  64. VISION_SYSTEM_API int32_t CALLMETHOD VS_setBinaryValue(VS_PARAM_HANDLE handle, const void * val, uint32_t len);
  65. /// \~chinese
  66. /// 给指定的二进制类型参数对象设置具体的值
  67. /// \param [in] handle 参数对象指针
  68. /// \param [in] subParamName 子参数名称
  69. /// \param [in] subParamhandle 子参数对象指针
  70. /// \retval 0 设置成功
  71. /// \retval 非0 设置失败
  72. VISION_SYSTEM_API int32_t CALLMETHOD VS_setSubParam(VS_PARAM_HANDLE handle, const char * subParamName, VS_PARAM_HANDLE subParamhandle);
  73. /// \~chinese
  74. /// 得到参数的具体类型
  75. /// \param [in] handle 参数对象指针
  76. /// \param [out] dataType 数据类型
  77. /// \retval 0 获取成功
  78. /// \retval 非0 获取失败
  79. VISION_SYSTEM_API int32_t CALLMETHOD VS_getEnumType(VS_PARAM_HANDLE handle, Dahua::VisionParam::EMVParamType& dataType);
  80. /// \~chinese
  81. /// 得到参数的具体类型
  82. /// \param [in] handle 参数对象指针
  83. /// \param [out] dataType 数据类型
  84. /// \retval 0 获取成功
  85. /// \retval 非0 获取失败
  86. VISION_SYSTEM_API int32_t CALLMETHOD VS_getType(VS_PARAM_HANDLE handle, char dataType[PARAM_TYPE_MAX_LEN]);
  87. /// \~chinese
  88. /// 得到参数的具体类型
  89. /// \param [in] handle 参数对象指针
  90. /// \param [out] name 输出参数名称
  91. /// \retval 0 获取成功
  92. /// \retval 非0 获取失败
  93. VISION_SYSTEM_API int32_t CALLMETHOD VS_getName(VS_PARAM_HANDLE handle, char name[PARAM_NAME_MAX_LEN]);
  94. /// \~chinese
  95. /// 获取指定整数类型参数对象的具体值
  96. /// \param [in] handle 参数对象指针
  97. /// \param [out] pVal 输出的值
  98. /// \retval 0 获取成功
  99. /// \retval 非0 获取失败
  100. VISION_SYSTEM_API int32_t CALLMETHOD VS_getIntValue(VS_PARAM_HANDLE handle, int64_t *pVal);
  101. /// \~chinese
  102. /// 获取指定浮点类型参数对象的具体值
  103. /// \param [in] handle 参数对象指针
  104. /// \param [out] pVal 输出的值
  105. /// \retval 0 获取成功
  106. /// \retval 非0 获取失败
  107. VISION_SYSTEM_API int32_t CALLMETHOD VS_getDoubleValue(VS_PARAM_HANDLE handle, double *pVal);
  108. /// \~chinese
  109. /// 获取指定布尔类型参数对象的具体值
  110. /// \param [in] handle 参数对象指针
  111. /// \param [out] pVal 输出的值
  112. /// \retval 0 获取成功
  113. /// \retval 非0 获取失败
  114. VISION_SYSTEM_API int32_t CALLMETHOD VS_getBoolValue(VS_PARAM_HANDLE handle, uint8_t *pVal);
  115. /// \~chinese
  116. /// 获取指定字符串类型参数对象的具体值
  117. /// \param [in] handle 参数对象指针
  118. /// \param [out] val 输出的值
  119. /// \retval 0 获取成功
  120. /// \retval 非0 获取失败
  121. VISION_SYSTEM_API int32_t CALLMETHOD VS_getStringValue(VS_PARAM_HANDLE handle, char val[MAX_STR_LEN]);
  122. /// \~chinese
  123. /// 获取指定指针类型参数对象的具体值
  124. /// \param [in] handle 参数对象指针
  125. /// \param [out] pVal 输出的值
  126. /// \retval 0 获取成功
  127. /// \retval 非0 获取失败
  128. VISION_SYSTEM_API int32_t CALLMETHOD VS_getPtrValue(VS_PARAM_HANDLE handle, void **pVal);
  129. /// \~chinese
  130. /// 获取指定二进制类型数据长度
  131. /// \param [in] handle 参数对象指针
  132. /// \param [out] pSize 二进制类型数据长度
  133. /// \retval 0 获取成功
  134. /// \retval 非0 获取失败
  135. VISION_SYSTEM_API int32_t CALLMETHOD VS_getBinaryLength(VS_PARAM_HANDLE handle, uint32_t *pSize);
  136. /// \~chinese
  137. /// 获取指定二进制类型参数对象的具体值
  138. /// \param [in] handle 参数对象指针
  139. /// \param [out] pBuffer 缓存地址
  140. /// \param [in/out] pBufferLen 输入参数时是缓存长度,输出参数时是数据的实际有效长度
  141. /// \retval 0 获取成功
  142. /// \retval 非0 获取失败
  143. VISION_SYSTEM_API int32_t CALLMETHOD VS_getBinaryValue(VS_PARAM_HANDLE handle, void *pBuffer, uint32_t *pBufferLen);
  144. /// \~chinese
  145. /// 获取子参数对象指针,获取到的对象由调用者释放
  146. /// \param [in] handle 参数对象指针
  147. /// \param [in] subParamName 子参数名字,使用完成后需要外部显示释放该对象
  148. /// \retval 子参数对象指针
  149. VISION_SYSTEM_API VS_PARAM_HANDLE CALLMETHOD VS_getSubParam(VS_PARAM_HANDLE handle, const char * subParamName);
  150. /// \~chinese
  151. /// 获取子参数对象列表,获取到的对象由调用者释放
  152. /// \param [in] handle 参数对象指针
  153. /// \param [out] paramList 子参数列表
  154. /// \param [out] pValidParamCnt 有效子参数个数
  155. /// \retval 0 获取成功
  156. /// \retval 非0 获取失败
  157. VISION_SYSTEM_API int32_t CALLMETHOD VS_getSubParamList(VS_PARAM_HANDLE handle, VS_PARAM_HANDLE paramList[MAX_PARAM_CNT],
  158. uint32_t *pValidParamCnt);
  159. /// \~chinese
  160. /// 释放参数对象
  161. /// \param [in] handle
  162. /// \retval 0 释放成功
  163. /// \retval 非0 释放失败
  164. VISION_SYSTEM_API int32_t CALLMETHOD VS_releaseParam(VS_PARAM_HANDLE handle);
  165. /// \~chinese
  166. /// 根据参数名称获取参数对象,获取到的对象由调用者释放
  167. /// \param [in] paramList 参数列表
  168. /// \param [in] validParamCnt 有效参数个数
  169. /// \param [in] paramName 参数名称
  170. /// \retval 0 参数对象指针
  171. VISION_SYSTEM_API VS_PARAM_HANDLE CALLMETHOD VS_getParamByName(VS_PARAM_HANDLE paramList[MAX_PARAM_CNT],
  172. uint32_t validParamCnt, const char * paramName);
  173. #ifdef __cplusplus
  174. }
  175. #endif
  176. #endif//__VISION_SYSTEM_PARAM__H__