123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219 |
- #ifndef __VISION_SYSTEM_PARAM__H__
- #define __VISION_SYSTEM_PARAM__H__
- #include "Def.h"
- #include "MVParamType.h"
- #ifdef __cplusplus
- extern "C" {
- #endif
- #define TRUE 1
- #define FALSE 0
- #define MAX_PARAM_CNT 500
- #define PARAM_TYPE_MAX_LEN 255
- #define PARAM_NAME_MAX_LEN 255
- #define PARAM_ATTR_MAX_LEN 255
- #define MAX_STR_LEN 256
- typedef void* VS_PARAM_HANDLE;
- /// \~chinese
- /// 创建指定数据类型的参数对象,获取到的对象由调用者释放
- /// \param [in] dataType 指定的参数类型
- /// \param [in] name 参数名称
- /// \retval null 创建失败
- /// \retval 非空 参数对象指针
- VISION_SYSTEM_API VS_PARAM_HANDLE CALLMETHOD VS_createParam(Dahua::VisionParam::EMVParamType dataType, const char *name);
- /// \~chinese
- /// 参数对象深拷贝,该对象由调用者释放
- /// \param [in] handle 待拷贝的参数对象指针,使用完成后需要外部显示释放该对象
- /// \retval null 拷贝失败
- /// \retval 非空 深拷贝后的参数对象指针
- VISION_SYSTEM_API VS_PARAM_HANDLE CALLMETHOD VS_cloneParam(VS_PARAM_HANDLE handle);
- /// \~chinese
- /// 给指定的整数类型参数对象设置具体的值
- /// \param [in] handle 参数对象指针
- /// \param [in] val 整数类型具体值
- /// \retval 0 设置成功
- /// \retval 非0 设置失败
- VISION_SYSTEM_API int32_t CALLMETHOD VS_setIntValue(VS_PARAM_HANDLE handle, int64_t val);
- /// \~chinese
- /// 给指定的浮点类型参数对象设置具体的值
- /// \param [in] handle 参数对象指针
- /// \param [in] val 浮点类型具体值
- /// \retval 0 设置成功
- /// \retval 非0 设置失败
- VISION_SYSTEM_API int32_t CALLMETHOD VS_setDoubleValue(VS_PARAM_HANDLE handle, double val);
- /// \~chinese
- /// 给指定的布尔类型参数对象设置具体的值
- /// \param [in] handle 参数对象指针
- /// \param [in] val 布尔类型具体值
- /// \retval 0 设置成功
- /// \retval 非0 设置失败
- VISION_SYSTEM_API int32_t CALLMETHOD VS_setBoolValue(VS_PARAM_HANDLE handle, bool val);
- /// \~chinese
- /// 给指定的字符串类型参数对象设置具体的值
- /// \param [in] handle 参数对象指针
- /// \param [in] val 字符串类型具体值
- /// \retval 0 设置成功
- /// \retval 非0 设置失败
- VISION_SYSTEM_API int32_t CALLMETHOD VS_setStringValue(VS_PARAM_HANDLE handle, const char* val);
- /// \~chinese
- /// 给指定的二进制类型参数对象设置具体的值
- /// \param [in] handle 参数对象指针
- /// \param [in] val 二进制类型具体值
- /// \param [in] len 二进制类型具体值的长度
- /// \retval 0 设置成功
- /// \retval 非0 设置失败
- VISION_SYSTEM_API int32_t CALLMETHOD VS_setBinaryValue(VS_PARAM_HANDLE handle, const void * val, uint32_t len);
- /// \~chinese
- /// 给指定的二进制类型参数对象设置具体的值
- /// \param [in] handle 参数对象指针
- /// \param [in] subParamName 子参数名称
- /// \param [in] subParamhandle 子参数对象指针
- /// \retval 0 设置成功
- /// \retval 非0 设置失败
- VISION_SYSTEM_API int32_t CALLMETHOD VS_setSubParam(VS_PARAM_HANDLE handle, const char * subParamName, VS_PARAM_HANDLE subParamhandle);
- /// \~chinese
- /// 得到参数的具体类型
- /// \param [in] handle 参数对象指针
- /// \param [out] dataType 数据类型
- /// \retval 0 获取成功
- /// \retval 非0 获取失败
- VISION_SYSTEM_API int32_t CALLMETHOD VS_getEnumType(VS_PARAM_HANDLE handle, Dahua::VisionParam::EMVParamType& dataType);
- /// \~chinese
- /// 得到参数的具体类型
- /// \param [in] handle 参数对象指针
- /// \param [out] dataType 数据类型
- /// \retval 0 获取成功
- /// \retval 非0 获取失败
- VISION_SYSTEM_API int32_t CALLMETHOD VS_getType(VS_PARAM_HANDLE handle, char dataType[PARAM_TYPE_MAX_LEN]);
- /// \~chinese
- /// 得到参数的具体类型
- /// \param [in] handle 参数对象指针
- /// \param [out] name 输出参数名称
- /// \retval 0 获取成功
- /// \retval 非0 获取失败
- VISION_SYSTEM_API int32_t CALLMETHOD VS_getName(VS_PARAM_HANDLE handle, char name[PARAM_NAME_MAX_LEN]);
- /// \~chinese
- /// 获取指定整数类型参数对象的具体值
- /// \param [in] handle 参数对象指针
- /// \param [out] pVal 输出的值
- /// \retval 0 获取成功
- /// \retval 非0 获取失败
- VISION_SYSTEM_API int32_t CALLMETHOD VS_getIntValue(VS_PARAM_HANDLE handle, int64_t *pVal);
- /// \~chinese
- /// 获取指定浮点类型参数对象的具体值
- /// \param [in] handle 参数对象指针
- /// \param [out] pVal 输出的值
- /// \retval 0 获取成功
- /// \retval 非0 获取失败
- VISION_SYSTEM_API int32_t CALLMETHOD VS_getDoubleValue(VS_PARAM_HANDLE handle, double *pVal);
- /// \~chinese
- /// 获取指定布尔类型参数对象的具体值
- /// \param [in] handle 参数对象指针
- /// \param [out] pVal 输出的值
- /// \retval 0 获取成功
- /// \retval 非0 获取失败
- VISION_SYSTEM_API int32_t CALLMETHOD VS_getBoolValue(VS_PARAM_HANDLE handle, uint8_t *pVal);
- /// \~chinese
- /// 获取指定字符串类型参数对象的具体值
- /// \param [in] handle 参数对象指针
- /// \param [out] val 输出的值
- /// \retval 0 获取成功
- /// \retval 非0 获取失败
- VISION_SYSTEM_API int32_t CALLMETHOD VS_getStringValue(VS_PARAM_HANDLE handle, char val[MAX_STR_LEN]);
- /// \~chinese
- /// 获取指定指针类型参数对象的具体值
- /// \param [in] handle 参数对象指针
- /// \param [out] pVal 输出的值
- /// \retval 0 获取成功
- /// \retval 非0 获取失败
- VISION_SYSTEM_API int32_t CALLMETHOD VS_getPtrValue(VS_PARAM_HANDLE handle, void **pVal);
- /// \~chinese
- /// 获取指定二进制类型数据长度
- /// \param [in] handle 参数对象指针
- /// \param [out] pSize 二进制类型数据长度
- /// \retval 0 获取成功
- /// \retval 非0 获取失败
- VISION_SYSTEM_API int32_t CALLMETHOD VS_getBinaryLength(VS_PARAM_HANDLE handle, uint32_t *pSize);
- /// \~chinese
- /// 获取指定二进制类型参数对象的具体值
- /// \param [in] handle 参数对象指针
- /// \param [out] pBuffer 缓存地址
- /// \param [in/out] pBufferLen 输入参数时是缓存长度,输出参数时是数据的实际有效长度
- /// \retval 0 获取成功
- /// \retval 非0 获取失败
- VISION_SYSTEM_API int32_t CALLMETHOD VS_getBinaryValue(VS_PARAM_HANDLE handle, void *pBuffer, uint32_t *pBufferLen);
- /// \~chinese
- /// 获取子参数对象指针,获取到的对象由调用者释放
- /// \param [in] handle 参数对象指针
- /// \param [in] subParamName 子参数名字,使用完成后需要外部显示释放该对象
- /// \retval 子参数对象指针
- VISION_SYSTEM_API VS_PARAM_HANDLE CALLMETHOD VS_getSubParam(VS_PARAM_HANDLE handle, const char * subParamName);
- /// \~chinese
- /// 获取子参数对象列表,获取到的对象由调用者释放
- /// \param [in] handle 参数对象指针
- /// \param [out] paramList 子参数列表
- /// \param [out] pValidParamCnt 有效子参数个数
- /// \retval 0 获取成功
- /// \retval 非0 获取失败
- VISION_SYSTEM_API int32_t CALLMETHOD VS_getSubParamList(VS_PARAM_HANDLE handle, VS_PARAM_HANDLE paramList[MAX_PARAM_CNT],
- uint32_t *pValidParamCnt);
- /// \~chinese
- /// 释放参数对象
- /// \param [in] handle
- /// \retval 0 释放成功
- /// \retval 非0 释放失败
- VISION_SYSTEM_API int32_t CALLMETHOD VS_releaseParam(VS_PARAM_HANDLE handle);
- /// \~chinese
- /// 根据参数名称获取参数对象,获取到的对象由调用者释放
- /// \param [in] paramList 参数列表
- /// \param [in] validParamCnt 有效参数个数
- /// \param [in] paramName 参数名称
- /// \retval 0 参数对象指针
- VISION_SYSTEM_API VS_PARAM_HANDLE CALLMETHOD VS_getParamByName(VS_PARAM_HANDLE paramList[MAX_PARAM_CNT],
- uint32_t validParamCnt, const char * paramName);
-
- #ifdef __cplusplus
- }
- #endif
- #endif//__VISION_SYSTEM_PARAM__H__
|