依托云优势,接入你的智能产品
硬件接入SDK开发文档
设备端SDK接口文档
V1.6
日期 | 版本 | 修订说明 | 修订人 |
2020-3-01 | 1.0 | 初稿 | |
2020-9-23 | 1.6 | 新增规范说明 | |
本文档使用对象为设备厂商,主要说明厂商通过设备侧SDK接入牵心平台。
摄像头厂商集成牵心SDK相关要求如下:
Linux/Unix环境,需要支持标准GCC指令,需要支持标准POSIX库,需要有集成openssl加密库等基础环境;
1、 需要有大于16M,最好能32M的内存空间可供SDK使用;
2、 需要大约2M的FLASH空间用来存放SDK相关的库文件;
3、 需要大约1M的空间用来存放SDK中记录的配置项相关文件。
名词 | 解释 |
IPC | 网络摄像机 |
NVR | NVR是(Network Video Recorder即网络硬盘录像机)的缩写。NVR最主要的功能是通过网络接收IPC(网络摄像机)设备传输的数字视频码流, 并进行存储、管理,从而实现网络化带来的分布式架构优势。 |
CTEI | CTEI码,设备唯一标识码,摄像机厂家获得该信息后写入摄像机。 |
SDK | Software Development Kit 的缩写,中文即“软件开发工具包”。广义上指辅助开发某一类软件的相关文档、范例和工具的集合 |
APP | 指合入SDK服务的上层应用,即SDK上层应用 |
为了保证设备能够被观看、被控制,关键数据可以被存储。SDK提供以下基本功能:
1. 媒体数据传输
高效、实时的传送音视频数据,保证视频的流畅性和及时性。
2. 设备的各种配置记录
记录用户对设备的各种设置,主要包括设备,镜头,传感器等
3. 录像的存储和回放
录制音视频数据,支持用户对某个时间或视频的点播回放
4. 云视频上传
根据业务需求, 将视音频数据上传到云端,实现更加可靠的存储
5. 控制命令的分发等
将用户的各种控制指令分发到各个模块
对外提供的结构主要在头文件如下:
文件名称 | 描述 |
zj_cameraiot.h | 摄像头设备相关的IoT事件能力和硬件能力接口,如:图形侦测报警、声音报警、设备指示灯控制、蜂鸣器控制、本地录制等 |
zj_camera.h | 与音视频相关接口 |
zj_channel.h | 用户自定义消息的接受和发送 |
zj_log.h | 日志相关接口 |
zj_network.h | 网络相关的接口 |
zj_ota.h | 固件升级相关接口 |
zj_power.h | 电源及节能设备相关的接口 |
zj_system.h | 与软件相关的接口,如初始化、注销等 |
zj_type.h | 使用的数据结构定义 |
zj_err.h | 与服务器之间通信的错误码定义 |
zj_iothub.h | 管理IOT HUB扩展能力,包括HUB的通信、协议转换等 |
zj_upload.h | 获取默认时间,如果厂商没有实现NTP服务,可以使用此文件提供的接口。 |
CTEI码,设备唯一码,摄像机厂家获得该信息后写入摄像机。
设备方提供交叉编译工具,并按照平台方要求实现设备功能接口,平台方编译提供应用程序功能库供设备方调用整合到设备程序中。
各模块关系图如下所示:
1、 平台方用设备方提供的交叉编译工具生成应用程序库提供给设备方。
2、 设备方按平台方要求实现公共接口,用于获取设备音视频及控制设备相关参数等功能。
3、 设备方主程序整合平台方提供的应用程序库,并调用相关接口,启动平台方的应用程序服务。
4、 第三方库ssl需要厂商编译链接(如需要平台方编译,需要提供移植流程示例及源码)
├── include //头文件
│ ├── zj_camera.h
│ ├── zj_cameraiot.h
│ ├── zj_channel.h
│ ├── zj_err.h
│ ├── zj_log.h
│ ├── zj_network.h
│ ├── zj_ota.h
│ ├── zj_power.h
│ ├── zj_system.h
│ └── zj_type.h
├── libcommon.so //核心动态库
├── libcos.so //系统库动态库
├── libthirdparty.so //第三方库动态库
└── static
├── libcommon.a //核心静态库
├── libcos.a //系统静态库
└── libthirdparty.a //第三方静态库
SDK启动流程:
1、 调用ZJ_Init() 初始化SDK
2、 设置日志模式和设置日志等级
3、 配置音视频参数、能力集回调接口注册
4、 调用ZJ_Start()启动SDK并分配资源
…
5、 调用ZJ_Stop()停止SDK运行
6、 调用ZJ_Destory()释放SDK资源
接口定义 | _ZJ_API int ZJ_Init(char *pucSystemPath, char* pcConfPath) |
功能描述 | 设备初始化接口;传入一个配置存储路径和一个系统路径。系统路径在重置的时候, 该文件不会被删除,需要确保路径可访问,如不可访问则会返回对应的错误状态信息。 |
入参 | pucSystemPath:系统路径 pcConfPath: 配置路径 |
返回值 | 0 表示正确,否则其他错误 |
接口定义 | _ZJ_API int ZJ_Start() |
功能描述 | 启动SDK相关线程并分配资源,需要在Init后执行 |
入参 | 无 |
返回值 | 0 表示正确,否则其他错误 |
接口定义 | _ZJ_API int ZJ_Stop() |
功能描述 | 停止SDK运行 |
入参 | 无 |
返回值 | 0 表示正确,否则其他错误 |
接口定义 | _ZJ_API int ZJ_Destroy() |
功能描述 | SDK实例销毁接口 |
入参 | 无 |
返回值 | 0 表示正确,否则其他错误 |
接口定义 | _ZJ_API int ZJ_SetCTEIID(unsigned char* pucCTEI) |
功能描述 | 设置CTEI码 |
入参 | pucCTEI:CTEI码值 |
返回值 | 0 表示正确,否则其他错误 |
接口定义 | _ZJ_API int ZJ_SetAppVersion( const char* pcVersion) |
功能描述 | 设置固件版本号 |
入参 | pcVersion: 设备版本号 |
返回值 | 0 表示正确,否则其他错误 |
接口定义 | _ZJ_API int ZJ_SetPlatSignAddr(unsigned char *pucSignAddr) |
功能描述 | 自定义平台的 域名地址 xxx:port port 不带 默认 443 |
入参 | pucSignAddr: 平台地址 |
返回值 | 0 表示正确,否则其他错误 |
接口定义 | _ZJ_API int ZJ_SetCompanyInfo( unsigned char *pucCompanyId,unsigned char* pucAppId) |
功能描述 | 企业的信息, 没有可以不填 |
入参 | pucCompanyId: 企业id pucAppId: APPid |
返回值 | 0 表示正确,否则其他错误 |
接口定义 | _ZJ_API int ZJ_SetDevType(unsigned int uiDevType) |
功能描述 | 设置设备类型:EN_ZJ_DEV_TYPE |
入参 | pucDevModel: 设备类型 |
返回值 | 0 表示正确,否则其他错误 |
接口定义 | _ZJ_API int ZJ_SetSIMCardInfo(unsigned char aucSIMCard[64]) |
功能描述 | 设置设备的4G卡号 |
入参 | aucSIMCard: 4G卡号 |
返回值 | 0 表示正确,否则其他错误 |
接口定义 | _ZJ_API int ZJ_Set4GAbility(int i4GAbility) |
功能描述 | 设置4G卡的能力 |
入参 | i4GAbility: 4G卡的能力 |
返回值 | 0 表示正确,否则其他错误 |
接口定义 | _ZJ_API int ZJ_SetDevIMEI(unsigned char aucIMEI[64]) |
功能描述 | 设置4G卡的IMEI号 |
入参 | aucIMEI: 4G设备的IMEI号 |
返回值 | 0 表示正确,否则其他错误 |
接口定义 | _ZJ_API int ZJ_Set_SystemStatusCB( ZJ_PFUN_DEVICE_STATUS pFunSelfStatusCb ) |
功能描述 | 设备状态回调函数设置,从初始化启动&设备配网&设备添加绑定,一般为需要上层做相关提示的产品,设置该回调函数 |
入参 | pFunSelfStatusCb:设备状态回调的函数 |
返回值 | 0 表示正确,否则其他错误 |
接口定义 | typedef int (*ZJ_PFUN_DEVICE_STATUS)( EN_ZJ_SERVER_STATUS enDeviceStatus, int iErrCode) |
功能描述 | 设备状态回调函数设置,通过该接口设置设备从初始化启动&设备配网&设备添加绑定的状态 |
入参 | enDeviceStatus:设备状态回调的函数 iErrCode:错误代码 |
返回值 | 0 表示正确,否则其他错误 |
接口定义 | _ZJ_API int ZJ_SetDeviceRebootCbFunc( ZJ_PFUN_DEV_REBOOT pfunDevRebootCb) |
功能描述 | 设备重启回调函数设置,设备上层在该函数中安全关闭设备各执行程序,然后将设备重新启动 |
入参 | pfunDevRebootCb:设备重启回调函数 |
返回值 | 0 表示正确,否则其他错误 |
接口定义 | typedef int (*ZJ_PFUN_DEV_REBOOT)(); |
功能描述 | 设备重启回调函数,告诉设置需要重新启动 |
入参 | 无 |
返回值 | 0 表示正确,否则其他错误 |
接口定义 | _ZJ_API int ZJ_SetZoneAndTimeCB( ZJ_PFUN_DEVICE_SETTIMEZONE pfunSetTimeZone, ZJ_PFUN_DEVICE_GETTIMEANDZONE pfunGetTimeZone ) |
功能描述 | 设置系统时间获取与设置回调函数 |
入参 | pfunSetTimeZone:时间设置回调函数 pfunGetTimeZone:时间获取回调函数 |
返回值 | 0 表示正确,否则其他错误 |
设置时间回调接口
接口定义 | typedef int (*ZJ_PFUN_DEVICE_SETTIMEZONE)( int iSyncFlag, int iZone, char* pcDatetime) |
功能描述 | 设置系统时间回调函数, 告诉设备按参数设置时间 |
入参 | iSyncFlag:1自动同步NTP的时间,0自定义时间 iZone:时区设置,取值单位:秒 pcDatetime:日历时间,格式为:YYYY-MM-DD hh-mm-ss |
返回值 | 0 表示正确,否则其他错误 |
Ø 获取时间回调接口
接口定义 | typedef int (*ZJ_PFUN_DEVICE_GETTIMEANDZONE)( int *piZone, unsigned char *pucTime, int *piSyncFlag) |
功能描述 | 设置系统时间回调函数, 告诉设备按参数设置时间 |
入参 | *iSyncFlag:1自动同步NTP的时间,0自定义时间 *iZone:时区设置,取值单位:秒 *pcDatetime:日历时间,格式为:YYYY-MM-DD hh-mm-ss |
返回值 | 0 表示正确,否则其他错误 |
接口定义 | _ZJ_API int ZJ_SetDefaultZoneAndTimeCB(ZJ_PFUN_DEVICE_SETDEFAULTZONETIME pFunSetDefaultTimeAndZone); |
功能描述 | 设置默认的时间和时区 |
入参 | pFunSetDefaultTimeAndZone:默认时间和时区回调函数 |
返回值 | 0 表示正确,否则其他错误 |
默认时间和时区回调函数
接口定义 | typedef int (*ZJ_PFUN_DEVICE_SETDEFAULTZONETIME)(int iSetZoneFlag,int iZone,long long iGMTSecond); |
功能描述 | 设置默认时间和时区 |
入参 | piSetZoneFlag 时区是否有效, 1 有效, 0 无效 piZone表示本地时区, iGMTSecond: utc 的 秒数 |
返回值 | 0 表示正确,否则其他错误 |
接口定义 | _ZJ_API void ZJ_SetSysMemLevel( EN_ZJ_DEVICE_MEM_ABILITY enZJDevAblity) |
功能描述 | 设置系统内存空闲值,用于缓存视频帧的数据量,不设置默认为MID值 |
入参 | enZJDevAblity:空闲值等级,分为足量、适中、不足 足量:内存余量可以存储3个以上完整GOP 适中:可以存储1个以上完整GOP 不足:只可以存在一个完整帧 |
返回值 | 0 表示正确,否则其他错误 |
接口定义 | _ZJ_API int ZJ_SetNoticeCfgChangeCbFun( ZJ_PFUN_CFGITEM_CHANGE pfunCfgItemChangeCb) |
功能描述 | 设置摄像机名称的回调,通知上层,设备的dev配置项发生变化 |
入参 | pfunCfgItemChangeCb:回调函数 |
返回值 | 0 表示正确,否则其他错误 |
接口定义 | typedef int (*ZJ_PFUN_CFGITEM_CHANGE)( unsigned int uiCfgItem) |
功能描述 | 配置变化 通知 |
入参 | uiCfgItem:配置条目 |
返回值 | 0 表示正确,否则其他错误 |
接口定义 | _ZJ_API int ZJ_SetRestoreFactorySettingCB( ZJ_PFUN_DEVICE_RESTOREFACTORYSETTING pfunRestoreFactorySetting) |
功能描述 | 设置设备恢复出厂设置回调函数 |
入参 | pfunRestoreFactorySetting:设备恢复出厂设置回调函数 |
返回值 | 0 表示正确,否则其他错误 |
接口定义 | typedef int (*ZJ_PFUN_DEVICE_RESTOREFACTORYSETTING)(); |
功能描述 | 设备恢复出厂设置回调接口,告诉设置恢复出厂设置 |
入参 | 无 |
返回值 | 0 表示正确,否则其他错误 |
接口定义 | ZJ_API int ZJ_SetEncryptAbility( int iEncAbility) |
功能描述 | 设置设备加密能力 |
入参 | iEncAbility:加密能力,详见enum_ZJ_ENCRYPT_ABILITY定义 |
返回值 | 0 表示正确,否则其他错误 |
接口定义 | _ZJ_API unsigned char* ZJ_GetDeviceId() |
功能描述 | 获取设备的did, 该ID 由 服务器分配 |
入参 | 无 |
返回值 | did,否则其他错误 |
接口定义 | _ZJ_API int ZJ_CtrlDeviceId( unsigned int uiCtrlType) |
功能描述 | 设备DID控制 |
入参 | uiCtrlType:控制类型,详见:EN_ZJ_CTRLDEVICEID_TYPE |
返回值 | 0正确,否则其他错误 |
接口定义 | _ZJ_API unsigned char *ZJ_GetDeviceName() |
功能描述 | 获取 设备名字 |
入参 | 无 |
返回值 | 设备名称,否则其他错误 |
接口定义 | _ZJ_API int ZJ_SetDeviceName( unsigned char *pucDevName) |
功能描述 | 设置 设备名字 |
入参 | pucDevName:设备名称 |
返回值 | 0正确,否则其他错误 |
接口定义 | _ZJ_API int ZJ_GetCurChargePackage( ST_ZJ_CURCHARGEPACKAGE *pstChargePackage) |
功能描述 | 获取当前生效的套餐 |
入参 | pstChargePackage:套餐参数,详见:ST_ZJ_CURCHARGEPACKAGE |
返回值 | 0正确,否则其他错误 |
接口定义 | _ZJ_API int ZJ_BoolDeviceJoinGroup() |
功能描述 | 查询设置入职状态 |
入参 | 无 |
返回值 | 0未入组,1已入组 |
接口定义 | _ZJ_API int ZJ_GetDeviceOwnerPubInf( unsigned char aucName[64], unsigned char aucCcount[64], unsigned char aucMobile[32]) |
功能描述 | 获取设备的用户信息 |
入参 | aucName:名称 aucCcount:账户 aucMobile:用户电话 |
返回值 | 0正确,否则其他错误 |
接口定义 | _ZJ_API int ZJ_GetLinkAddr( unsigned char **pucAddrIpv4, unsigned char **pucAddrIpv6, unsigned int *puiPort, unsigned char **pucToken) |
功能描述 | 获取设备休眠后,进入保活流程所连接的服务的地址,所返回的地址只读,不要修改和释放 |
入参 | pucAddrIpv4:服务的IPV4地址 pucAddrIpv6:服务的IPV6地址 puiPort:服务的端口号 pucToken:登陆服务的授权信息,可能为空 |
返回值 | 0正确,否则其他错误 |
接口定义 | _ZJ_API int ZJ_SetSystemDstInf( int iUseDstFlag, unsigned char *pucDstArea, unsigned char *pucDstTime, int iTimeZone); |
功能描述 | 如果设备的内置web页面修改了时区,调用改接口同步信息 |
入参 | iUseDstFlag:是否启用区域和时区格式,0 不启用,iTimeZone有效;1 启用:pucDstArea和pucDstTime有效 pucDstArea:时区的区域信息(beijing) pucDstTime:时区信息(CET-1CEST,M3.5.0,M10.5.0/3) iTimeZone:时区的秒数。大于0:东时区;小于0:西时区 |
返回值 | 0正确,否则其他错误 |
以下为摄像头能力集设置函数, 不设置默认为不支持。
接口定义 | _ZJ_API int ZJ_SetStreamCount(int iStreamCount) |
功能描述 | 设置码流数量 |
入参 | iStreamCount:码流数量,若为0则表示没有摄像头,默认为0 |
返回值 | 0 表示正确,否则其他错误 |
接口定义 | _ZJ_API int ZJ_SetVoicePlayAbility(int iVoicePlayAbility) |
功能描述 | 设置语音对讲能力 |
入参 | iVoicePlayAbility:0.不支持;1.支持单工;2.支持双工 |
返回值 | 0 表示正确,否则其他错误 |
接口定义 | _ZJ_API int ZJ_SetPTZAbility(int iPTZAbility) |
功能描述 | 设置PTZ能力 |
入参 | iPTZAbility : 0x00:不支持;0x01: 支持P;0x02: 支持T;0x04: 支持Z;按位与 |
返回值 | 0 表示正确,否则其他错误 |
接口定义 | _ZJ_API int ZJ_SetPTZSpeedAbility( int iPTZSpeedSetAbility) |
功能描述 | 设置PTZ云台速度设置标志 |
入参 | iPTZSpeedSetAbility:0.不支持; 1.支持 |
返回值 | 0 表示正确,否则其他错误 |
接口定义 | _ZJ_API int ZJ_SetOSDSetAbility( int iOSDSetAbility) |
功能描述 | OSD设置能力支持 |
入参 | iOSDSetAbility:0.不支持; 1.支持 |
返回值 | 0 表示正确,否则其他错误 |
接口定义 | _ZJ_API int ZJ_SetPresetPointAbility( int iPresetAbility) |
功能描述 | 预置点设置能力支持 |
入参 | iPresetAbility: 0.不支持; 1.支持 |
返回值 | 0 表示正确,否则其他错误 |
接口定义 | _ZJ_API int ZJ_SetResolutionAbility( int iStreamid, int iResolutionAbility) |
功能描述 | 设置分辨率能力集 |
入参 | iStreamID:视频流Id iResolutionAbility: 支持多种按位与EN_ZJ_CARERA_RESOLUTION_ABILITY,必须设置 |
返回值 | 0 表示正确,否则其他错误 |
接口定义 | _ZJ_API int ZJ_SetVideoEncodeAbility( int istreamid, int iEncAbility) |
功能描述 | 设置摄像机视频编码类型 |
入参 | iStreamID:视频流Id iEncAbility:支持多种按位与,见:EN_ZJ_VIDEOENC_TYPE,必须设置 |
返回值 | 0 表示正确,否则其他错误 |
接口定义 | _ZJ_API int ZJ_SetMicroPhoneAbility( int iMicroPhoneAbility) |
功能描述 | 设置麦克风是否支持 |
入参 | iMicroPhoneAbility:0.不支持; 1.支持 |
返回值 | 0 表示正确,否则其他错误 |
接口定义 | _ZJ_API int ZJ_SetIRLedAbility( int iIRLedAbility) |
功能描述 | 设置IRLed红外灯控制模式 |
入参 | iIRLedAbility:详见EN_ZJ_IRMODE |
返回值 | 0 表示正确,否则其他错误 |
接口定义 | _ZJ_API int ZJ_SetSDCardAbility( int iSDCardAbility) |
功能描述 | 设置SD卡能力支持 |
入参 | iSDCardAbility:0.不支持; 1.支持 |
返回值 | 0 表示正确,否则其他错误 |
接口定义 | _ZJ_API int ZJ_SetImageInversionAbility( int iInversionAbility) |
功能描述 | 设置图像翻转能力支持 |
入参 | iInversionAbility:0.不支持; 1.支持 |
返回值 | 0 表示正确,否则其他错误 |
接口定义 | _ZJ_API int ZJ_SetAttachPTZAbility( int iAttachPTZAbility) |
功能描述 | 设置外挂云台PTZ支持 |
入参 | iAttachPTZAbility:0.不支持; 1.支持 |
返回值 | 0 表示正确,否则其他错误 |
接口定义 | _ZJ_API int ZJ_SetLensMaxCount(int iLensCount) |
功能描述 | 设置镜头最大数量 |
入参 | iLensCount:最大数量 |
返回值 | 0 表示正确,否则其他错误 |
接口定义 | _ZJ_API int ZJ_SetLensInf(int iLenId,char *pucLenName, EN_ZJ_CAMERA_LENS_TYPE enLensType,double focalLenth); |
功能描述 | 设置镜头信息 |
入参 | iLenId:ID,pucLenName:名字,enLensType:类型,focalLenth: |
返回值 | 0 表示正确,否则其他错误 |
接口定义 | _ZJ_API int ZJ_SetCamerCurIRWorkMode(int iCurWorkMode) |
功能描述 | 设置摄像头当前IR工作模式 |
入参 | iCurWorkMode:工作模式 |
返回值 | 0 表示正确,否则其他错误 |
接口定义 | API int ZJ_SetRingToneAbility(unsigned int uiBSupport, unsigned int uiDecAblity) |
功能描述 | 设置RingTone能力 |
入参 | uiBSupport:uiB支持,uiDecAblity: 解码能力合集 |
返回值 | 0 表示正确,否则其他错误 |
接口定义 | _ZJ_API int ZJ_SetImageInversionCB( ZJ_PFUN_IMAGEINVERSION pfunImageInversion) |
功能描述 | 设置画面翻转回调接口, 通过该回调接口通知上层做画面翻转 |
入参 | pfunImageInversion:回调函数 |
返回值 | 0 表示正确,否则其他错误 |
函数定义 | typedef int (*ZJ_PFUN_IMAGEINVERSION)( int iState) |
功能描述 | 设置画面翻转回调接口, 告诉设备画面进行翻转 |
入参 | iState:1.图像正立; 2.图像倒立; |
返回值 | 0 表示正确,否则其他错误 |
接口定义 | _ZJ_API int ZJ_SetIRLedSwitchCB( ZJ_PFUN_IRLED_SWITCH pfunIRLedSwitch) |
功能描述 | 设置红外灯开关控制回调接口, 通过该回调接口通知上层做红外灯开关控制 |
入参 | pfunIRLedSwitch:回调函数 |
返回值 | 0 表示正确,否则其他错误 |
函数定义 | typedef int (*ZJ_PFUN_IRLED_SWITCH)(int iState) |
功能描述 | 红外灯开关回调接口,告诉设备红外灯切换模式 |
入参 | iState:见EN_ZJ_IRMODE |
返回值 | 0 表示正确,否则其他错误 |
接口定义 | _ZJ_API int ZJ_SetCameraSwitchCB( ZJ_PFUN_CAMERA_SWITCH pfunCameraSwitch) |
功能描述 | 设置摄像头开关回调接口,通过该回调接口通知上层关闭视频采集:停止侦测、停止编码、停止采集、停止采集音频、停止声音侦测 |
入参 | pfunCameraSwitch:回调函数 |
返回值 | 0 表示正确,否则其他错误 |
函数定义 | typedef int (*ZJ_PFUN_CAMERA_SWITCH)( int iState) |
功能描述 | 设置摄像机打开关闭回调接口,告诉设备关闭音频、关闭视频 |
入参 | iState:0. 关闭;1.打开 |
返回值 | 0 表示正确,否则其他错误 |
接口定义 | _ZJ_API int ZJ_SetCameraPTZCB( ZJ_PFUN_CAMERA_ONPTZ pfunOnPTZ, ZJ_PFUN_CAMERA_PTZ_GETPOINT pfunPTZGetPoint, ZJ_PFUN_CAMERA_PTZ_GOTOPOINT pfunPTZGotoPoint, ZJ_PFUN_CAMERA_PTZ_AUTOCHECK pfunPTZAutoCheck, ZJ_PFUN_CAMERA_CRUISE_START pfunCruiseStart, ZJ_PFUN_CAMERA_PTZ_STOP pfunPtzStop) |
功能描述 | 设置摄像头PTZ回调接口,通过该回调接口通知上层完成对应PTZ操作 |
入参 | pfunOnPTZ:回调函数 pfunPTZGetPoint:回调函数 pfunPTZGotoPoint:回调函数 pfunPTZAutoCheck:回调函数 pfunCruiseStart:回调函数 pfunPtzStop:回调函数 |
返回值 | 0 表示正确,否则其他错误 |
ZJ_PFUN_CAMERA_ONPTZ
函数定义 | typedef int (*ZJ_PFUN_CAMERA_ONPTZ)( EN_ZJ_CAMERA_PTZ_CONTROL enPTZControl, int iSpeed, int iPTZStep) |
功能描述 | 摄像头PTZ回调接口,告诉设备进行PTZ操作; PTZ操作方法:速度,1~7,1最低,7最快; PTZStep:移动步长,一个步长为1度,360表示一直移动到头一圈 |
入参 | enPTZControl:摄像机PTZ转动方向 iSpeed:移动步长 iPTZStep:移动步长 |
返回值 | 0 表示正确,否则其他错误 |
ZJ_PFUN_CAMERA_PTZ_GETPOINT
函数定义 | typedef int (*ZJ_PFUN_CAMERA_PTZ_GETPOINT)( int* piX, int* piY) |
功能描述 | 摄像头当前位置获取,获取X,Y点值; |
入参 | piX:X点值 piY:Y点值 |
返回值 | 0 表示正确,否则其他错误 |
ZJ_PFUN_CAMERA_PTZ_GOTOPOINT
函数定义 | typedef int (*ZJ_PFUN_CAMERA_PTZ_GOTOPOINT)( int iX, int iY) |
功能描述 | 摄像机移动到预置点位置 |
入参 | piX:X点值 piY:Y点值 |
返回值 | 0 表示正确,否则其他错误 |
ZJ_PFUN_CAMERA_PTZ_AUTOCHECK
函数定义 | typedef int (*ZJ_PFUN_CAMERA_PTZ_AUTOCHECK)() |
功能描述 | 摄像机自动检测,当预置点位置因人为转动电机导致错乱时,需要重新设置,设置前需要先自检获得初始位置 |
入参 | 无 |
返回值 | 0 表示正确,否则其他错误 |
ZJ_PFUN_CAMERA_CRUISE_START
函数定义 | typedef int (*ZJ_PFUN_CAMERA_CRUISE_START)( int iPresetPointNum, ST_ZJ_CAMERA_CRUISE_PRESET* pstPresets) |
功能描述 | 摄像机巡航开始回调接口,告诉设备按定义的预置点巡航 |
入参 | iPresetPointNum:巡航预置点数量 pstPresets:预置位缓存数组,详见:ST_ZJ_CAMERA_CRUISE_PRESET |
返回值 | 0 表示正确,否则其他错误 |
ZJ_PFUN_CAMERA_PTZ_STOP
函数定义 | typedef int (*ZJ_PFUN_CAMERA_PTZ_STOP)() |
功能描述 | 摄像机停止巡航 |
入参 | 无 |
返回值 | 0 表示正确,否则其他错误 |
接口定义 | _ZJ_API int ZJ_SetCameraCruiseCB( ZJ_PFUN_CAMERA_CRUISE_START pfunCruiseStart, ZJ_PFUN_CAMERA_CRUISE_STOP pfunCruiseStop) |
功能描述 | 设置摄像头CRUISE定速巡航回调接口,通知上层完成巡航功能操作 |
入参 | pfunCruiseStart:回调函数 pfunCruiseStop:回调函数 |
返回值 | 0 表示正确,否则其他错误 |
ZJ_PFUN_CAMERA_CRUISE_START
函数定义 | typedef int (*ZJ_PFUN_CAMERA_CRUISE_START)( int iPresetPointNum, ST_ZJ_CAMERA_CRUISE_PRESET* pstPresets) |
功能描述 | 摄像机巡航开始回调接口,告诉设备按定义的预置点巡航 |
入参 | iPresetPointNum:预置点个数 pstPresets :预置点信息 |
返回值 | 0 表示正确,否则其他错误 |
ZJ_PFUN_CAMERA_CRUISE_STOP
函数定义 | typedef int (*ZJ_PFUN_CAMERA_CRUISE_STOP)() |
功能描述 | 摄像机停止巡航 |
入参 | 无 |
返回值 | 0 表示正确,否则其他错误 |
接口定义 | _ZJ_API int ZJ_SetRecordStatusCB( ZJ_PFUN_CAMERA_RECORD_STATUS pfunRecordStatus) |
功能描述 | 设置录像状态回调接口,通过该接口可以在上层做相应的提示 |
入参 | pfunRecordStatus:回调函数 |
返回值 | 0 表示正确,否则其他错误 |
ZJ_PFUN_CAMERA_RECORD_STATUS
函数定义 | typedef int (*ZJ_PFUN_CAMERA_RECORD_STATUS)( int iStatus) |
功能描述 | 本地录像状态回调接口,告诉设备本地录像是否进行 |
入参 | iStatus:0.未录像;1.录像 |
返回值 | 0 表示正确,否则其他错误 |
接口定义 | _ZJ_API int ZJ_SetIRLedMode(int iLedMode) |
功能描述 | 设置红外灯当前模式接口 |
入参 | iLedMode:详见EN_ZJ_IRMODE |
返回值 | 0 表示正确,否则其他错误 |
接口定义 | _ZJ_API int ZJ_SetCameraStatus(int iStatus) |
功能描述 | 设置摄像机当前状态,对于摄像机上层有物理开关按钮,设置摄像机关闭、打开状态 |
入参 | iStatus:1.打开/0.关闭 |
返回值 | 0 表示正确,否则其他错误 |
接口定义 | _ZJ_API int ZJ_StartRecord(int iStreamID) |
功能描述 | 开始摄像机录像; 设备有触发开始录像和停止录像的接口,触发后开始录制,传入录制码流序号,设置序号0为主码流,1为次码流,当多种触发录制时,以主码流录制优先 |
入参 | iStreamID:视频流Id |
返回值 | 0 表示正确,否则其他错误 |
接口定义 | _ZJ_API int ZJ_StopRecord() |
功能描述 | 停止当前录像;设备上层关闭录像,SDK收到该消息关闭所有录像 |
入参 | 无 |
返回值 | 0 表示正确,否则其他错误 |
接口定义 | ZJ_API int ZJ_SetOSDSettingCB( ZJ_PFUN_CAMERA_OSDSETTING pfunOSDSetting) |
功能描述 | 设置摄像机水印设置回调接口 |
入参 | pfunOSDSetting:回调函数 |
返回值 | 0 表示正确,否则其他错误 |
ZJ_PFUN_CAMERA_OSDSETTING
函数定义 | typedef int (*ZJ_PFUN_CAMERA_OSDSETTING)( int iPosition, char* pcOSDName) |
功能描述 | 摄像头OSD水印添加回调接口,告诉设备对当前码流增加水印 iPosition:1.左上;2.左下;3.右上;4.右下;0.默认 |
入参 | iPosition:水印位置 pcOSDName:水印内容 |
返回值 | 0 表示正确,否则其他错误 |
接口定义 | _ZJ_API int ZJ_SetStoragePath( char* pcStoragePath) |
功能描述 | 设置Cache存储路径接口, pcStoragePath:存储路径,路径后不带'/'或'\'符号,为全路径;若设置路径为空表示没有SD卡; |
入参 | pcStoragePath:存储路径 |
返回值 | 0 表示正确,否则其他错误 |
接口定义 | _ZJ_API int ZJ_SetDevSoudFilePath( char* pcStoragePath) |
功能描述 | 设置声音文件存储路径接口, pcStoragePath:存储路径,路径后不带'/'或'\'符号,为全路径; |
入参 | pcStoragePath:存储路径 |
返回值 | 0 表示正确,否则其他错误 |
接口定义 | _ZJ_API int ZJ_SetSDCardCB( ZJ_PFUN_CAMERA_FORMATSDCARD pfunFormatSDCard, ZJ_PFUN_CAMERA_GETSDCARDSIZE pfunGetSDCardInfo, ZJ_PFUN_CAMERA_CHECKSDCARD pfunCheckSDCard) |
功能描述 | 设置SD卡操作回调接口 |
入参 | pfunFormatSDCard:回调函数 pfunGetSDCardInfo:回调函数 pfunCheckSDCard:回调函数 |
返回值 | 0 表示正确,否则其他错误 |
SD卡格式化回调
函数定义 | typedef int (*ZJ_PFUN_CAMERA_FORMATSDCARD)() |
功能描述 | SD卡格式化回调接口,通过该接口通知设备重构 |
入参 | 无 |
返回值 | 0 表示正确,否则其他错误 |
获取SD卡容量回调
函数定义 | typedef int (*ZJ_PFUN_CAMERA_GETSDCARDSIZE)( unsigned int* piTotalSize, unsigned int* piFreeSize) |
功能描述 | 获取SD卡容量回调接口,通过该接口获取SD卡容量信息 |
入参 | piTotalSize:总容量 单位:M piFreeSize:空闲容量 单位:M |
返回值 |
SD卡自检测回调
函数定义 | typedef int (*ZJ_PFUN_CAMERA_CHECKSDCARD)( int* piErrCode) |
功能描述 | SD卡自检测回调接口,通过该接口让SD卡进行检测修复, |
入参 | piErrCode:返回错误信息。 0 为无错误 |
返回值 | 0 表示正确,否则其他错误 |
接口定义 | _ZJ_API int ZJ_SetSwitchLenCB( ZJ_PFUN_SWITCH_LEN pfunSwitchLen) |
功能描述 | 切换前置摄像头回调接口 |
入参 | pfunSwitchLen:回调函数 |
返回值 | 0 表示正确,否则其他错误 |
ZJ_PFUN_SWITCH_LEN
函数定义 | typedef int (*ZJ_PFUN_SWITCH_LEN)(int iLenId) |
功能描述 | |
入参 | iLenId: |
返回值 | 0 表示正确,否则其他错误 |
接口定义 | _ZJ_API int ZJ_SetCamWdrOpenFlagCB( ZJ_PFUN_SET_WIDE_DYNAMIC_CAM pfunSetWideDynamicCam) |
功能描述 | 摄像机宽动态开关回调接口 |
入参 | pfunSetWideDynamicCam:回调函数 |
返回值 | 0 表示正确,否则其他错误 |
ZJ_PFUN_SET_WIDE_DYNAMIC_CAM
函数定义 | typedef int (*ZJ_PFUN_SET_WIDE_DYNAMIC_CAM)(unsigned int uiOpenFlag) |
功能描述 | |
入参 | uiOpenFlag:开启标志 |
返回值 | 0 表示正确,否则其他错误 |
接口定义 | _ZJ_API int ZJ_SetCamAlarmSoundFileCB( ZJ_PFUN_DELSOUNDFILE pFunDelSoundFile, ZJ_PFUN_GETSOUNDFILES pFunGetSoudFiles) |
功能描述 | 自定义声音报警回调接口 |
入参 | pFunDelSoundFile:回调函数 pFunGetSoudFiles:回调函数 |
返回值 | 0 表示正确,否则其他错误 |
ZJ_PFUN_DELSOUNDFILE
函数定义 | typedef int (*ZJ_PFUN_DELSOUNDFILE)( unsigned char *pucSoundName) |
功能描述 | 删除声音文件 |
入参 | pucSoundName:名字 |
返回值 | 0 表示正确,否则其他错误 |
ZJ_PFUN_GETSOUNDFILES
函数定义 | typedef int (*ZJ_PFUN_GETSOUNDFILES)( unsigned int *piTotalSize, unsigned int *piFreeSize, ST_ZJ_SOUNDFILE_INFO **pstHeadNode, EN_ZJ_RING_TYPE uiSoundType); |
功能描述 | 获取声音文件列表 |
入参 | piTotalSize:总大小 piFreeSize:可使用大小 pstHeadNode:声音列表 uiSoundType:声音类型 |
返回值 | 0 表示正确,否则其他错误 |
接口定义 | _ZJ_API int ZJ_SetDevCanUseStatus(unsigned int uiCanUseStatus); |
功能描述 | 上报门铃状态 |
入参 | uiCanUseStatus:网关门铃:0 外挂机不可用, 1 外挂机可用 |
返回值 | 0 表示正确,否则其他错误 |
接口定义 | _ZJ_API int ZJ_SetRelayDevAwakeCB( ZJ_PFUN_SETRELAYDEVAWAKE pfunSetRelayDevAwakeStatus) |
功能描述 | 中继设备回调接口 |
入参 | pfunSetRelayDevAwakeStatus:回调函数 |
返回值 | 0 表示正确,否则其他错误 |
Ø ZJ_PFUN_SETRELAYDEVAWAKE
函数定义 | typedef int (*ZJ_PFUN_SETRELAYDEVAWAKE)( unsigned int iAwakeStatus) |
功能描述 | |
入参 | iAwakeStatus:唤醒状态 |
返回值 | 0 表示正确,否则其他错误 |
接口定义 | _ZJ_API int ZJ_GetCurSessionsTTLTime(ST_ZJ_SESSION_TTL_INFO astSessionTTLS[8],int *piSessionCnt); |
功能描述 | 获取当前所有实时视频会话的TTL 时间 |
入参 | astSessionTTLS[8]:当前所有实时视频会话TTL时间数组 piSessionCnt: 会话数量 |
返回值 | 0 表示正确,否则其他错误 |
接口定义 | _ZJ_API int ZJ_SetCameraScanFrequeryCB( ZJ_PFUN_CAMERA_SCANFREQUERY pFuncScanFrequery) |
功能描述 | 设置视频逐行扫描频率 |
入参 | pFuncScanFrequery:回调函数 |
返回值 | 0 表示正确,否则其他错误 |
Ø ZJ_PFUN_CAMERA_SCANFREQUERY
函数定义 | typedef int (*ZJ_PFUN_CAMERA_SCANFREQUERY)( unsigned int uiScanFrequery) |
功能描述 | 摄像头扫描间隔设置回调接口,告诉设备要以当前设置的频率去扫描 |
入参 | uiScanFrequery:扫描频率 |
返回值 | 0 表示正确,否则其他错误 |
接口定义 | _ZJ_API int ZJ_SetMediaToPlayCB( ZJ_PFUN_CAMERA_MEDIA_TOPLAY pfunMediaToPlay) |
功能描述 | 语音对讲接收回调接口;告诉设备有一个媒体流传入,如果当前喇叭没有在播,则返回可播放,设备通过接口获取数据播放 |
入参 | pfunMediaToPlay:回调函数 |
返回值 | 0 表示正确,否则其他错误 |
摄像头逆向流传入回调接口
函数定义 | typedef int (*ZJ_PFUN_CAMERA_MEDIA_TOPLAY)( const char* pcPeerID, ZJ_HANDLE hPlayHandle, int iStreamType, int iStatus) |
功能描述 | 摄像头有逆向流传入回调接口,告诉设备有逆向媒体流传入; |
入参 | pucPeerID: 对方的标识号 hPlayHandle:媒体句柄 iStreamType:媒体类型 iStatus:1. Start; 0. Stop |
返回值 | 0 表示正确,否则其他错误 |
接口定义 | _ZJ_API int ZJ_GetMediaAudioParam( ZJ_HANDLE hHandle, ST_ZJ_AUDIO_PARAM* pstAudioParam) |
功能描述 | 通过句柄获取音频参数 |
入参 | hHandle:句柄 pstAudioParam:语音参数,详见ST_ZJ_AUDIO_PARAM |
返回值 | 0 表示正确,否则其他错误 |
接口定义 | _ZJ_API int ZJ_GtMediaAudioData( ZJ_HANDLE hHandle, unsigned char** ppucDataBuf, int* iDataLen, unsigned int* puiTimestamp) |
功能描述 | 通过句柄获取音频数据,语音长度BUFFER,数据长度,时间戳 |
入参 | hHandle:句柄 ppucDataBuf:语音数据 iDataLen:语音长度 puiTimestamp:时间戳 |
返回值 | 0 表示正确,否则其他错误 |
接口定义 | _ZJ_API int ZJ_SetAudioEncParm( ST_ZJ_AUDIO_PARAM* pstAudioParam) |
功能描述 | 设置音频编码参数 |
入参 | pstAudioParam:音频参数,详见ST_ZJ_AUDIO_PARAM |
返回值 | 0 表示正确,否则其他错误 |
接口定义 | _ZJ_API int ZJ_Audio_WriteFrame( unsigned char* pucFrame, int iLen, unsigned int uiTimestamp) |
功能描述 | 写音频数据 |
入参 | pucFrame:写入的音频数据 iLen:写入的音视频数据长度 uiTimestamp:写入是的音视频时间戳 |
返回值 | 0 表示正确,否则其他错误 |
接口定义 | _ZJ_API int ZJ_Audio_ResetParam( ST_ZJ_AUDIO_PARAM* pstAudioParam) |
功能描述 | 重新设置音频编码参数 |
入参 | pstAudioParam:音频参数,详见ST_ZJ_AUDIO_PARAM |
返回值 | 0 表示正确,否则其他错误 |
接口定义 | _ZJ_API int ZJ_SetAudioEncSwitchCB( ZJ_PFUN_AUDIO_SWITCH pfunAudioSwitch) |
功能描述 | 设置音频编码开关回调接口,通过该接口控制音频是否编码 |
入参 | pfunAudioSwitch:回调函数 |
返回值 | 0 表示正确,否则其他错误 |
音频编码开关回调
函数定义 | typedef int (*ZJ_PFUN_AUDIO_SWITCH)(int iState) |
功能描述 | 音频编码开关回调,音频开始编码/关闭编码 |
入参 | iState:0. 结束,1.开始 |
返回值 | 0 表示正确,否则其他错误 |
接口定义 | _ZJ_API int ZJ_SetAudioVolumnCB( ZJ_PFUN_AUDIO_VOLUMN_ADJUST pfunAudioVolumnAdjust) |
功能描述 | 设置音频播放音量调节接口,通过该接口调节音量 |
入参 | pfunAudioVolumnAdjust:回调函数 |
返回值 | 0 表示正确,否则其他错误 |
设置音频采集音量调节
函数定义 | typedef int (*ZJ_PFUN_AUDIO_VOLUMN_ADJUST)(int iVolumn) |
功能描述 | 设置音频播放音量调节接口 通过该接口调节音量 |
入参 | iVolumn:0~100。 0为静音;100为最大声音 |
返回值 | 0 表示正确,否则其他错误 |
接口定义 | _ZJ_API int ZJ_SetAudioVolumn(int iVolumn) |
功能描述 | 设置摄像机声音音量 |
入参 | iVolumn: 0~10级。 0为静音;10为最大声音 |
返回值 | 0 表示正确,否则其他错误 |
接口定义 | _ZJ_API int ZJ_SetCamerMicOpenFlag( int iOpenFlag) |
功能描述 | 设置摄像机采集声音音量开关 |
入参 | iVolumn: 0~10级。 0为静音;10为最大声音 |
返回值 | 0 表示正确,否则其他错误 |
接口定义 | _ZJ_API int ZJ_SetCamerMicOpenFlag() |
功能描述 | 获取摄像机采集声音音量 |
入参 | 无 |
返回值 | 音量,否则其他错误 |
接口定义 | _ZJ_API int ZJ_SetVideoEncParam( int iStreamID, ST_ZJ_VIDEO_PARAM* pstVideoParam) |
功能描述 | 设置码流编码参数 |
入参 | iStreamID:码流id pstVideoParam:圆心半径信息,详见:ST_ZJ_VIDEO_PARAM |
返回值 | 0 表示正确,否则其他错误 |
接口定义 | _ZJ_API int ZJ_SetStreamWideAngleLensInfo( int iStreamID, ST_ZJ_VIDEO_CIRCLE* pstCircleInfo) |
功能描述 | 设置码流广角镜头圆心半径信息 |
入参 | iStreamID:码流id pstCircleInfo:圆心半径信息,详见:ST_ZJ_VIDEO_CIRCLE |
返回值 | 0 表示正确,否则其他错误 |
接口定义 | _ZJ_API int ZJ_SetStreamWideAngleLensDistortion( int iStreamID, ST_ZJ_VIDEO_DISTORTION* pstDistortionInfo) |
功能描述 | 设置码流广角镜头扭曲度信息 |
入参 | iStreamID:码流id pstDistortionInfo:扭曲度信息,详见:ST_ZJ_VIDEO_DISTORTION |
返回值 | 0 表示正确,否则其他错误 |
接口定义 | _ZJ_API int ZJ_SetVideoEncType( int iStreamID, ST_ZJ_VIDEO_PARAM* pstVideoParam) |
功能描述 | 设置码流广角镜头扭曲度信息 |
入参 | iStreamID:码流id pstVideoParam:视频参数,详见ST_ZJ_VIDEO_PARAM |
返回值 | 0 表示正确,否则其他错误 |
接口定义 | _ZJ_API int ZJ_Video_WriteFrame( int iStreamID, unsigned char* pucFrame, int iLen, unsigned int uiTimestamp, unsigned int uiFrameType) |
功能描述 | 码流写入接口,以Frame一帧一帧数据来写 |
入参 | iStreamID:码流id pucFrame:写入帧数据 iLen:写入帧数据长度 uiTimestamp:写入帧时间戳 uiFrameType:写入数据类型,详见enum_ZJ_VIDEO_FRAME_TYPE |
返回值 | 0 表示正确,否则其他错误 |
接口定义 | _ZJ_API int ZJ_Video_WriteNalFrame( int iSteramID, unsigned char* ptNal[], int iNalLen[], int iNalNum, unsigned int uiTimestamp, unsigned int iFrameType) |
功能描述 | 码流写入接口,以NAL格式包的数据来写 |
入参 | iStreamID:码流id ptNal:写入NAL数据 iLen:写入数据长度 iNalNum:Nal数量 uiTimestamp:写入时间戳 uiFrameType:写入数据类型,详见enum_ZJ_VIDEO_FRAME_TYPE |
返回值 | 0 表示正确,否则其他错误 |
接口定义 | _ZJ_API int ZJ_Video_ResetParam( int iSteramID, ST_ZJ_VIDEO_PARAM* pstVideoParam) |
功能描述 | 码流写入接口,以NAL格式包的数据来写 |
入参 | iStreamID:码流id pstVideoParam:视频参数,详见:ST_ZJ_VIDEO_PARAM |
返回值 | 0 表示正确,否则其他错误 |
接口定义 | _ZJ_API int ZJ_SetVideoEncSwitchCB( ZJ_PFUN_VIDEO_SWITCH pfunVideoSwitch) |
功能描述 | 设置视频编码开关回调 |
入参 | pfunVideoSwitch:回调函数 |
返回值 | 0 表示正确,否则其他错误 |
视频编码开关回调
函数定义 | typedef int (*ZJ_PFUN_VIDEO_SWITCH)( int iStreamID, int iState) |
功能描述 | 视频编码开关回调,视频开始编码/关闭编码 |
入参 | iStreamID:码流id iState:0. 结束,1.开始 |
返回值 | 0 表示正确,否则其他错误 |
接口定义 | _ZJ_API int ZJ_SetVideoEncParamCB( ZJ_PFUN_SET_VIDEO_PARM pfunSetVideoParm) |
功能描述 | 设置视频编码参数回调 |
入参 | pfunSetVideoParm:回调函数 |
返回值 | 0 表示正确,否则其他错误 |
视频编码开关回调
函数定义 | typedef int (*ZJ_PFUN_SET_VIDEO_PARM)( int iStreamID, ST_ZJ_VIDEO_PARAM *pstVideoParm) |
功能描述 | 这是设置视频采集参数的回调函数 |
入参 | iStreamID:码流id pstVideoParm:视频参数,详见:ST_ZJ_VIDEO_PARAM |
返回值 | 0 表示正确,否则其他错误 |
接口定义 | _ZJ_API int ZJ_SetVideoNeedIFrameCB( ZJ_PFUN_VIDEO_NEEDIFRAME pfunVideoNeedIFrame) |
功能描述 | 编码I帧回调接口,通过该接口通知编码器编一个I帧写下来 |
入参 | pfunVideoNeedIFrame:回调函数 |
返回值 | 0 表示正确,否则其他错误 |
函数定义 | typedef int (*ZJ_PFUN_VIDEO_NEEDIFRAME)( int iStreamID, unsigned int uiKeyQuality) |
功能描述 | 流媒体需要一个I帧回调接口,告知设备当前流需要一个关键帧 |
入参 | iStreamID:码流id uiKeyQuality:关键帧编码质量参数, |
返回值 | 0 表示正确,否则其他错误 |
接口定义 | _ZJ_API int ZJ_Video_SetGetJpegCB( ZJ_PFUN_VIDEO_GETJPEG pfunVideoGetJpeg) |
功能描述 | 设置获取图片回调接口 |
入参 | pfunVideoGetJpeg:回调函数 |
返回值 | 0 表示正确,否则其他错误 |
函数定义 | typedef int (*ZJ_PFUN_VIDEO_GETJPEG)( EN_ZJ_PICTURE_TYPE enPicType, unsigned char** ppucJpegBuf) |
功能描述 | 设置抓取图片回调接口,告诉设备抓取一幅实时画面的图片, 获取对应尺寸的图片,并存入到传入的空间中 |
入参 | enPicType:图片类型,详见EN_ZJ_PICTURE_TYPE ppucJpegBuf:图片数据(需要开辟内存空间,SDK不做释放操作只使用) |
返回值 | 图片大小,否则其他错误 |
接口定义 | _ZJ_API int ZJ_AddIoTDevice( unsigned int uiAIIoTType, unsigned long long lluAIIoTID, ZJ_PFUN_AIIOT_START pfunAIIoTStart, ZJ_PFUN_AIIOT_STOP pfunAIIoTStop, ZJ_PFUN_AIIOT_GETINPUT pfunAIIoTGetInput, ZJ_PFUN_AIIOT_OUTPUT pfunAIIoTOutPut, ZJ_PFUN_AIIOT_SETPROP pfunAIIoTSetProp, ZJ_PFUN_AIIOT_CHECKEVENT pfunAIIotCheckEvent); |
功能描述 | 添加IoT设置,并设置相关回调接口 |
入参 | uiAIIoTType:IoT类型,详见:EN_ZJ_AIIOT_TYPE lluAIIoTID:摄像机ID(一般为0) pfunAIIoTStart:回调函数 pfunAIIoTStop:回调函数 pfunAIIoTGetInput:回调函数 pfunAIIoTOutPut:回调函数 pfunAIIoTSetProp:回调函数 pfunAIIotCheckEvent:回调函数 |
返回值 | 0 表示正确,否则其他错误 |
Ø ZJ_PFUN_AIIOT_START
接口定义 | typedef int (*ZJ_PFUN_AIIOT_START)( unsigned int uiAIIoTType, unsigned long long uiAIIoTID) |
功能描述 | IoT设备开始工作回调接口, 通过该接口启动IoT设备信号采集 |
入参 | uiAIIoTType:IoT类型,详见:EN_ZJ_AIIOT_TYPE uiAIIoTID:摄像机ID(一般为0) |
返回值 | 0 表示正确,否则其他错误 |
Ø ZJ_PFUN_AIIOT_STOP
接口定义 | typedef int (*ZJ_PFUN_AIIOT_STOP)( unsigned int uiAIIoTType, unsigned long long lluAIIoTID) |
功能描述 | IoT 设备停止工作回调接口, 通过该接口通知设备停止信号采集 |
入参 | uiAIIoTType:IoT类型,详见:EN_ZJ_AIIOT_TYPE uiAIIoTID:摄像机ID(一般为0) |
返回值 | 0 表示正确,否则其他错误 |
Ø ZJ_PFUN_AIIOT_GETINPUT
接口定义 | typedef int (*ZJ_PFUN_AIIOT_GETINPUT)( unsigned int uiAIIoTType, unsigned long long uiAIIoTID, unsigned char** ppSignalValue) |
功能描述 | 查询IoT 设备当前事件或信号量回调接口, 通过该接口返回设备当前的信号量和事件, 返回输入信号类型和对应的信号Json字串返回下来; 输出值内部分配, sdk 只使用, 不释放 |
入参 | uiAIIoTType:IoT类型,详见:EN_ZJ_AIIOT_TYPE uiAIIoTID:摄像机ID(一般为0) ppSignalValue:信号值 |
返回值 | 0 表示正确,否则其他错误 |
Ø ZJ_PFUN_AIIOT_OUTPUT
接口定义 | typedef int (*ZJ_PFUN_AIIOT_OUTPUT)( unsigned int uiAIIoTType, unsigned long long uiAIIoTID, unsigned char* pSignalValue, ST_ZJ_TRIGGER_INFO* pstTriggerInf) |
功能描述 | 向IoT 设备输出信号回调接口,通过该接口,将输出信号类型和对应的JSON描述字符串输出到iOT设备; |
入参 | uiAIIoTType:IoT类型,详见:EN_ZJ_AIIOT_TYPE uiAIIoTID:摄像机ID(一般为0) ppSignalValue:信号值 pstTriggerInf:触发信息 |
返回值 | 0 表示正确,否则其他错误 |
Ø ZJ_PFUN_AIIOT_SETPROP
接口定义 | typedef int (*ZJ_PFUN_AIIOT_SETPROP)( unsigned int uiAIIoTType, unsigned long long uiAIIoTID, unsigned char* pstProp) |
功能描述 | 向IoT设备设置属性回调接口,通过该接口,将新的属性值设置给IoT设备,让设备以设置的属性值进行工作; 属性以一个JSON字符串传递 |
入参 | uiAIIoTType:IoT类型,详见:EN_ZJ_AIIOT_TYPE uiAIIoTID:摄像机ID(一般为0) pstProp:JSON字符串 |
返回值 | 0 表示正确,否则其他错误 |
Ø ZJ_PFUN_AIIOT_CHECKEVENT
接口定义 | typedef int (*ZJ_PFUN_AIIOT_CHECKEVENT)( unsigned int uiAIIoTType, unsigned long long uiAIIoTID, unsigned char* pSignalValue) |
功能描述 | 检测当前输入信号对应的事件类型回调接口,通过该接口,判定当前输入信号的事件类型,以返回值返回; |
入参 | uiAIIoTType:IoT类型,详见:EN_ZJ_AIIOT_TYPE uiAIIoTID:摄像机ID(一般为0) pSignalValue:信号值 |
返回值 | 0 表示正确,否则其他错误 |
接口定义 | _ZJ_API int ZJ_SetIoTDefaultProp( unsigned int uiAIIoTType, unsigned long long lluAIIoTID, char* pcProp) |
功能描述 | 设置IoT设备的默认属性,IoT设备属性以一个JSON字符串传入 |
入参 | uiAIIoTType:IoT类型,详见:EN_ZJ_AIIOT_TYPE uiAIIoTID:摄像机ID(一般为0) pcProp:JSON字符串 |
返回值 | 0 表示正确,否则其他错误 |
接口定义 | _ZJ_API int ZJ_IoTInPut( unsigned int uiAIIoTType, unsigned long long lluAIIoTID, char* pcInPut) |
功能描述 | IoT设备输入信号接口, 输入信号类型和对应的Json字符串作为信号描述 |
入参 | uiAIIoTType:IoT类型,详见:EN_ZJ_AIIOT_TYPE uiAIIoTID:摄像机ID(一般为0) pcInPut:JSON字符串 |
返回值 | 0 表示正确,否则其他错误 |
接口定义 | _ZJ_API int ZJ_IoTEventInPut( unsigned int uiAIIoTType, unsigned long long lluAIIoTID, int iEvent) |
功能描述 | IoT设备事件输入接口,IoT设备为事件单一设备,触发时直接根据属性输出事件 |
入参 | uiAIIoTType:IoT类型,详见:EN_ZJ_AIIOT_TYPE uiAIIoTID:摄像机ID(一般为0) iEvent:见EN_ZJ_MOTION_EVENT_TYPE |
返回值 | 0 表示正确,否则其他错误 |
接口定义 | _ZJ_API int ZJ_SetDefaultRecordProp( unsigned int uiLoopFlag, unsigned int uiFullFlag, unsigned int uiStreamId) |
功能描述 | 设置默认录像的属性 或者 调用 ZJ_SetIoTDefaultProp 设置 |
入参 | uiLoopFlag: 循环录制标志 uiFullFlag:录制策略,1全天录制,0按策略录制 uiStreamId:录制码流选择。0.主码流;1.次码流 |
返回值 | 0 表示正确,否则其他错误 |
接口定义 | _ZJ_API int ZJ_SetDefaultSnapProp( unsigned int uiLoopFlag, unsigned int uiFullFlag, unsigned int uiInterval, unsigned int uiPicType) |
功能描述 | 设置本地抓图的 默认属性 |
入参 | uiLoopFlag:循环抓图标志 uiFullFlag:完整抓图标志 uiInterval:抓图间隔 uiPicType:抓图类型 |
返回值 | 0 表示正确,否则其他错误 |
接口定义 | _ZJ_API int ZJ_SetInIotWorkStatus(unsigned int uiAotType,unsigned long long lluAotId,int iWorkStatus); |
功能描述 | 设置当前iot设备的工作状态 |
入参 | uiAotType:iot类型 lluAotId:iot的Id iWorkStatus:0 关闭, 1 工作 |
返回值 | 0 表示正确,否则其他错误 |
接口定义 | _ZJ_API void ZJ_SetAiPicEvent(unsigned int uiAIIoTType, unsigned long long lluAIIoTID,unsigned int uiEvent,ST_ZJ_AIPIC_EVENT_INFO *pstAiPicEventInfo); |
功能描述 | 检测到人脸列表 调用这个, 不用调用 ZJ_IoTEventInPut |
入参 | uiAIIoTType:IoT类型,详见:EN_ZJ_AIIOT_TYPE uiAIIoTID:摄像机ID(一般为0) uiEvent:AI 事件类型,详见EN_ZJ_MOTION_EVENT_TYPE pstAiPicEventInfo:人脸列表 |
返回值 | 0 表示正确,否则其他错误 |
接口定义 | _ZJ_API int ZJ_SetAiPicCB( ZJ_PFUN_CREAT_AILABLE pFunCreateLabel, ZJ_PFUN_MODIFY_PICINF pFunModifyPicLabel, ZJ_PFUN_ADDAIPICCB pFunAddSingleAiPic, ZJ_PFUN_DELAIPICSCB pFunDelSingleAiPic, ZJ_PFUN_DELAILABLE pFunDelLabel);
|
功能描述 | 检测到人形列表 |
入参 | pFunCreateLabel:创建标签 pFunModifyPicLabel:修改样本归属标签 pFunAddSingleAiPic:添加样本到标签 pFunDelSingleAiPic:删除样本 pFunDelLabel:删除标签 |
返回值 | 0表示正确,否则其他错误 |
接口定义 | _ZJ_API int ZJ_SetIotDefaultPolicy(unsigned int uiIotType, unsigned int uiOpenFlag, unsigned int uiEventId, unsigned int uiTraceFlag, unsigned int uiBuzzerFlag,unsigned int uiSenstive,unsigned int uiRecordFlag, unsigned int uiSnapFlag, unsigned int uiEventFlag, unsigned int uiEventInterval,unsigned int uiDuration, unsigned int uiActiveTime,unsigned int uiSoundType,unsigned char *pucSoundFile); |
功能描述 | 设置默认的iot策略 |
入参 | uiIotType:iot类型 uiOpenFlag: 报警总开关 1开启,0关闭 uiEventId: 开启移动侦测时,uiEventId置为0, 开启人形时,uiEventId置为1 uiTraceFlag:是否开启镜头追踪 1开启,0关闭 uiBuzzerFlag 蜂鸣器开关 1 开启,0关闭 uiSenstive: 灵敏度 uiRecordFlag:触发报警时,是否开启录像 uiSnapFlag:触发报警时,是否开启抓图 uiEventFlag:触发报警时,是否事件上报 uiEventInterval 触发报警时,时间间隔 uiDuration:触发报警时,录像持续时间 uiActiveTime:侦测到物体持续时间超过设置值才触发报警 uiSoundType:外机门铃的铃声类型(配置蜂鸣器iot作为输出的时候使用,选择蜂鸣器的播放声音类型:警戒音、自定义声音) pucSoundFile:声音文件名 |
返回值 | 0表示正确,否则其他错误 |
接口定义 | _ZJ_API int ZJ_SetAiAutoInputCb( ZJ_PFUN_SETAUTOINPUTFLAG pFunSetAutoInputFlag); |
功能描述 | 打开人脸自动录入功能,打开后,发现默认人会自动创建标签和样本 |
入参 | pFunSetAutoInputFlag:回调函数,通知自动录入是否打开 |
返回值 | 0 表示正确,否则其他错误 |
接口定义 | _ZJ_API int ZJ_DelAILabel(unsigned char *pucLabelId); |
功能描述 | 当固件创建标签失败后,调用改接口同步sdk |
入参 | pucLabelId:删除的标签号 |
返回值 | 0 表示正确,否则其他错误 |
接口定义 | _ZJ_API int ZJ_DelFacePicFromLabel(unsigned char *pucLabelId,unsigned char *pucFileId); |
功能描述 | 当固件添加样板失败后,调用改接口同步sdk |
入参 | pucLabelId:标签号 pucFileId:待删除的样本号 |
返回值 | 0 表示正确,否则其他错误 |
1、 向固件设置iot Prop回调接口:
typedef int (*ZJ_PFUN_AIIOT_SETPROP)(unsigned int uiAIIoTType, unsigned long long uiAIIoTID, unsigned char* pstProp);
备注:厂商需要注册、实现此回调函数,sdk通过此接口设置iot属性到固件,其中,设置固件属性入参:pstProp以一个JSON字符串传递
例如:
{"Motion":{"Sensitive":"20","Status":"1","Trace":"0","Interval":"60"},
"Human":{"Sensitive":"20","Status":"1","Trace":"0","Interval":"60"}
}
2、 向固件输入控制信号
typedef int (*ZJ_PFUN_AIIOT_OUTPUT)(unsigned int uiAIIoTType, unsigned long long uiAIIoTID, unsigned char* pSignalValue,ST_ZJ_TRIGGER_INFO* pstTriggerInf);
备注:厂商需要注册、实现此回调函数,sdk通过此接口,向固件输入控制信号,例如:蜂鸣器、白光灯等
控制型号的属性值通过参数pSignalValue来传递, pstTriggerInf参数可为空。
例如:
白光灯控制:{"CtrlType":"1","Duration":"30"}
蜂鸣器控制:{"CtrlType":"1","AlarmType":"1000"}
接口定义 | _ZJ_API int ZJ_SendCustomData( const unsigned char* pucPeerID, unsigned char* pucData, int iLen) |
功能描述 | 发送自定义消息 |
入参 | pucPeerID:对方的标识号 pucData:发送的数据 iLen:发送数据长度 |
返回值 | 0 表示正确,否则其他错误 |
接口定义 | _ZJ_API int ZJ_SetRecvCustomDataFunc( ZJ_PFUN_DEVICE_ONRECV_CUSTOMDATA pFuncOnRecvCustomData) |
功能描述 | 接收自定义消息回调 |
入参 | pFuncOnRecvCustomData:回调函数, 详见ZJ_PFUN_DEVICE_ONRECV_CUSTOMDATA |
返回值 | 0 表示正确,否则其他错误 |
函数定义 | typedef int (*ZJ_PFUN_DEVICE_RECVCUSTOMDATA)( const unsigned char* pucPeerID, unsigned char* pucData, int iLen) |
功能描述 | 接收自定义消息 |
入参 | pucPeerID:对方的标识号 pucData:接收的数据 iLen:接收数据长度 |
返回值 | 0 表示正确,否则其他错误 |
接口定义 | _ZJ_API int ZJ_SetNetWorkType ( EN_ZJ_NETWORK_TYPE enNetType) |
功能描述 | 设置设备网络状态信息,主动触发SDK对网络变化的响应,让响应更加及时 |
入参 | enNetType:详见EN_ZJ_NETWORK_TYPE |
返回值 | 0 表示正确,否则其他错误 |
接口定义 | _ZJ_API int ZJ_SetWifiCB( ZJ_PFUN_DEVICE_SETWIFI pfuncSetWifi, ZJ_PFUN_DEVICE_GETWIFI pfuncGetWifi, ZJ_PFUN_DEVICE_GETNETINFO pfunGetNetInfo ) |
功能描述 | 接收自定义消息回调 |
入参 | pfuncSetWifi:回调函数 pfuncGetWifi:回调函数 pfunGetNetInfo:回调函数 |
返回值 | 0 表示正确,否则其他错误 |
Ø 设置WIFI回调接口
函数定义 | typedef int (*ZJ_PFUN_DEVICE_SETWIFI)( EN_ZJ_NETWORK_TYPE enWifiType, char* pcSSID, char* pcPwd, int iEncrytType) |
功能描述 | 设置WIFI回调接口,告诉设备当前设置的WIFI模式,WIFI的参数(SSID, 密码,加密类型) |
入参 | enWifiType:详见EN_ZJ_NETWORK_TYPE pcSSID:SSID信息 pcPwd:密码 iEncrytType:加密类型,0.无,1.WEP,2.WPA-PSK,3.WPA-PSK/WPA2-PSK,4.WPA2-PSK,5.其他 |
返回值 | 0 表示正确,否则其他错误 |
Ø 获取WIFI列表回调接口
函数定义 | typedef int (*ZJ_PFUN_DEVICE_GETWIFI)( ST_ZJ_WIFI_INFO stWifiInfo[16], unsigned int *puiWifiCount) |
功能描述 | 获取WIFI列表回调接口,获取信号最强的,最多16个WIFI列表 |
入参 | stWifiInfo:wifi信息列表,详见ST_ZJ_WIFI_INFO puiWifiCount:实际获取到的wifi数量 |
返回值 | 0 表示正确,否则其他错误 |
Ø 获取当前网络详情
函数定义 | typedef int (*ZJ_PFUN_DEVICE_GETNETINFO)( ST_ZJ_NETWORK_INFO* pstNetInfo) |
功能描述 | 获取当前网络详情 |
入参 | pstNetInfo:网络详情,详见:ST_ZJ_NETWORK_INFO |
返回值 | 0 表示正确,否则其他错误 |
接口定义 | _ZJ_API int ZJ_SetNetErrStatus( EN_ZJ_NETWORK_ERR_STATUS enNetWorkErrStatus) |
功能描述 | 设置网络错误状态,当网络发生错误时,通知错误类型 |
入参 | enNetWorkErrStatus: 网络状态,详见:EN_ZJ_NETWORK_ERR_STATUS |
返回值 | 0 表示正确,否则其他错误 |
接口定义 | _ZJ_API int ZJ_SetWifiSetAbility( unsigned int uiSetWifiAbility) |
功能描述 | WiFi配置能力设置,根据EN_ZJ_SETWIFI_ABILITY按位与表示支持多种配网模式 |
入参 | uiSetWifiAbility:详见EN_ZJ_SETWIFI_ABILITY |
返回值 | 0 表示正确,否则其他错误 |
接口定义 | _ZJ_API int ZJ_SetQRCodeString( unsigned char *pstrQRCode) |
功能描述 | 二维码配网流程,上层识别到二维码,将对应的字符串设置下来 |
入参 | pstrQRCode:二维码信息 |
返回值 | 0 表示正确,否则其他错误 |
接口定义 | _ZJ_API int ZJ_SetVoiceString( unsigned char* pstrVoiceString) |
功能描述 | 声波配网,将上层声波识别的字符串设置下来 |
入参 | pstrVoiceString:声波识别的信息 |
返回值 | 0 表示正确,否则其他错误 |
接口定义 | _ZJ_API int ZJ_SetAutoConnStatus(int iConnectFlag); |
功能描述 | 启用无感配网 |
入参 | iConnectFlag:1 开启, 0 关闭 |
返回值 | 0 表示正确,否则其他错误 |
接口定义 | _ZJ_API int ZJ_SetAutoConnSSIDInfoCBFunc(ZJ_PFUN_DEVICE_SETWIFI pFunSetAutoConnSsid); |
功能描述 | 无感配网回调接口 |
入参 | pFunSetAutoConnSsid:回调接口 |
返回值 | 0 表示正确,否则其他错误 |
OTA升级流程
1、设备注册ZJ_SetOtaCBFuncs相关函数。
2、SDK收到升级请求,调用pFunNewVersionCb回调函数通知设备有新版固件需要升级,设备需要准备充足的资源。
3、设备准备完成调用ZJ_StartUpdate接口通知SDK开始升级。
4、SDK调用pFunVersonDataDownCb回调接口将升级包数据传给设备,设备应做好缓存。
5、升级包数据下载完成,SDK调用pFunCoverImageNotice回调函数,通知设备升级包是否校验通过,校验通过设备进行覆盖升级,否则删除缓存数据重启设备。
6、设备通过ZJ_SetBurnningProgress接口上报烧录进度。
7、烧录成功重启设备。
接口定义 | _ZJ_API int ZJ_SetOTAAbility( unsigned int uiOTAAbility) |
功能描述 | 设置OTA升级能力,具备多种能力按位与 |
入参 | uiOTAAbility:能力,详见:EN_ZJ_OTA_ABILITY |
返回值 | 0 表示正确,否则其他错误 |
接口定义 | _ZJ_API int ZJ_SetOtaCBFuncs( ZJ_PFUN_NEWVERSON_NOTICE pFunNewVersionCb, ZJ_PFUN_NEWVERSON_DATADOWN pFunVersonDataDownCb, ZJ_PFUN_STOPUPGRADE pFunStopUpgrade, ZJ_PFUN_COVERIMAGE_NOTICE pFunCoverImageNotice) |
功能描述 | 设置设备升级状态回调函数,通过回调返回升级状态;设备上层收到后,启用升级程序下载升级固件 |
入参 | pFunNewVersionCb:回调函数 pFunVersonDataDownCb:回调函数 pFunStopUpgrade:回调函数 pFunCoverImageNotice:回调函数 |
返回值 | 0 表示正确,否则其他错误 |
Ø 设备版本状态回调接口
函数定义 | typedef int (*ZJ_PFUN_NEWVERSON_NOTICE)( unsigned char *pucNewVersion, unsigned char *pucCrcInf, unsigned int uiFileSize) |
功能描述 | 设备版本状态回调接口,告诉设备当前版本升级状态 |
入参 | pucNewVersion:版本信息 pucCrcInf:Crc校验信息 uiFileSize:文件大小 |
返回值 | 0 表示正确,否则其他错误 |
Ø 设备版本下载回调接口
函数定义 | typedef int (*ZJ_PFUN_NEWVERSON_DATADOWN)( unsigned char *pucPackage, unsigned int uiPacklen, unsigned int uiEndFlag) |
功能描述 | 设备版本下载回调接口,设备收到数据需要缓存来,进行升级操作 |
入参 | pucPackage:数据包 uiPacklen:包长度 uiEndFlag:是否是最后一个数据包 |
返回值 | 0 表示正确,否则其他错误 |
Ø 设备停止升级接口
函数定义 | typedef int (*ZJ_PFUN_STOPUPGRADE)() |
功能描述 | 停止升级接口 |
入参 | 无 |
返回值 | 0 表示正确,否则其他错误 |
接口定义 | _ZJ_API int ZJ_SetBurnningProgress( unsigned int uiPercentage) |
功能描述 | 版本下载更新后, 汇报烧录 进度 |
入参 | uiPercentage:烧录进度 |
返回值 | 0 表示正确,否则其他错误 |
接口定义 | _ZJ_API int ZJ_StartUpdate() |
功能描述 | 设备开始升级状态,设备上报平台,进入升级状态; 当返回进入升级中状态后,启动升级进程,开始升级 |
入参 | 无 |
返回值 | 0 表示正确,否则其他错误 |
接口定义 | _ZJ_API int ZJ_SetOTAAbility( unsigned int uiOTAAbility) |
功能描述 | 设置OTA升级能力,具备多种能力按位与 |
入参 | uiOTAAbility:升级方式,详见EN_ZJ_OTA_ABILITY |
返回值 | 0 表示正确,否则其他错误 |
接口定义 | _ZJ_API int ZJ_SetEnergySavingType( unsigned int iEngeryType) |
功能描述 | 设置设备电源类型 |
入参 | iEngeryType:0.不带电池;1.带电池;2.太阳能电池 |
返回值 | 0 表示正确,否则其他错误 |
接口定义 | _ZJ_API int ZJ_SetAwakeAbility( unsigned int uiAwakeAbility) |
功能描述 | 设置设备的唤醒能力 |
入参 | uiAwakeAbility:设备唤醒能力类型,详见EN_ZJ_AWAKE_ABILITY |
返回值 | 0 表示正确,否则其他错误 |
接口定义 | _ZJ_API int ZJ_SetPowerSupply(unsigned int uiSupplyFlag) |
功能描述 | 设置设备当前是否充电;(仅对电池类设备) |
入参 | uiSupplyFlag:0.未充电,1.充电 |
返回值 | 0 表示正确,否则其他错误 |
接口定义 | _ZJ_API int ZJ_SetStartSleepCb( ZJ_PFUN_STARTSLEEP pfuncStartSleep) |
功能描述 | 设置进入休眠回调函数 |
入参 | pfuncStartSleep:回调函数 |
返回值 | 0 表示正确,否则其他错误 |
Ø 设备进入休眠回调接口
函数定义 | typedef int (*ZJ_PFUN_STARTSLEEP)( int iWaitSecond) |
功能描述 | 设备进入休眠回调接口,设备在该接口,收到等待秒数后,进入休眠状态 |
入参 | iWaitSecond:-1.为不可以进入休眠; 0.立刻进入休眠; > 0为等待对应的秒数后进入休眠 |
返回值 | 0 表示正确,否则其他错误 |
接口定义 | _ZJ_API int ZJ_SetPowerLevel(unsigned int uiPowerLevel) |
功能描述 | 设置设备当前电池余量 |
入参 | uiPowerLevel:电池余量 |
返回值 | 0 表示正确,否则其他错误 |
接口定义 | _ZJ_API int ZJ_SetDebugMode( int iDebugMode) |
功能描述 | 设置调试模式 |
入参 | iDebugMode:0.关闭print 1.打开print |
返回值 | 0 表示正确,否则其他错误 |
接口定义 | _ZJ_API int ZJ_SetDebugLevel( int iLevel) |
功能描述 | 设置日志等级 |
入参 | iLevel:日志输出等级,详见EN_ZJ_LOG_LVL |
返回值 | 0 表示正确,否则其他错误 |
接口定义 | _ZJ_API int ZJ_LogPrintf( unsigned char* pucFunName, unsigned int uiLine, unsigned char* pucPid, unsigned int uiLeval, unsigned char* pucFormat, ...) |
功能描述 | 日志记录,只打印日志水平在设置日志水平集合中 |
入参 | pucFunName:函数名称 uiLine:当前行 pucPid:当前进程 uiLeval:日志等级 pucFormat:日志信息 |
返回值 | 0 表示正确,否则其他错误 |
接口定义 | _ZJ_API int Zj_SetLogOpenFlag(int iOpenFlag) |
功能描述 | 日志打开标志 |
入参 | iOpenFlag:打开标志 |
返回值 | 0 表示正确,否则其他错误 |
接口定义 | ZJ_API int ZJ_SetDevCollectLogFilesFunc( ZJ_PFUN_COLLECTLOGFILES pFunCollectLogFiles) |
功能描述 | 通知设备开始收集日志 |
入参 | pFunCollectLogFiles:回调函数 |
返回值 | 0 表示正确,否则其他错误 |
Ø 日志收集回调接口
函数定义 | typedef int (*ZJ_PFUN_COLLECTLOGFILES)( unsigned char *pucPeerId, unsigned int iSessionId, unsigned char *pcDesInfo) |
功能描述 | 日志收集回调接口,通过该接口将所有日志打包成pcDesInfo文件 |
入参 | pucPeerId:对方的标识号 iSessionId:会话ID pcDesInfo:日志文件 |
返回值 | 0 表示正确,否则其他错误 |
接口定义 | _ZJ_API int ZJ_SetCollectLogFilesStatus( unsigned char* pucPeerID, unsigned int uiSessionID, int iStatus, unsigned char* pucDesInfo, unsigned char* pucFileName) |
功能描述 | 日志搜集状态设置接口 |
入参 | pucPeerID:对方的标识号 uiSessionID:会话ID iStatus:搜集状态,0收集完毕,<0表示收集错误 pucDesInfo:日志文件 pucFileName:日志收集全路径
|
返回值 | 0 表示正确,否则其他错误 |
接口定义 | _ZJ_API int ZJ_SetDevAiFaceAbility(int iAiFaceAbility) |
功能描述 | 设置设备是否支持AI能力 |
入参 | iAiFaceAbility:0 不支持;1 支持 |
返回值 | 0 表示正确,否则其他错误 |
接口定义 | _ZJ_API int ZJ_SetAiMaxPicNum(int iAiMaxPicNum) |
功能描述 | 设置AI底库图片数量最大值 |
入参 | iAiMaxPicNum:最大底库图片数量上限 |
返回值 | 0 表示正确,否则其他错误 |
接口定义 | _ZJ_API int ZJ_SetAiCurPicNum(int iAiCurPicNum) |
功能描述 | 设置当前AI底库图片数量 |
入参 | iAiCurPicNum:当前设备底库图片数量 |
返回值 | 0 表示正确,否则其他错误 |
接口定义 | _ZJ_API int ZJ_ThirdOpenFile(ZJ_PFUN_OPENFILE pfunOpenFile); |
功能描述 | 第三方厂商打开录像文件回调 |
入参 | pfunOpenFile:回调函数 |
返回值 | 0 表示正确,否则其他错误 |
Ø 第三方厂商打开录像文件回调
函数定义 | typedef ZJ_HANDLE (*ZJ_PFUN_OPENFILE)(unsigned char *pucFilePath,unsigned int *puiMaxFrameSize); |
功能描述 | 第三厂商打开录像文件回调 |
入参 | pucFilePath:文件路径 puiMaxFrameSize:最大帧长度 |
返回值 | 文件句柄 |
接口定义 | _ZJ_API int ZJ_ThirdCloseFile(ZJ_PFUN_CLOSEFILE pfunCloseFile); |
功能描述 | 第三方厂商关闭录像文件回调 |
入参 | pfunCloseFile:回调函数 |
返回值 | 0 表示正确,否则其他错误 |
Ø 第三方厂商关闭录像文件回调
函数定义 | typedef int (*ZJ_PFUN_CLOSEFILE)(ZJ_HANDLE hHandle); |
功能描述 | 第三厂商关闭录像文件回调 |
入参 | hHandle:文件句柄 |
返回值 | 0 表示正确,否则其他错误 |
接口定义 | _ZJ_API int ZJ_ThirdReadData(ZJ_PFUN_THIRDREADFRAME pfunReadFrame); |
功能描述 | 读取第三方厂商一帧录像数据回调 |
入参 | pfunReadFrame:回调函数 |
返回值 | 0 表示正确,否则其他错误 |
Ø 读取第三方厂商一帧录像数据回调
函数定义 | typedef int (*ZJ_PFUN_THIRDREADFRAME)(ZJ_HANDLE hHandle, unsigned char *pucFrame,unsigned int *puiFrameLen, unsigned char *pucAVFlag, int *pIFrame, unsigned int *puiTimeStamp); |
功能描述 | 读取第三方厂商一帧录像数据回调 |
入参 | hHandle:文件句柄 pucFrame:数据缓存区 puiFrameLen:帧长度 pucAVFlag:音视频flag pIFrame:是否是I帧 puiTimeStamp:时间戳 |
返回值 | 读取的数据长度 |
接口定义 | _ZJ_API int ZJ_ThirdSeekTime(ZJ_PFUN_SEEKBYTIMESTAMP pfunSeekTime); |
功能描述 | 跳转第三方厂商录像时间回调 |
入参 | pfunSeekTime:回调函数 |
返回值 | 0 表示正确,否则其他错误 |
Ø 跳转第三方厂商录像时间回调
函数定义 | typedef int (*ZJ_PFUN_SEEKBYTIMESTAMP)(ZJ_HANDLE hHandle, unsigned int uiSeekTime, unsigned int *puiSeekTimeStamp); |
功能描述 | 读取第三方厂商一帧录像数据回调 |
入参 | hHandle:文件句柄 uiSeekTime:跳转时间 puiSeekTimeStamp:跳转时间戳 |
返回值 | 0 表示正确,否则其他错误 |
接口定义 | _ZJ_API int ZJ_ThirdGetFileDes(ZJ_PFUN_READFILEDES pfunGetFileDes); |
功能描述 | 获取第三方录像音视频参数 |
入参 | pfunGetFileDes:回调函数 |
返回值 | 0 表示正确,否则其他错误 |
Ø 获取第三方录像音视频参数
函数定义 | typedef int (*ZJ_PFUN_READFILEDES)(ZJ_HANDLE hHandle,ST_ZJ_VIDEO_PARAM *pstVideoParm,ST_ZJ_VIDEO_CIRCLE *pstCircle,ST_ZJ_AUDIO_PARAM *pstAudioParm); |
功能描述 | 获取第三方录像音视频参数 |
入参 | hHandle:文件句柄 pstVideoParm:视频参数 pstCircle:广角镜头圆心半径参数 pstAudioParm:音频参数 |
返回值 | 0 表示正确,否则其他错误 |
接口定义 | _ZJ_API int ZJ_RdAddCompatibleDate(unsigned char *pucDate,int iCamId); |
功能描述 | 第三方厂商添加录像日期 |
入参 | pucDate:日期 iCamId:镜头Id |
返回值 | 0 表示正确,否则其他错误 |
接口定义 | _ZJ_API int ZJ_RdAddCompatibleFile(unsigned char *pucDate,int iCamId,unsigned char *pucFilePath,unsigned int uiStartUnixTime,unsigned int uiEndUnixTime,unsigned int uiStartMsTime,unsigned int uiEndMsTime); |
功能描述 | 第三方厂商添加录像文件 |
入参 | pucDate:日期 iCamId:镜头Id pucFilePath:文件路径 uiStartUnixTime:开始时间 uiEndUnixTime:结束时间 uiStartMsTime:开始时间戳 uiEndMsTime:结束时间戳 |
返回值 | 0 表示正确,否则其他错误 |
接口定义 | _ZJ_API int ZJ_EventAddCompatibleDate(unsigned char *pucDate); |
功能描述 | 第三方厂商添加事件日期 |
入参 | pucDate:日期 |
返回值 | 0 表示正确,否则其他错误 |
接口定义 | _ZJ_API int ZJ_EventAddCompatibleFile(unsigned char *pucDate,time_t cEventTime,unsigned int uiDuration,unsigned int uiIotType,unsigned int uiEventId); |
功能描述 | 第三方厂商添加事件 |
入参 | pucDate:日期 cEventTime:事件发生时间 uiDuration:时长 uiIotType:iot类型 uiEventId:事件Id |
返回值 | 0 表示正确,否则其他错误 |
如果厂商没有实现NTP服务,可以使用以下SDK提供的接口。
接口定义 | _ZJ_API int ZJ_SetGetUtcRspCbFun(ZJ_PFUN_DEVICE_GETUTCRSP pFunGetUtcRsp); |
功能描述 | 获取默认时间回调 |
入参 | pFunGetUtcRsp:回调函数 |
返回值 | 0 表示正确,否则其他错误 |
接口定义 | typedef int (*ZJ_PFUN_DEVICE_GETUTCRSP)(int uiReqId,int iCode,long long iGMTSecond); |
功能描述 | 获取默认时间回调 |
入参 | uiReqId:请求Id iCode:错误码 iGMTSecond:获取到的时间 |
返回值 | 0 表示正确,否则其他错误 |
接口定义 | _ZJ_API int ZJ_GetUtcTimeFromServer(int uiReqId); |
功能描述 | 向服务器发起获取默认时间请求 |
入参 | uiReqId:请求Id |
返回值 | 0 表示正确,否则其他错误 |
接口定义 | _ZJ_API int ZJ_CancleOneRequset(int iReqId); |
功能描述 | 请求超时后, 由 使用者 cancle 掉 |
入参 | uiReqId:请求Id |
返回值 | 0 表示正确,否则其他错误 |
/**
* 系统平台定义。
*/
typedef enum enum_zj_os_type
{
EN_ZJ_OS_TYPE_LINUX = 1,
EN_ZJ_OS_TYPE_IOS = 2,
EN_ZJ_OS_TYPE_ANDRIOD = 3,
EN_ZJ_OS_TYPE_ANDRIODTV = 4,
EN_ZJ_OS_TYPE_WINDOWS = 5,
EN_ZJ_OS_TYPE_RTOS = 6
}EN_ZJ_OS_TYPE;
/**
* 设置设备类型:1.摄像机;2.分体门铃;3.单体门铃;4.NVR。
*/
typedef enum enum_ZJ_DEV_TYPE
{
EN_ZJ_DEV_TYPE_CAMERA = 0X01, //摄像机
EN_ZJ_DEV_TYPE_DOORBELL_SPLIT = 0X02, //分体门铃
EN_ZJ_DEV_TYPE_DOORBELL_SINGLE = 0X03, //单体门铃
EN_ZJ_DEV_TYPE_NVR = 0X04 //NVR
EN_ZJ_DEV_TYPE_EDR = 0X05 //EDR
EN_ZJ_DEV_TYPE_SOLAR_PANEL = 0x06 //太阳能设备
}EN_ZJ_DEV_TYPE;
/**
* 设备初始化状态。分别为:初始化、配置加载、网络初始化、注册、登录、绑定、运行。
*/
typedef enum enum_ZJ_DEVICE_STATUS
{
EN_ZJ_DEVICE_STATUS_INIT = 0,
EN_ZJ_DEVICE_STATUS_LOADCONF, //SDK初始化加载配置成功
EN_ZJ_DEVICE_STATUS_NETWORK, //网络连接完成
EN_ZJ_DEVICE_STATUS_REGIST, //设备注册
EN_ZJ_DEVICE_STATUS_LOGIN, //设备登录服务成功
EN_ZJ_DEVICE_STATUS_BIND, //设备绑定(解绑)完成
EN_ZJ_DEVICE_STATUS_PROCESS //设备完成上线
}EN_ZJ_DEVICE_STATUS;
/*
* 设备内存富余级别
*/
typedef enum enum_ZJ_DEVICE_MEM_ABILITY
{
//内存余量可以存储3个以上完整GOP
EN_ZJ_DEVICE_MEM_ABILITY_RICH = 0,
//内存余量适中,可以存储1个以上完整GOP
EN_ZJ_DEVICE_MEM_ABILITY_MID = 1,
//内存余量不足,只可以存在一个完整帧
EN_ZJ_DEVICE_MEM_ABILITY_POOR = 2
}EN_ZJ_DEVICE_MEM_ABILITY;
/*
* 设备升级状态。
*/
typedef enum enum_ZJ_DEVICE_UPDATE_STATUS
{
EN_ZJ_DEVICE_UPDATE_STATUS_NOUPDATE = 0, //不需要升级
EN_ZJ_DEVICE_UPDATE_STATUS_NEEDUPDATE = 1, //有新版本需要升级
EN_ZJ_DEVICE_UPDATE_STATUS_MUSTUPDATE = 2 //强制升级,系统版本不兼容需要强制升级
}
// 网络类型
typedef enum enum_ZJ_NETWORK_TYPE{
EN_ZJ_NETWORK_TYPE_NONET = 0x00, // 无网络
EN_ZJ_NETWORK_TYPE_WIRED = 0x01, // 有线连接
EN_ZJ_NETWORK_TYPE_WIFI = 0x02, // WIFI连接
EN_ZJ_NETWORK_TYPE_AP = 0x04, // AP连接
EN_ZJ_NETWORK_TYPE_SIM = 0x08, // 移动网络
}EN_ZJ_NETWORK_TYPE;
//定义WIFI列表元素
typedef struct stru_ZJ_WIFI_INFO{
int iSigStrength; //信号强度
int iConnectFlag; //是否当前连接 1.是;0.不是
char acWifiSSID[32]; //最长31字节WiFiSSID
}ST_ZJ_WIFI_INFO;
// 定义当前网络详情结构
typedef struct stru_ZJ_NETWORK_INFO{
int iNetType;
int iSignalType; // 2: 2G 3: 3G 4: 4G
int iSigStrength;
unsigned char aucNetmask[64]; //子网掩码
unsigned char aucGateway[64]; //默认网关
unsigned char aucIPAddr[64];
unsigned char aucMacAddr[64];
unsigned char aucWIFISSID[32];
}ST_ZJ_NETWORK_INFO;
//网络连接状态
typedef enum enum_ZJ_NETWORK_ERR_STATUS{
EN_ZJ_NETWORK_ERR_STATUS_PWDERR = 0x01, //WIFI密码错误
EN_ZJ_NETWORK_ERR_STATUS_NOSIGNAL = 0x02 //信号中断
}EN_ZJ_NETWORK_ERR_STATUS;
//支持OTA升级的模式
typedef enum enum_ZJ_OTA_ABILITY{
// SD卡升级,用户将升级包拷贝到SD卡,然后将SD卡插入设备完成升级
EN_ZJ_OTA_ABILITY_SDCARD = 0x01,
//本地升级,用户与设备连接在同一个局域网,完成升级;
EN_ZJ_OTA_ABILITY_LOCALUPDATE = 0x02,
//远程升级,用户与设备不在同一个局域网,完成升级;设备需要更多的空间存放升级包;
EN_ZJ_OTA_ABILITY_REMOTEUPDATE = 0x04
}EN_ZJ_OTA_ABILITY;
// 支持WIFI配置模式
typedef enum enum_ZJ_SETWIFI_ABILITY{
EN_ZJ_SETWIFI_ABILITY_AP = 0x01, //支持AP配网
EN_ZJ_SETWIFI_ABILITY_SOUND = 0x02,//支持声波配网
EN_ZJ_SETWIFI_ABILITY_SMARTLINK = 0x04,//支持SMARTLINK配网
EN_ZJ_SETWIFI_ABILITY_QRCODE = 0x08,//支持二维码配网
EN_ZJ_SETWIFI_ABILITY_WIRED = 0x10 //支持有线配网
}EN_ZJ_SETWIFI_ABILITY;
//设备休眠唤醒能力
typedef enum enum_ZJ_AWAKE_ABILITY{
EN_ZJ_AWAKE_ABILITY_NOTSUPPORT = 0x00, //不支持休眠
EN_ZJ_AWAKE_ABILITY_LOCALAWAKE = 0x01, //支持本地唤醒
EN_ZJ_AWAKE_ABILITY_REMOTEAWAKE = 0x02 //支持远程唤醒
}EN_ZJ_AWAKE_ABILITY;
//声音对讲支持能力
typedef enum enum_ZJ_VOICEPLAY_ABILITY{
EN_ZJ_VOICEPLAY_ABILITY_NOSUPPORT = 0x00, //不支持对讲
EN_ZJ_VOICEPLAY_ABILITY_SIMPLEX = 0x01, //单工
EN_ZJ_VOICEPLAY_ABILITY_DUPLEX = 0x02 //双工
}EN_ZJ_VOICEPLAY_ABILITY;
//摄像机PTZ支持能力
typedef enum enum_ZJ_CAMERA_PTZ_ABILITY{
EN_ZJ_CAMERA_PTZ_ABILITY_P = 0x01, //支持P操作
EN_ZJ_CAMERA_PTZ_ABILITY_T = 0x02, //支持T操作
EN_ZJ_CAMERA_PTZ_ABILITY_Z = 0x04 //支持Z操作
}EN_ZJ_CAMERA_PTZ_ABILITY;
//摄像机PTZ转动
typedef enum enum_ZJ_CAMERA_PTZ_CONTROL{
EN_ZJ_CAMERA_PTZ_CONTROL_UP = 1,
EN_ZJ_CAMERA_PTZ_CONTROL_DOWN = 2,
EN_ZJ_CAMERA_PTZ_CONTROL_LEFT = 3,
EN_ZJ_CAMERA_PTZ_CONTROL_RIGHT = 4,
}EN_ZJ_CAMERA_PTZ_CONTROL;
//巡航预置点定义
typedef struct stru_ZJ_CAMERA_CRUISE_PRESET{
int Idx; //预置点序号
int iX; //预置点位移X
int iY; //预置点位移Y
int iDwellTime; //停留时间
int iSpeed; //云台转速
}ST_ZJ_CAMERA_CRUISE_PRESET;
//摄像机分辨率支持能力集
typedef enum enum_ZJ_CAMERA_RESOLUTION_ABILITY{
EN_ZJ_CARERA_RESOLUTION_ABILITY_360P = 0x0001, //支持640*360分辨率
EN_ZJ_CARERA_RESOLUTION_ABILITY_480P = 0x0002, //支持640*480分辨率
EN_ZJ_CARERA_RESOLUTION_ABILITY_720P = 0x0004, //支持1280*720分辨率
EN_ZJ_CARERA_RESOLUTION_ABILITY_960P = 0x0008, //支持1280*960分辨率
EN_ZJ_CARERA_RESOLUTION_ABILITY_1080P = 0x0010, //支持1920*1080分辨率
EN_ZJ_CARERA_RESOLUTION_ABILITY_1200P = 0x0020, //支持1600*1200分辨率
EN_ZJ_CARERA_RESOLUTION_ABILITY_300W = 0x0040, //支持2048*1536分辨率
EN_ZJ_CARERA_RESOLUTION_ABILITY_400W = 0x0080, //支持2500*1600分辨率
EN_ZJ_CARERA_RESOLUTION_ABILITY_500W = 0x0100, //支持2560*1920分辨率
EN_ZJ_CARERA_RESOLUTION_ABILITY_4K = 0x0200, //支持3840*2160分辨率 800W像素
EN_ZJ_CARERA_RESOLUTION_ABILITY_8K = 0x0400, //支持7680*4320分辨率 3200W像素
}EN_ZJ_CARERA_RESOLUTION_ABILITY;
//摄像机编码帧率定义
typedef enum enum_ZJ_CAMERA_BITRATE_TYPE{
EN_ZJ_CAMERA_BITRATE_TYPE_96K = 1,
EN_ZJ_CAMERA_BITRATE_TYPE_128K = 2,
EN_ZJ_CAMERA_BITRATE_TYPE_196K = 3,
EN_ZJ_CAMERA_BITRATE_TYPE_256K = 4,
EN_ZJ_CAMERA_BITRATE_TYPE_384K = 5,
EN_ZJ_CAMERA_BITRATE_TYPE_512K = 6,
EN_ZJ_CAMERA_BITRATE_TYPE_768K = 7,
EN_ZJ_CAMERA_BITRATE_TYPE_1024K = 8,
EN_ZJ_CAMERA_BITRATE_TYPE_1536K = 9,
EN_ZJ_CAMERA_BITRATE_TYPE_2048K = 10,
EN_ZJ_CAMERA_BITRATE_TYPE_2560K = 11,
EN_ZJ_CAMERA_BITRATE_TYPE_3072K = 12,
EN_ZJ_CAMERA_BITRATE_TYPE_4096K = 13
}EN_ZJ_CAMERA_BITRATE_TYPE;
//红外灯支持能力
typedef enum enum_ZJ_CAMERA_IRLED_ABILITY{
EN_ZJ_CAMERA_IRLED_ABILITY_NOSUPPORT = 0x00, //不支持红外灯
EN_ZJ_CAMERA_IRLED_ABILITY_NOCONTROL = 0x01, //不支持红外灯开关控制,只能通过感光器自动开关控制
EN_ZJ_CAMERA_IRCUR_ABILITY_CANCONTROL = 0x02, //支持红外灯命令开关控制
}EN_ZJ_CAMERA_IRLED_ABILITY;
//图像侦测报警能力
typedef enum enum_ZJ_MOTION_ABILITY{
EN_ZJ_MOTION_ABILITY_NOSUPPORT = 0x00, //不支持侦测
EN_ZJ_MOTION_ABILITY_NORMAL = 0x01, //普通运动侦测
EN_ZJ_MOTION_ABILITY_NORMALTRACE = 0x02, //普通运动跟踪
EN_ZJ_MOTION_ABILITY_HUMAN = 0x03, //人形侦测
EN_ZJ_MOTION_ABILITY_HUMANTRACE = 0x04 //人形追踪
}EN_ZJ_MOTION_ABILITY;
//摄像机视频编码类型
typedef enum enum_ZJ_VIDEOENC_TYPE{
EN_ZJ_VIDEOENC_TYPE_JPEG = 0x01, //JPEG图片编码模式
EN_ZJ_VIDEOENC_TYPE_H264 = 0x02, //H264编码类型
EN_ZJ_VIDEOENC_TYPE_H265 = 0x04 //H265编码类型
}EN_ZJ_VIDEOENC_TYPE;
//音频编码类型
typedef enum enum_ZJ_AUDIOENC_TYPE{
EN_ZJ_AUDIOENC_TYPE_PCM16 = 0x01,
EN_ZJ_AUDIOENC_TYPE_G711A = 0x02,
EN_ZJ_AUDIOENC_TYPE_G711U = 0x04,
EN_ZJ_AUDIOENC_TYPE_AAC = 0x08,
EN_ZJ_AUDIOENC_TYPE_MP3 = 0x10
}EN_ZJ_AUDIOENC_TYPE;
//镜头类型
typedef enum enum_ZJ_CAMERA_LENS_TYPE{
EN_ZJ_CAMERA_LENS_TYPE_NORMAL = 0x00,
EN_ZJ_CAMERA_LENS_TYPE_360 = 0x01,
EN_ZJ_CAMERA_LENS_TYPE_720 = 0x02
}EN_ZJ_CAMERA_LENS_TYPE;
//视频编码参数
typedef struct stru_ZJ_VIDEO_PARAM{
unsigned int uiResolution; //分辨率,见分辨率定义
unsigned int uiEncodeType; //编码格式
unsigned int uiSmartEncFlag; //0.不支持Smart编码;1.支持Smart编码
unsigned int uiQuality; //编码质量
unsigned int uiBitrate; //码率,见码率定义
unsigned int uiFramerate; //帧率
unsigned int uiFrameInterval; //I帧间隔
}ST_ZJ_VIDEO_PARAM;
// 音频参数描述
typedef struct stru_ZJ_AUDIO_PARAM{
unsigned int uiEncodeType; //编码格式
unsigned int uiSampleRate; //采样率
unsigned int uiChannel; //声道数
unsigned int uiDepth; //深度
}ST_ZJ_AUDIO_PARAM;
//广角镜头圆心半径信息描述
typedef struct str_ZJ_VIDEO_CIRCLE
{
unsigned int uiRadius; //半径
double doubleAngle; //角度
unsigned int uiCc1x; //圆心坐标X
unsigned int uiCc1Y; //圆心坐标Y
unsigned int uiCc2x; // 720度双目
unsigned int uiCc2Y; // 720度双目
}ST_ZJ_VIDEO_CIRCLE;
// 扭曲度描述
typedef struct str_ZJ_VIDEO_DISTORTION
{
double fx; // 镜头光轴与图像圆心的水平偏移
double fy; // 镜头光轴与图像圆心的垂直偏移
double a; // 桶形畸变校正参数
double b; // 枕形畸变校正参数
double scale; // 图像缩放因子
}ST_ZJ_VIDEO_DISTORTION;
//视频编码帧类型
typedef enum enum_ZJ_VIDEO_FRAME_TYPE{
EN_ZJ_VIDEO_FRAME_TYPE_UNKNOW = 0, //未知帧类型,需要去检测
EN_ZJ_VIDEO_FRAME_TYPE_I = 1, //I帧
EN_ZJ_VIDEO_FRAME_TYPE_P = 2, //P帧
}EN_ZJ_VIDEO_FRAME_TYPE;
// 图片类型定义。普通图片,中等大小图片,小图,ICON图片;
typedef enum enum_ZJ_PICTURE_TYPE{
EN_ZJ_PICTURE_NORMAL = 0, //码流同等尺寸
EN_ZJ_PICTURE_MIDDLE = 1, //码流缩放一倍尺寸
EN_ZJ_PICTURE_SMALL = 2, //320*240尺寸
EN_ZJ_PICTURE_ICON = 3 //64*48尺寸
}EN_ZJ_PICTURE_TYPE;
//TF卡状态
typedef enum enum_tfcard_status
{
EN_TFCARD_STATUS_OK = 0, // tf 卡正常
EN_TFCARD_STATUS_UNKNOWNSYSTEM = 1, // tf 卡正常,但是文件系统不支持
EN_TFCARD_STATUS_NOTFCAR = 2, // TF 卡不存在
EN_TFCARD_STATUS_FORMATTING = 3, // TF 卡正在格式化
EN_TFCARD_STATUS_SYSTEMERR = 4 // TF 卡文件系统损坏,需要人工修复
}EN_TFCARD_STATUS;
// IR模式。自动模式,红外模式,全彩模式。
typedef enum enum_ZJ_IRMODE{
EN_ZJ_IRMODE_AUTO = 0, //自动模式
EN_ZJ_IRMODE_IR = 1, //红外模式
EN_ZJ_IRMODE_FULLCOLOR = 2 //全彩模式
}EN_ZJ_IRMODE;
// 关键帧编码质量参数
typedef enum enum_ZJ_KEYFRAME_QUALITY{
EN_ZJ_KEYFRAME_QUALITY_NORMAL = 1, // 标准质量
EN_ZJ_KEYFRAME_QUALITY_LOW = 2, // 低质量
}EN_ZJ_KEYFRAME_QUALITY;
//定义AIIoT类型,包括报警器、信号采集检测器、控制器;
typedef enum enum_ZJ_AIIOT_TYPE{
EN_ZJ_AIIOT_TYPE_REMOTECTRLER = 0, //遥控器
EN_ZJ_AIIOT_TYPE_DOORSWITCH = 1, //门磁
EN_ZJ_AIIOT_TYPE_SMOKETRANSDUCER = 2, //烟雾传感器
EN_ZJ_AIIOT_TYPE_GASSENSOR = 3, //燃气 探测 传感器
EN_ZJ_AIIOT_TYPE_LIGHTSWITCH = 4, //电灯
EN_ZJ_AIIOT_TYPE_CURTAIN = 5, //窗帘
EN_ZJ_AIIOT_TYPE_JACK = 6, //插座
EN_ZJ_AIIOT_TYPE_PIR = 7, //人体 红外
EN_ZJ_AIIOT_TYPE_WATER = 8, //水浸
EN_ZJ_AIIOT_TYPE_ERG = 9, //紧急
EN_ZJ_AIIOT_TYPE_ALARMBEER = 10, //警号
EN_ZJ_AIIOT_TYPE_JCAKHVAC = 11, //空调插座
EN_ZJ_AIIOT_TYPE_MULTISWITCH = 12, //多路开关
EN_ZJ_AIIOT_TYPE_SHUTTERMOTOR = 13, //卷帘 电动机
EN_ZJ_AIIOT_TYPE_GLASSBROKENSENSOR = 20, //玻璃破碎 传感器
EN_ZJ_AIIOT_TYPE_INFRAREDSENSOR = 23, //红外 对射
EN_ZJ_AIIOT_TYPE_BATTERYVALVE = 24, //电磁阀门
EN_ZJ_AIIOT_TYPE_AIRFLOWSENSOR = 25, //气流传感器
EN_ZJ_AIIOT_TYPE_MULTICTR = 32, //多功能控制
EN_ZJ_AIIOT_TYPE_INTELLOCK = 33, //智能锁
EN_ZJ_AIIOT_TYPE_DOORBELL = 34, //门铃
EN_ZJ_AIIOT_TYPE_COSENSOR = 40, //一氧化碳探测器
EN_ZJ_AIIOT_TYPE_MOTION = 1000, //运动检测
EN_ZJ_AIIOT_TYPE_INNER_DOORBELL = 1001, //内置 门铃
EN_ZJ_AIIOT_TYPE_RECORD = 1002, //录像 不需要注册IOT
EN_ZJ_AIIOT_TYPE_INNER_PIR = 1003, //内置人体红外探测器
EN_ZJ_AIIOT_TYPE_VOICEALARMDETECT = 1004, //声音报警检测
EN_ZJ_AIIOT_TYPE_SNAPSHORT = 1005, //SnapShot截图 不需要注册IOT
EN_ZJ_AIIOT_TYPE_PTZ = 1006, //PTZ 不需要用注册IOT
EN_ZJ_AIIOT_TYPE_INNER_LAMP = 1007, //内置白光灯
EN_ZJ_AIIOT_TYPE_INNER_STATELAMP = 1008, //内置状态指示灯
EN_ZJ_AIIOT_TYPE_BUZZER = 1009, //内置蜂鸣器
EN_ZJ_AIIOT_TYPE_CLOUDRECORD = 1010, // 云端录像
EN_ZJ_AIIOT_TYPE_CLOUDSNAP = 1011, // 云端截图
EN_ZJ_AIIOT_TYPE_CAMERA = 1012, // 摄像机 开关
EN_ZJ_AIIOT_TYPE_EVENT = 1013, // 事件记录
EN_ZJ_AIIOT_TYPE_DNSET = 1014, // 强制白天晚上,和自动
EN_ZJ_AIIOT_TYPE_FORCEREMOVE = 1015, // 强拆
EN_ZJ_AIIOT_TYPE_STAY = 1016 // 逗留
}EN_ZJ_AIIOT_TYPE;
//区分MOTION中不同的检测类型
typedef enum enum_zj_motion_event_type
{
EN_ZJ_MOTION_EVENT_MOTION = 0X00, //移动侦测事件类型
EN_ZJ_MOTION_EVENT_HUMAN = 0X01, //人形侦测事件类型
EN_ZJ_MOTION_EVENT_FACE = 0X02, //人脸侦测事件类型
EN_ZJ_MOTION_EVENT_FENCE_MOTION_IN = 0X03, //电子围栏移动侦测进入事件
EN_ZJ_MOTION_EVENT_FENCE_MOTION_OUT = 0X04, //电子围栏移动侦测离开事件
EN_ZJ_MOTION_EVENT_FENCE_HUMAN_IN = 0X05, //电子围栏移动人形进入事件
EN_ZJ_MOTION_EVENT_FENCE_HUMAN_OUT = 0X06, //电子围栏移动人形离开事件
EN_ZJ_MOTION_EVENT_FENCE_FACE_IN = 0X07, //电子围栏移动人脸进入事件
EN_ZJ_MOTION_EVENT_FENCE_FACE_OUT = 0X08, //电子围栏移动人脸离开事件
EN_ZJ_MOTION_EVENT_CAR = 0X09, //车辆识别
EN_ZJ_MOTION_EVENT_CAR_DISCERN = 0X10, //车牌识别事件
EN_ZJ_MOTION_EVENT_MOTION_OVERLINE = 0X11, //运动物体越线
EN_ZJ_MOTION_EVENT_HUMAN_OVERLINE = 0X12, //人形越线
EN_ZJ_MOTION_EVENT_FACE_OVERLINE = 0X13 //人脸越线
}EN_ZJ_MOTION_EVENT_TYPE;
typedef enum enum_ZJ_CTRLDEVICEID_TYPE{
EN_ZJ_CTRLDID_NODE = 0,
EN_ZJ_CTRLDID_CLEAR = 1,//更换DID
EN_ZJ_CTRLDID_QUERY = 2,//查询DID
EN_ZJ_CTRLDID_EXITGROUP = 3//DID解绑用户与设备关系
}EN_ZJ_CTRLDEVICEID_TYPE;
typedef struct ZJ_HUMANFACE_NODE
{
unsigned char aucFaceId[64];
unsigned char aucFaceLabelId[64];
struct ZJ_HUMANFACE_NODE *pstNextNode;
}ZJ_HUMANFACE_NODE;
typedef struct ZJ_HUMANFACE_LABLE_NODE
{
unsigned int uiMaxFaceCnt;
unsigned int *pucFaceDes;
unsigned char aucFaceLabeName[64];
unsigned char aucFaceLabelId[64];
struct ZJ_HUMANFACE_LABLE_NODE *pstNextNode;
}ZJ_HUMANFACE_LABLE_NODE;
由于设备重启会影响到用户实时视频观看和云存的丢失,设备端尽量避免定时自动重启,更不允许设备定时准点自动重启。
若设备确实需要周期性自动重启,需要随机打散重启时间,避免所有设备在同一时间周期性冲击平台接口,自动重启设计为间隔7到14天、00:30:00 到 04:00:00之间随机时间点,具体要求如下:
1、重启日周期:从设备启动或重启后第7到第14天,随机一天,避免所有设备在同一天重启。公式如下: 重启日周期=7+N, N为0到7的系统随机数。
2、时间点:00:30:00 到 04:00:00之间,随机一秒,避免重启的设备在同一秒重启。公式如下:时间点=T ,T为00:30:00 到 04:00:00之间随机秒数(即1800 到 14400之间随机数)。
举例:设备启动或重启日期为2020/02/05,若随机数N=3、随机数T=3672,则设备在第10天 01:01:12自动重启,即2020/02/15 01:01:12自动重启。