依托云优势快速接入你的产品

依托云优势,接入你的智能产品

开发分类
硬件接入开发 > 硬件接入SDK 下载
硬件接入SDK开发文档


硬件接入SDK开发文档

设备端SDK接口文档

V1.6







日期

版本

修订说明

修订人

2020-3-01

1.0

初稿


2020-9-23

1.6

新增规范说明















1      简介

1.1     编制说明

本文档使用对象为设备厂商,主要说明厂商通过设备侧SDK接入牵心平台。

1.2     摄像头要求

摄像头厂商集成牵心SDK相关要求如下:

Linux/Unix环境,需要支持标准GCC指令,需要支持标准POSIX库,需要有集成openssl加密库等基础环境;

1、     需要有大于16M,最好能32M的内存空间可供SDK使用;

2、     需要大约2MFLASH空间用来存放SDK相关的库文件;

3、     需要大约1M的空间用来存放SDK中记录的配置项相关文件。

1.3    名词解释

名词

解释

IPC

网络摄像机

NVR

NVR是(Network Video Recorder即网络硬盘录像机)的缩写。NVR最主要的功能是通过网络接收IPC(网络摄像机)设备传输的数字视频码流, 并进行存储、管理,从而实现网络化带来的分布式架构优势。

CTEI

CTEI码,设备唯一标识码,摄像机厂家获得该信息后写入摄像机。

SDK

Software Development Kit 的缩写,中文即“软件开发工具包”。广义上指辅助开发某一类软件的相关文档、范例和工具的集合

APP

指合入SDK服务的上层应用,即SDK上层应用

 

1.4    概述

为了保证设备能够被观看、被控制,关键数据可以被存储。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服务,可以使用此文件提供的接口。

2      标识要求

2.1    CTEI

CTEI码,设备唯一码,摄像机厂家获得该信息后写入摄像机。

3      厂商接入流程

3.1    接入简介

设备方提供交叉编译工具,并按照平台方要求实现设备功能接口,平台方编译提供应用程序功能库供设备方调用整合到设备程序中。

各模块关系图如下所示:

1、  平台方用设备方提供的交叉编译工具生成应用程序库提供给设备方。

2、  设备方按平台方要求实现公共接口,用于获取设备音视频及控制设备相关参数等功能。

3、  设备方主程序整合平台方提供的应用程序库,并调用相关接口,启动平台方的应用程序服务。

4、  第三方库ssl需要厂商编译链接(如需要平台方编译,需要提供移植流程示例及源码)

3.2    SDK目录结构

├── 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                              //第三方静态库

4      接口说明

4.1    接口使用流程

SDK启动流程:

1、  调用ZJ_Init() 初始化SDK

2、  设置日志模式和设置日志等级

3、  配置音视频参数、能力集回调接口注册

4、  调用ZJ_Start()启动SDK并分配资源

5、  调用ZJ_Stop()停止SDK运行

6、  调用ZJ_Destory()释放SDK资源

4.2    SDK系统相关接口

4.2.1  设备初始化

接口定义

_ZJ_API   int ZJ_Init(char *pucSystemPath, char* pcConfPath)

功能描述

设备初始化接口;传入一个配置存储路径和一个系统路径。系统路径在重置的时候,   该文件不会被删除,需要确保路径可访问,如不可访问则会返回对应的错误状态信息。

入参

pucSystemPath:系统路径

pcConfPath 配置路径

返回值

0   表示正确,否则其他错误

 

4.2.2  启动SDK

接口定义

_ZJ_API int ZJ_Start()

功能描述

启动SDK相关线程并分配资源,需要在Init后执行

入参

返回值

0   表示正确,否则其他错误

 

4.2.3  停止SDK

接口定义

_ZJ_API int ZJ_Stop()

功能描述

停止SDK运行

入参

返回值

0   表示正确,否则其他错误

 

4.2.4     释放sdk的内存资源

接口定义

_ZJ_API   int ZJ_Destroy()

功能描述

SDK实例销毁接口

入参

返回值

0   表示正确,否则其他错误

 

4.2.5     设置CTEI

接口定义

_ZJ_API   int ZJ_SetCTEIID(unsigned char* pucCTEI)

功能描述

设置CTEI

入参

pucCTEICTEI码值

返回值

0   表示正确,否则其他错误

 

4.2.6     设置固件版本号

接口定义

_ZJ_API   int ZJ_SetAppVersion(

const   char* pcVersion)

功能描述

设置固件版本号

入参

pcVersion: 设备版本号

返回值

0   表示正确,否则其他错误

 

4.2.7     设置自定义平台

接口定义

_ZJ_API   int ZJ_SetPlatSignAddr(unsigned char *pucSignAddr)

功能描述

自定义平台的   域名地址 xxx:port port 不带 默认 443

入参

pucSignAddr: 平台地址

返回值

0   表示正确,否则其他错误

4.2.8     设置企业的信息

接口定义

_ZJ_API   int ZJ_SetCompanyInfo(

unsigned   char *pucCompanyId,unsigned char* pucAppId)

功能描述

企业的信息, 没有可以不填

入参

pucCompanyId: 企业id

pucAppId: APPid

返回值

0   表示正确,否则其他错误

 

4.2.9     设置设备类型

接口定义

_ZJ_API   int ZJ_SetDevType(unsigned int uiDevType)

功能描述

设置设备类型:EN_ZJ_DEV_TYPE

入参

pucDevModel: 设备类型

返回值

0   表示正确,否则其他错误

 

4.2.10设置设备的4G卡号

接口定义

_ZJ_API   int ZJ_SetSIMCardInfo(unsigned char aucSIMCard[64])

功能描述

设置设备的4G卡号

入参

aucSIMCard4G卡号

返回值

0   表示正确,否则其他错误

 

4.2.11设置4G卡的能力

接口定义

_ZJ_API   int ZJ_Set4GAbility(int i4GAbility)

功能描述

设置4G卡的能力

入参

i4GAbility4G卡的能力

返回值

0   表示正确,否则其他错误

 

4.2.12 设置4GIMEI

接口定义

_ZJ_API int ZJ_SetDevIMEI(unsigned char aucIMEI[64])

功能描述

设置4G卡的IMEI

入参

aucIMEI:   4G设备的IMEI

返回值

0 表示正确,否则其他错误

 

4.2.13 设备状态回调函数设置

4.2.13.1          回调接口定义

接口定义

_ZJ_API   int ZJ_Set_SystemStatusCB(

ZJ_PFUN_DEVICE_STATUS   pFunSelfStatusCb

)

功能描述

设备状态回调函数设置,从初始化启动&设备配网&设备添加绑定,一般为需要上层做相关提示的产品,设置该回调函数

入参

pFunSelfStatusCb:设备状态回调的函数

返回值

0   表示正确,否则其他错误

4.2.13.2          回调函数定义

接口定义

typedef int (*ZJ_PFUN_DEVICE_STATUS)(

EN_ZJ_SERVER_STATUS enDeviceStatus, 

int iErrCode)

功能描述

设备状态回调函数设置,通过该接口设置设备从初始化启动&设备配网&设备添加绑定的状态

入参

enDeviceStatus:设备状态回调的函数

iErrCode:错误代码

返回值

0   表示正确,否则其他错误

 

4.2.14 设备重启回调函数设置

4.2.14.1          回调接口定义

接口定义

_ZJ_API   int ZJ_SetDeviceRebootCbFunc(

ZJ_PFUN_DEV_REBOOT   pfunDevRebootCb)

功能描述

设备重启回调函数设置,设备上层在该函数中安全关闭设备各执行程序,然后将设备重新启动

入参

pfunDevRebootCb设备重启回调函数

返回值

0   表示正确,否则其他错误

 

4.2.14.2          回调函数定义

接口定义

typedef int (*ZJ_PFUN_DEV_REBOOT)();

功能描述

设备重启回调函数,告诉设置需要重新启动

入参

返回值

0   表示正确,否则其他错误

 

4.2.15 系统时间获取与设置回调函数设置

4.2.15.1          回调接口定义

接口定义

_ZJ_API   int ZJ_SetZoneAndTimeCB(

ZJ_PFUN_DEVICE_SETTIMEZONE pfunSetTimeZone, 

ZJ_PFUN_DEVICE_GETTIMEANDZONE pfunGetTimeZone

)

功能描述

设置系统时间获取与设置回调函数

入参

pfunSetTimeZone:时间设置回调函数

pfunGetTimeZone:时间获取回调函数

返回值

0   表示正确,否则其他错误

 

4.2.15.2          回调函数定义

设置时间回调接口

接口定义

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   表示正确,否则其他错误

4.2.16 设置默认的时间和时区,当固件层没有ntp的时候使用

4.2.16.1          回调接口定义

接口定义

_ZJ_API   int ZJ_SetDefaultZoneAndTimeCB(ZJ_PFUN_DEVICE_SETDEFAULTZONETIME   pFunSetDefaultTimeAndZone);

功能描述

设置默认的时间和时区

入参

pFunSetDefaultTimeAndZone:默认时间和时区回调函数

返回值

0   表示正确,否则其他错误

4.2.16.2          回调函数定义

默认时间和时区回调函数

接口定义

typedef   int (*ZJ_PFUN_DEVICE_SETDEFAULTZONETIME)(int iSetZoneFlag,int iZone,long long   iGMTSecond);

功能描述

设置默认时间和时区  

入参

piSetZoneFlag 时区是否有效, 1 有效, 0 无效

piZone表示本地时区,

iGMTSecond: utc 的 秒数

返回值

0   表示正确,否则其他错误

 

4.2.17设置系统内存空闲值等级

接口定义

_ZJ_API void ZJ_SetSysMemLevel(

EN_ZJ_DEVICE_MEM_ABILITY enZJDevAblity)

功能描述

设置系统内存空闲值,用于缓存视频帧的数据量,不设置默认为MID

入参

enZJDevAblity:空闲值等级,分为足量、适中、不足

足量:内存余量可以存储3个以上完整GOP

适中:可以存储1个以上完整GOP

不足:只可以存在一个完整帧

返回值

0   表示正确,否则其他错误

 

4.2.18 设置摄像机名称回调

4.2.18.1          回调接口定义

接口定义

_ZJ_API int ZJ_SetNoticeCfgChangeCbFun(

ZJ_PFUN_CFGITEM_CHANGE pfunCfgItemChangeCb)

功能描述

设置摄像机名称的回调,通知上层,设备的dev配置项发生变化

入参

pfunCfgItemChangeCb:回调函数

返回值

0   表示正确,否则其他错误

 

4.2.18.2          回调函数定义

 

接口定义

typedef int (*ZJ_PFUN_CFGITEM_CHANGE)(

unsigned int uiCfgItem)

功能描述

配置变化 通知 

入参

uiCfgItem:配置条目

返回值

0   表示正确,否则其他错误

 

4.2.19 设置设备恢复出厂设置回调函数

4.2.19.1          回调接口定义

接口定义

_ZJ_API   int ZJ_SetRestoreFactorySettingCB(

ZJ_PFUN_DEVICE_RESTOREFACTORYSETTING   pfunRestoreFactorySetting)

功能描述

设置设备恢复出厂设置回调函数

入参

pfunRestoreFactorySetting设备恢复出厂设置回调函数

返回值

0   表示正确,否则其他错误

 

4.2.19.2          回调函数定义

接口定义

typedef int (*ZJ_PFUN_DEVICE_RESTOREFACTORYSETTING)();

功能描述

设备恢复出厂设置回调接口,告诉设置恢复出厂设置

入参

返回值

0   表示正确,否则其他错误

4.2.20 设置设备加密能力

接口定义

ZJ_API int ZJ_SetEncryptAbility(

int iEncAbility)

功能描述

设置设备加密能力

入参

iEncAbility:加密能力,详见enum_ZJ_ENCRYPT_ABILITY定义

返回值

0   表示正确,否则其他错误

4.2.21 获取设备DID

接口定义

_ZJ_API unsigned char* ZJ_GetDeviceId()

功能描述

获取设备的did, ID  服务器分配

入参

返回值

did,否则其他错误

 

4.2.22 设备DID控制

接口定义

_ZJ_API int ZJ_CtrlDeviceId(

unsigned int uiCtrlType)

功能描述

设备DID控制

入参

uiCtrlType:控制类型,详见:EN_ZJ_CTRLDEVICEID_TYPE

返回值

0正确,否则其他错误

 

4.2.23 获取设备名称

接口定义

_ZJ_API unsigned char *ZJ_GetDeviceName()

功能描述

获取 设备名字

入参

返回值

设备名称,否则其他错误

 

4.2.24 设置设备名称

接口定义

_ZJ_API int ZJ_SetDeviceName(

unsigned char *pucDevName)

功能描述

设置 设备名字

入参

pucDevName:设备名称

返回值

0正确,否则其他错误

 

4.2.25 获取当前生效的套餐

接口定义

_ZJ_API int ZJ_GetCurChargePackage(

ST_ZJ_CURCHARGEPACKAGE *pstChargePackage)

功能描述

获取当前生效的套餐

入参

pstChargePackage:套餐参数,详见:ST_ZJ_CURCHARGEPACKAGE

返回值

0正确,否则其他错误

4.2.26 查询设备入组状态

接口定义

_ZJ_API int ZJ_BoolDeviceJoinGroup()

功能描述

查询设置入职状态

入参

返回值

0未入组1已入组

4.2.27 获取设备的用户信息

接口定义

_ZJ_API int ZJ_GetDeviceOwnerPubInf(

unsigned char aucName[64],

unsigned char aucCcount[64],

unsigned char aucMobile[32])

功能描述

获取设备的用户信息

入参

aucName:名称

aucCcount:账户

aucMobile:用户电话

返回值

0正确,否则其他错误

 

 

4.2.28  低功耗设备获取保活服务器地址

接口定义

_ZJ_API int ZJ_GetLinkAddr(

unsigned char **pucAddrIpv4,

unsigned char **pucAddrIpv6,

unsigned int *puiPort,

unsigned char **pucToken)

功能描述

获取设备休眠后,进入保活流程所连接的服务的地址,所返回的地址只读,不要修改和释放

入参

pucAddrIpv4:服务的IPV4地址

pucAddrIpv6:服务的IPV6地址

puiPort:服务的端口号

pucToken:登陆服务的授权信息,可能为空

返回值

0正确,否则其他错误

 

 

4.2.29  设置设备的区域和时区信息

接口定义

_ZJ_API int ZJ_SetSystemDstInf(

int iUseDstFlag,

unsigned char *pucDstArea,

unsigned char *pucDstTime,

int iTimeZone);

功能描述

如果设备的内置web页面修改了时区,调用改接口同步信息

入参

iUseDstFlag:是否启用区域和时区格式,0 不启用,iTimeZone有效;1 启用:pucDstAreapucDstTime有效

pucDstArea:时区的区域信息(beijing

pucDstTime:时区信息(CET-1CEST,M3.5.0,M10.5.0/3

iTimeZone:时区的秒数。大于0:东时区;小于0:西时区

返回值

0正确,否则其他错误

 

 

4.3    音视频相关接口

4.3.1  摄像头能力集设置接口

以下为摄像头能力集设置函数, 不设置默认为不支持。

4.3.1.1   设置码流数量

接口定义

_ZJ_API   int ZJ_SetStreamCount(int iStreamCount)

功能描述

设置码流数量

入参

iStreamCount:码流数量,若为0则表示没有摄像头,默认为0

返回值

0   表示正确,否则其他错误

 

4.3.1.2   设置语音对讲能力

接口定义

_ZJ_API   int ZJ_SetVoicePlayAbility(int iVoicePlayAbility)

功能描述

设置语音对讲能力

入参

iVoicePlayAbility:0.不支持;1.支持单工;2.支持双工

返回值

0   表示正确,否则其他错误

 

4.3.1.3   设置PTZ能力

接口定义

_ZJ_API   int ZJ_SetPTZAbility(int iPTZAbility)

功能描述

设置PTZ能力

入参

iPTZAbility

0x00:不支持;0x01:   支持P;0x02: 支持T;0x04: 支持Z;按位与

返回值

0   表示正确,否则其他错误

 

4.3.1.4   设置PTZ云台速度设置标志

接口定义

_ZJ_API   int ZJ_SetPTZSpeedAbility(

int   iPTZSpeedSetAbility)

功能描述

设置PTZ云台速度设置标志

入参

iPTZSpeedSetAbility:0.不支持; 1.支持

返回值

0   表示正确,否则其他错误

4.3.1.5   OSD设置能力支持

接口定义

_ZJ_API   int ZJ_SetOSDSetAbility(

int   iOSDSetAbility)

功能描述

OSD设置能力支持

入参

iOSDSetAbility:0.不支持; 1.支持

返回值

0   表示正确,否则其他错误

 

4.3.1.6   预置点设置能力支持

接口定义

_ZJ_API int ZJ_SetPresetPointAbility(

int iPresetAbility)

功能描述

预置点设置能力支持

入参

iPresetAbility: 0.不支持; 1.支持

返回值

0   表示正确,否则其他错误

 

4.3.1.7   设置分辨率能力集

接口定义

_ZJ_API int ZJ_SetResolutionAbility(

int iStreamid,

int iResolutionAbility)

功能描述

设置分辨率能力集

入参

iStreamID视频流Id

iResolutionAbility

支持多种按位与EN_ZJ_CARERA_RESOLUTION_ABILITY,必须设置

返回值

0   表示正确,否则其他错误

 

4.3.1.8   设置视频编码能力

接口定义

_ZJ_API int ZJ_SetVideoEncodeAbility(

int istreamid,

int iEncAbility)

功能描述

设置摄像机视频编码类型

入参

iStreamID视频流Id

iEncAbility:支持多种按位与,见:EN_ZJ_VIDEOENC_TYPE,必须设置

返回值

0   表示正确,否则其他错误

 

4.3.1.9   设置麦克风是否支持

接口定义

_ZJ_API   int ZJ_SetMicroPhoneAbility(

int   iMicroPhoneAbility)

功能描述

设置麦克风是否支持

入参

iMicroPhoneAbility:0.不支持; 1.支持

返回值

0   表示正确,否则其他错误

 

4.3.1.10          设置IRLed红外灯控制模式

接口定义

_ZJ_API   int ZJ_SetIRLedAbility(

int   iIRLedAbility)

功能描述

设置IRLed红外灯控制模式

入参

iIRLedAbility:详见EN_ZJ_IRMODE

返回值

0   表示正确,否则其他错误

 

4.3.1.11          设置SD卡能力支持

接口定义

_ZJ_API int ZJ_SetSDCardAbility(

int iSDCardAbility)

功能描述

设置SD卡能力支持

入参

iSDCardAbility:0.不支持; 1.支持

返回值

0   表示正确,否则其他错误

 

4.3.1.12          设置图像翻转能力支持

接口定义

_ZJ_API   int ZJ_SetImageInversionAbility(

int   iInversionAbility)

功能描述

设置图像翻转能力支持

入参

iInversionAbility:0.不支持; 1.支持

返回值

0   表示正确,否则其他错误

 

4.3.1.13          设置外挂云台PTZ支持

接口定义

_ZJ_API int ZJ_SetAttachPTZAbility(

int iAttachPTZAbility)

功能描述

设置外挂云台PTZ支持

入参

iAttachPTZAbility:0.不支持; 1.支持

返回值

0   表示正确,否则其他错误

 

4.3.1.14          设置镜头最大数量

接口定义

_ZJ_API   int ZJ_SetLensMaxCount(int iLensCount)

功能描述

设置镜头最大数量

入参

iLensCount:最大数量

返回值

0   表示正确,否则其他错误

 

4.3.1.15          设置镜头信息

接口定义

_ZJ_API   int ZJ_SetLensInf(int iLenId,char *pucLenName,

EN_ZJ_CAMERA_LENS_TYPE   enLensType,double focalLenth);

功能描述

设置镜头信息

入参

iLenId:ID,pucLenName:名字,enLensType:类型,focalLenth:

返回值

0   表示正确,否则其他错误

 

4.3.1.16          设置摄像头当前IR工作模式

接口定义

_ZJ_API   int ZJ_SetCamerCurIRWorkMode(int iCurWorkMode)

功能描述

设置摄像头当前IR工作模式

入参

iCurWorkMode:工作模式

返回值

0   表示正确,否则其他错误

4.3.1.17          设置RingTone能力

接口定义

API   int ZJ_SetRingToneAbility(unsigned int    uiBSupport,

unsigned   int uiDecAblity)

功能描述

设置RingTone能力

入参

uiBSupport:uiB支持,uiDecAblity:   解码能力合集

EN_ZJ_AUDIOENC_TYPE

返回值

0   表示正确,否则其他错误

 

4.3.2  摄像头参数和业务接口

4.3.2.1   设置画面翻转回调接口

4.3.2.1.1         回调接口定义

接口定义

_ZJ_API   int ZJ_SetImageInversionCB(

ZJ_PFUN_IMAGEINVERSION   pfunImageInversion)

功能描述

设置画面翻转回调接口,   通过该回调接口通知上层做画面翻转

入参

pfunImageInversion:回调函数

返回值

0   表示正确,否则其他错误

 

4.3.2.1.2         回调函数定义

函数定义

typedef   int (*ZJ_PFUN_IMAGEINVERSION)(

int   iState)

功能描述

设置画面翻转回调接口,   告诉设备画面进行翻转

入参

iState:1.图像正立; 2.图像倒立;

返回值

0   表示正确,否则其他错误

 

4.3.2.2   设置红外灯开关控制回调接口

4.3.2.2.1         回调接口定义

接口定义

_ZJ_API   int ZJ_SetIRLedSwitchCB(

ZJ_PFUN_IRLED_SWITCH   pfunIRLedSwitch)

功能描述

设置红外灯开关控制回调接口,   通过该回调接口通知上层做红外灯开关控制

入参

pfunIRLedSwitch:回调函数

返回值

0   表示正确,否则其他错误

 

4.3.2.2.2         回调函数定义

函数定义

typedef   int (*ZJ_PFUN_IRLED_SWITCH)(int iState)

功能描述

红外灯开关回调接口,告诉设备红外灯切换模式  

入参

iStateEN_ZJ_IRMODE

返回值

0   表示正确,否则其他错误

 

4.3.2.3   设置摄像头编码开关回调接口

4.3.2.3.1         回调接口定义

接口定义

_ZJ_API   int ZJ_SetCameraSwitchCB(

ZJ_PFUN_CAMERA_SWITCH   pfunCameraSwitch)

功能描述

设置摄像头开关回调接口,通过该回调接口通知上层关闭视频采集:停止侦测、停止编码、停止采集、停止采集音频、停止声音侦测

入参

pfunCameraSwitch:回调函数

返回值

0   表示正确,否则其他错误

 

 

4.3.2.3.2         回调函数定义

函数定义

typedef   int (*ZJ_PFUN_CAMERA_SWITCH)(

int   iState)

功能描述

设置摄像机打开关闭回调接口,告诉设备关闭音频、关闭视频

入参

iState0.   关闭;1.打开

返回值

0   表示正确,否则其他错误

 

4.3.2.4   设置摄像头PTZ回调接口

4.3.2.4.1         回调接口定义

接口定义

_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   表示正确,否则其他错误

 

4.3.2.4.2         回调函数定义

ZJ_PFUN_CAMERA_ONPTZ

函数定义

typedef   int (*ZJ_PFUN_CAMERA_ONPTZ)(

EN_ZJ_CAMERA_PTZ_CONTROL enPTZControl,

int   iSpeed,

int   iPTZStep)

功能描述

摄像头PTZ回调接口,告诉设备进行PTZ操作;

PTZ操作方法:速度,1~71最低,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   表示正确,否则其他错误

 

4.3.2.5   设置摄像头定速巡航回调接口

4.3.2.5.1         回调接口定义

接口定义

_ZJ_API   int ZJ_SetCameraCruiseCB(

ZJ_PFUN_CAMERA_CRUISE_START   pfunCruiseStart,

ZJ_PFUN_CAMERA_CRUISE_STOP   pfunCruiseStop)

功能描述

设置摄像头CRUISE定速巡航回调接口,通知上层完成巡航功能操作

入参

pfunCruiseStart:回调函数

pfunCruiseStop:回调函数

返回值

0   表示正确,否则其他错误

 

4.3.2.5.2         回调函数定义

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   表示正确,否则其他错误

 

4.3.2.6   设置录像状态回调接口

4.3.2.6.1         回调接口定义

接口定义

_ZJ_API   int ZJ_SetRecordStatusCB(

ZJ_PFUN_CAMERA_RECORD_STATUS   pfunRecordStatus)

功能描述

设置录像状态回调接口,通过该接口可以在上层做相应的提示

入参

pfunRecordStatus:回调函数

返回值

0   表示正确,否则其他错误

 

4.3.2.6.2         回调函数定义

ZJ_PFUN_CAMERA_RECORD_STATUS

函数定义

typedef   int (*ZJ_PFUN_CAMERA_RECORD_STATUS)(

int   iStatus)

功能描述

本地录像状态回调接口,告诉设备本地录像是否进行

入参

iStatus:0.未录像;1.录像

返回值

0   表示正确,否则其他错误

 

 

4.3.2.7   设置红外灯当前模式接口

接口定义

_ZJ_API   int ZJ_SetIRLedMode(int iLedMode)

功能描述

设置红外灯当前模式接口

入参

iLedMode:详见EN_ZJ_IRMODE

返回值

0   表示正确,否则其他错误

 

4.3.2.8   设置摄像机当前状态

接口定义

_ZJ_API   int ZJ_SetCameraStatus(int iStatus)

功能描述

设置摄像机当前状态,对于摄像机上层有物理开关按钮,设置摄像机关闭、打开状态

入参

iStatus:1.打开/0.关闭

返回值

0   表示正确,否则其他错误

 

4.3.2.9   开始摄像机录像

接口定义

_ZJ_API   int ZJ_StartRecord(int iStreamID)

功能描述

开始摄像机录像;   设备有触发开始录像和停止录像的接口,触发后开始录制,传入录制码流序号,设置序号0为主码流,1为次码流,当多种触发录制时,以主码流录制优先

入参

iStreamID视频流Id

返回值

0   表示正确,否则其他错误

 

4.3.2.10          停止当前录像

接口定义

_ZJ_API   int ZJ_StopRecord()

功能描述

停止当前录像;设备上层关闭录像,SDK收到该消息关闭所有录像

入参

返回值

0   表示正确,否则其他错误

 

4.3.2.11          设置摄像机水印设置回调接口

4.3.2.11.1    回调接口定义

接口定义

ZJ_API   int ZJ_SetOSDSettingCB(

ZJ_PFUN_CAMERA_OSDSETTING   pfunOSDSetting)

功能描述

设置摄像机水印设置回调接口

入参

pfunOSDSetting:回调函数

返回值

0   表示正确,否则其他错误

 

4.3.2.11.2    回调函数定义

ZJ_PFUN_CAMERA_OSDSETTING

函数定义

typedef   int (*ZJ_PFUN_CAMERA_OSDSETTING)(

int   iPosition,

char*   pcOSDName)

功能描述

摄像头OSD水印添加回调接口,告诉设备对当前码流增加水印 iPosition:1.左上;2.左下;3.右上;4.右下;0.默认

入参

iPosition:水印位置

pcOSDName:水印内容

返回值

0   表示正确,否则其他错误

 

4.3.2.12          设置媒体存储路径接口

接口定义

_ZJ_API   int ZJ_SetStoragePath(

char*   pcStoragePath)

功能描述

设置Cache存储路径接口,

pcStoragePath:存储路径,路径后不带'/''\'符号,为全路径;若设置路径为空表示没有SD卡;

入参

pcStoragePath:存储路径

返回值

0   表示正确,否则其他错误

 

4.3.2.13          设置声音文件存储路径接口

接口定义

_ZJ_API int ZJ_SetDevSoudFilePath(

char* pcStoragePath)

功能描述

设置声音文件存储路径接口,

pcStoragePath:存储路径,路径后不带'/''\'符号,为全路径;

入参

pcStoragePath:存储路径

返回值

0   表示正确,否则其他错误

 

4.3.2.14          设置SD卡操作回调接口

4.3.2.14.1    回调接口定义

接口定义

_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   表示正确,否则其他错误

 

4.3.2.14.2    回调函数定义

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

返回值

见枚举EN_TFCARD_STATUS

 

SD卡自检测回调

函数定义

typedef   int (*ZJ_PFUN_CAMERA_CHECKSDCARD)(

int*   piErrCode)

功能描述

SD卡自检测回调接口,通过该接口让SD卡进行检测修复,

入参

piErrCode:返回错误信息。 0 为无错误

返回值

0   表示正确,否则其他错误

 

 

 

4.3.2.15          切换前置摄像头回调接口

4.3.2.15.1    回调接口定义

接口定义

_ZJ_API   int ZJ_SetSwitchLenCB(

ZJ_PFUN_SWITCH_LEN   pfunSwitchLen)

功能描述

切换前置摄像头回调接口

入参

pfunSwitchLen:回调函数

返回值

0   表示正确,否则其他错误

 

4.3.2.15.2    回调函数定义

ZJ_PFUN_SWITCH_LEN

函数定义

typedef   int (*ZJ_PFUN_SWITCH_LEN)(int iLenId)

功能描述


入参

iLenId

返回值

0   表示正确,否则其他错误

 

4.3.2.16          摄像机宽动态开关回调接口

4.3.2.16.1    回调接口定义

接口定义

_ZJ_API   int ZJ_SetCamWdrOpenFlagCB(

ZJ_PFUN_SET_WIDE_DYNAMIC_CAM   pfunSetWideDynamicCam)

功能描述

摄像机宽动态开关回调接口

入参

pfunSetWideDynamicCam:回调函数

返回值

0   表示正确,否则其他错误

 

4.3.2.16.2    回调函数定义

ZJ_PFUN_SET_WIDE_DYNAMIC_CAM

函数定义

typedef   int (*ZJ_PFUN_SET_WIDE_DYNAMIC_CAM)(unsigned int uiOpenFlag)

功能描述


入参

uiOpenFlag:开启标志

返回值

0   表示正确,否则其他错误

 

4.3.2.17          自定义声音报警回调接口

4.3.2.17.1    回调接口定义

接口定义

_ZJ_API   int ZJ_SetCamAlarmSoundFileCB(

ZJ_PFUN_DELSOUNDFILE  pFunDelSoundFile,

ZJ_PFUN_GETSOUNDFILES  pFunGetSoudFiles)

功能描述

自定义声音报警回调接口

入参

pFunDelSoundFile:回调函数

pFunGetSoudFiles:回调函数

返回值

0   表示正确,否则其他错误

 

4.3.2.17.2    回调函数定义

ZJ_PFUN_DELSOUNDFILE

函数定义

typedef   int (*ZJ_PFUN_DELSOUNDFILE)(

unsigned   char *pucSoundName)

功能描述

删除声音文件

入参

pucSoundName:名字

返回值

0   表示正确,否则其他错误

 

4.3.2.17.3    回调函数定义

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   表示正确,否则其他错误

 

4.3.2.18          上报门铃状态

接口定义

_ZJ_API   int ZJ_SetDevCanUseStatus(unsigned int uiCanUseStatus);

功能描述

上报门铃状态

入参

uiCanUseStatus:网关门铃:0 外挂机不可用, 1 外挂机可用

返回值

0   表示正确,否则其他错误

4.3.2.19          中继设备回调接口

4.3.2.19.1    回调接口定义

接口定义

_ZJ_API   int ZJ_SetRelayDevAwakeCB(

ZJ_PFUN_SETRELAYDEVAWAKE   pfunSetRelayDevAwakeStatus)

功能描述

中继设备回调接口

入参

pfunSetRelayDevAwakeStatus:回调函数

返回值

0   表示正确,否则其他错误

4.3.2.19.2    回调函数定义

Ø  ZJ_PFUN_SETRELAYDEVAWAKE

函数定义

typedef   int (*ZJ_PFUN_SETRELAYDEVAWAKE)(

unsigned   int iAwakeStatus)

功能描述


入参

iAwakeStatus:唤醒状态

返回值

0   表示正确,否则其他错误

4.3.2.20          获取当前所有实时视频会话的TTL 时间

接口定义

_ZJ_API   int ZJ_GetCurSessionsTTLTime(ST_ZJ_SESSION_TTL_INFO astSessionTTLS[8],int   *piSessionCnt);

功能描述

获取当前所有实时视频会话的TTL 时间

入参

astSessionTTLS[8]:当前所有实时视频会话TTL时间数组

piSessionCnt: 会话数量

返回值

0   表示正确,否则其他错误

4.3.2.21          设置视频逐行扫描频率接口

4.3.2.21.1    回调接口定义

接口定义

_ZJ_API   int ZJ_SetCameraScanFrequeryCB(

ZJ_PFUN_CAMERA_SCANFREQUERY   pFuncScanFrequery)

功能描述

设置视频逐行扫描频率

入参

pFuncScanFrequery:回调函数

返回值

0   表示正确,否则其他错误

4.3.2.21.2    回调函数定义

Ø  ZJ_PFUN_CAMERA_SCANFREQUERY

函数定义

typedef   int (*ZJ_PFUN_CAMERA_SCANFREQUERY)(

unsigned   int uiScanFrequery)

功能描述

摄像头扫描间隔设置回调接口,告诉设备要以当前设置的频率去扫描

入参

uiScanFrequery:扫描频率

返回值

0   表示正确,否则其他错误

 

4.3.3  双向语音相关接口

4.3.3.1   语音对讲接收回调接口

4.3.3.1.1         回调接口定义

接口定义

_ZJ_API   int ZJ_SetMediaToPlayCB(

ZJ_PFUN_CAMERA_MEDIA_TOPLAY   pfunMediaToPlay)

功能描述

语音对讲接收回调接口;告诉设备有一个媒体流传入,如果当前喇叭没有在播,则返回可播放,设备通过接口获取数据播放

入参

pfunMediaToPlay:回调函数

返回值

0   表示正确,否则其他错误

 

4.3.3.1.2         回调函数定义

摄像头逆向流传入回调接口

函数定义

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   表示正确,否则其他错误

 

4.3.3.2   通过句柄获取音频参数

接口定义

_ZJ_API   int ZJ_GetMediaAudioParam(

ZJ_HANDLE   hHandle,

ST_ZJ_AUDIO_PARAM*   pstAudioParam)

功能描述

通过句柄获取音频参数

入参

hHandle:句柄

pstAudioParam:语音参数,详见ST_ZJ_AUDIO_PARAM

返回值

0   表示正确,否则其他错误

 

4.3.3.3   通过句柄获取音频数据

接口定义

_ZJ_API   int ZJ_GtMediaAudioData(

ZJ_HANDLE   hHandle,

unsigned   char** ppucDataBuf,

int*   iDataLen,

unsigned   int* puiTimestamp)

功能描述

通过句柄获取音频数据,语音长度BUFFER,数据长度,时间戳

入参

hHandle:句柄

ppucDataBuf:语音数据

iDataLen:语音长度

puiTimestamp:时间戳

返回值

0   表示正确,否则其他错误

 

4.3.4  音频采集编码相关接口

4.3.4.1   设置音频编码参数

接口定义

_ZJ_API   int ZJ_SetAudioEncParm(

ST_ZJ_AUDIO_PARAM*   pstAudioParam)

功能描述

设置音频编码参数

入参

pstAudioParam:音频参数,详见ST_ZJ_AUDIO_PARAM

返回值

0   表示正确,否则其他错误

 

4.3.4.2   写音频数据

接口定义

_ZJ_API   int ZJ_Audio_WriteFrame(

unsigned   char* pucFrame,

int   iLen,

unsigned   int uiTimestamp)

功能描述

写音频数据

入参

pucFrame:写入的音频数据

iLen:写入的音视频数据长度

uiTimestamp:写入是的音视频时间戳

返回值

0   表示正确,否则其他错误

 

4.3.4.3   重新设置音频编码参数

接口定义

_ZJ_API int ZJ_Audio_ResetParam(

ST_ZJ_AUDIO_PARAM* pstAudioParam)

功能描述

重新设置音频编码参数

入参

pstAudioParam:音频参数,详见ST_ZJ_AUDIO_PARAM

返回值

0   表示正确,否则其他错误

 

4.3.4.4   设置音频编码开关回调接口

4.3.4.4.1         回调接口定义

接口定义

_ZJ_API   int ZJ_SetAudioEncSwitchCB(

ZJ_PFUN_AUDIO_SWITCH   pfunAudioSwitch)

功能描述

设置音频编码开关回调接口,通过该接口控制音频是否编码

入参

pfunAudioSwitch:回调函数

返回值

0   表示正确,否则其他错误

 

4.3.4.4.2         回调函数定义

音频编码开关回调

函数定义

typedef   int (*ZJ_PFUN_AUDIO_SWITCH)(int iState)

功能描述

音频编码开关回调,音频开始编码/关闭编码

入参

iState:0. 结束,1.开始

返回值

0   表示正确,否则其他错误

 

4.3.4.5   设置音频采集音量调节

4.3.4.5.1         回调接口定义

接口定义

_ZJ_API   int ZJ_SetAudioVolumnCB(

ZJ_PFUN_AUDIO_VOLUMN_ADJUST   pfunAudioVolumnAdjust)

功能描述

设置音频播放音量调节接口,通过该接口调节音量

入参

pfunAudioVolumnAdjust:回调函数

返回值

0   表示正确,否则其他错误

4.3.4.5.2         回调函数定义

设置音频采集音量调节

函数定义

typedef   int (*ZJ_PFUN_AUDIO_VOLUMN_ADJUST)(int iVolumn)

功能描述

设置音频播放音量调节接口   通过该接口调节音量

入参

iVolumn:0~100。 0为静音;100为最大声音

返回值

0   表示正确,否则其他错误

 

4.3.4.6   设置摄像机声音音量

接口定义

_ZJ_API   int ZJ_SetAudioVolumn(int iVolumn)

功能描述

设置摄像机声音音量

入参

iVolumn: 0~10级。 0为静音;10为最大声音

返回值

0   表示正确,否则其他错误

 

4.3.4.7   设置采集声音音量开关

 

接口定义

_ZJ_API int ZJ_SetCamerMicOpenFlag(

int iOpenFlag)

功能描述

设置摄像机采集声音音量开关

入参

iVolumn: 0~10级。 0为静音;10为最大声音

返回值

0   表示正确,否则其他错误

4.3.4.8   获取采集声音状态

 

接口定义

_ZJ_API int ZJ_SetCamerMicOpenFlag()

功能描述

获取摄像机采集声音音量

入参

返回值

音量,否则其他错误

 

4.3.5  视频采集编码相关接口

4.3.5.1   设置码流编码参数

接口定义

_ZJ_API int ZJ_SetVideoEncParam(

int iStreamID, 

ST_ZJ_VIDEO_PARAM* pstVideoParam)

功能描述

设置码流编码参数

入参

iStreamID:码流id

pstVideoParam:圆心半径信息,详见:ST_ZJ_VIDEO_PARAM

返回值

0   表示正确,否则其他错误

 

4.3.5.2   设置码流广角镜头圆心半径信息

 

接口定义

_ZJ_API   int ZJ_SetStreamWideAngleLensInfo(

int   iStreamID,

ST_ZJ_VIDEO_CIRCLE*   pstCircleInfo)

功能描述

设置码流广角镜头圆心半径信息

入参

iStreamID:码流id

pstCircleInfo:圆心半径信息,详见:ST_ZJ_VIDEO_CIRCLE

返回值

0   表示正确,否则其他错误

 

4.3.5.3   设置码流广角镜头扭曲度信息

接口定义

_ZJ_API   int ZJ_SetStreamWideAngleLensDistortion(

int   iStreamID,

ST_ZJ_VIDEO_DISTORTION*   pstDistortionInfo)

功能描述

设置码流广角镜头扭曲度信息

入参

iStreamID:码流id

pstDistortionInfo:扭曲度信息,详见:ST_ZJ_VIDEO_DISTORTION

返回值

0   表示正确,否则其他错误

 

4.3.5.4   设置码流视频编码参数

接口定义

_ZJ_API   int ZJ_SetVideoEncType(

int   iStreamID,

ST_ZJ_VIDEO_PARAM*   pstVideoParam)

功能描述

设置码流广角镜头扭曲度信息

入参

iStreamID:码流id

pstVideoParam:视频参数,详见ST_ZJ_VIDEO_PARAM

返回值

0   表示正确,否则其他错误

 

4.3.5.5   写入码流接口(以Frame帧写入)

接口定义

_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   表示正确,否则其他错误

 

4.3.5.6   写入码流接口(以NAL格式写入)

接口定义

_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   表示正确,否则其他错误

 

4.3.5.7   重置编码参数

接口定义

_ZJ_API   int ZJ_Video_ResetParam(

int   iSteramID,

ST_ZJ_VIDEO_PARAM*   pstVideoParam)

功能描述

码流写入接口,以NAL格式包的数据来写

入参

iStreamID:码流id

pstVideoParam:视频参数,详见:ST_ZJ_VIDEO_PARAM

返回值

0   表示正确,否则其他错误

 

4.3.5.8   设置视频编码开关回调接口

4.3.5.8.1         回调接口定义

接口定义

_ZJ_API   int ZJ_SetVideoEncSwitchCB(

ZJ_PFUN_VIDEO_SWITCH   pfunVideoSwitch)

功能描述

设置视频编码开关回调

入参

pfunVideoSwitch:回调函数

返回值

0   表示正确,否则其他错误

 

4.3.5.8.2         回调函数定义

视频编码开关回调

函数定义

typedef   int (*ZJ_PFUN_VIDEO_SWITCH)(

int   iStreamID,

int   iState)

功能描述

视频编码开关回调,视频开始编码/关闭编码

入参

iStreamID:码流id

iState:0. 结束,1.开始

返回值

0   表示正确,否则其他错误

 

4.3.5.9   设置视频编码参数调接口

4.3.5.9.1         回调接口定义

接口定义

_ZJ_API int ZJ_SetVideoEncParamCB(

ZJ_PFUN_SET_VIDEO_PARM pfunSetVideoParm)

功能描述

设置视频编码参数回调

入参

pfunSetVideoParm:回调函数

返回值

0   表示正确,否则其他错误

 

4.3.5.9.2         回调函数定义

视频编码开关回调

函数定义

typedef int (*ZJ_PFUN_SET_VIDEO_PARM)(

int iStreamID,

ST_ZJ_VIDEO_PARAM *pstVideoParm)

功能描述

这是设置视频采集参数的回调函数

入参

iStreamID:码流id

pstVideoParm:视频参数,详见:ST_ZJ_VIDEO_PARAM

返回值

0   表示正确,否则其他错误

 

 

4.3.5.10          强制编码I帧回调接口

4.3.5.10.1    回调接口定义

接口定义

_ZJ_API   int ZJ_SetVideoNeedIFrameCB(

ZJ_PFUN_VIDEO_NEEDIFRAME   pfunVideoNeedIFrame)

功能描述

编码I帧回调接口,通过该接口通知编码器编一个I帧写下来

入参

pfunVideoNeedIFrame:回调函数

返回值

0   表示正确,否则其他错误

 

4.3.5.10.2    回调函数定义

函数定义

typedef   int (*ZJ_PFUN_VIDEO_NEEDIFRAME)(

int   iStreamID,

unsigned   int uiKeyQuality)

功能描述

流媒体需要一个I帧回调接口,告知设备当前流需要一个关键帧

入参

iStreamID:码流id

uiKeyQuality:关键帧编码质量参数,

详见enum_ZJ_KEYFRAME_QUALITY

返回值

0   表示正确,否则其他错误

 

 

4.3.5.11          设置获取图片回调接口

4.3.5.11.1    回调接口定义

接口定义

_ZJ_API   int ZJ_Video_SetGetJpegCB(

ZJ_PFUN_VIDEO_GETJPEG   pfunVideoGetJpeg)

功能描述

设置获取图片回调接口

入参

pfunVideoGetJpeg:回调函数

返回值

0   表示正确,否则其他错误

 

4.3.5.11.2    回调函数定义

函数定义

typedef   int (*ZJ_PFUN_VIDEO_GETJPEG)(

EN_ZJ_PICTURE_TYPE   enPicType,

unsigned   char** ppucJpegBuf)

功能描述

设置抓取图片回调接口,告诉设备抓取一幅实时画面的图片, 获取对应尺寸的图片,并存入到传入的空间中

入参

enPicType:图片类型,详见EN_ZJ_PICTURE_TYPE

ppucJpegBuf:图片数据(需要开辟内存空间,SDK不做释放操作只使用)

返回值

图片大小,否则其他错误

 

 

 

 

4.4    设备IoT事件能力相关接口

4.4.1  添加IoT设备

4.4.1.1.1         回调接口定义

接口定义

_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设置,并设置相关回调接口

入参

uiAIIoTTypeIoT类型,详见:EN_ZJ_AIIOT_TYPE

lluAIIoTID:摄像机ID(一般为0

pfunAIIoTStart回调函数

pfunAIIoTStop回调函数

pfunAIIoTGetInput回调函数

pfunAIIoTOutPut回调函数

pfunAIIoTSetProp回调函数

pfunAIIotCheckEvent回调函数

返回值

0   表示正确,否则其他错误

4.4.1.1.2         回调函数定义

Ø  ZJ_PFUN_AIIOT_START

接口定义

typedef int (*ZJ_PFUN_AIIOT_START)(

unsigned int uiAIIoTType,

unsigned long long uiAIIoTID)

功能描述

IoT设备开始工作回调接口, 通过该接口启动IoT设备信号采集

入参

uiAIIoTTypeIoT类型,详见: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 设备停止工作回调接口, 通过该接口通知设备停止信号采集

入参

uiAIIoTTypeIoT类型,详见: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 只使用, 不释放

入参

uiAIIoTTypeIoT类型,详见: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设备;

入参

uiAIIoTTypeIoT类型,详见: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字符串传递

入参

uiAIIoTTypeIoT类型,详见:EN_ZJ_AIIOT_TYPE

uiAIIoTID:摄像机ID(一般为0

pstPropJSON字符串

返回值

0   表示正确,否则其他错误

 

Ø  ZJ_PFUN_AIIOT_CHECKEVENT

接口定义

typedef int (*ZJ_PFUN_AIIOT_CHECKEVENT)(

unsigned int uiAIIoTType, 

unsigned long long uiAIIoTID, 

unsigned char* pSignalValue)

功能描述

检测当前输入信号对应的事件类型回调接口,通过该接口,判定当前输入信号的事件类型,以返回值返回;

入参

uiAIIoTTypeIoT类型,详见:EN_ZJ_AIIOT_TYPE

uiAIIoTID:摄像机ID(一般为0

pSignalValue:信号值

返回值

0   表示正确,否则其他错误

 

4.4.2  设置IoT设备的默认属性接口

接口定义

_ZJ_API int ZJ_SetIoTDefaultProp(

unsigned int uiAIIoTType, 

unsigned long long lluAIIoTID, 

char* pcProp)

功能描述

设置IoT设备的默认属性,IoT设备属性以一个JSON字符串传入

入参

uiAIIoTTypeIoT类型,详见:EN_ZJ_AIIOT_TYPE

uiAIIoTID:摄像机ID(一般为0

pcPropJSON字符串

返回值

0   表示正确,否则其他错误

 

4.4.3  IOT设备输入信号接口

接口定义

_ZJ_API int ZJ_IoTInPut(

unsigned int uiAIIoTType,

unsigned long long lluAIIoTID, 

char* pcInPut)

功能描述

IoT设备输入信号接口输入信号类型和对应的Json字符串作为信号描述

入参

uiAIIoTTypeIoT类型,详见:EN_ZJ_AIIOT_TYPE

uiAIIoTID:摄像机ID(一般为0

pcInPutJSON字符串

返回值

0   表示正确,否则其他错误

 

4.4.4  IOT设备事件输入接口

接口定义

_ZJ_API int ZJ_IoTEventInPut(

unsigned int uiAIIoTType, 

unsigned long long lluAIIoTID, 

int iEvent)

功能描述

IoT设备事件输入接口,IoT设备为事件单一设备,触发时直接根据属性输出事件

入参

uiAIIoTTypeIoT类型,详见:EN_ZJ_AIIOT_TYPE

uiAIIoTID:摄像机ID(一般为0

iEvent:见EN_ZJ_MOTION_EVENT_TYPE

返回值

0   表示正确,否则其他错误

 

4.4.5  设置默认录像属性接口

接口定义

_ZJ_API int ZJ_SetDefaultRecordProp(

unsigned int uiLoopFlag,

unsigned int  uiFullFlag,

unsigned int uiStreamId)

功能描述

设置默认录像的属性 或者 调用 ZJ_SetIoTDefaultProp 设置

入参

uiLoopFlag   循环录制标志

uiFullFlag:录制策略,1全天录制,0按策略录制

uiStreamId:录制码流选择。0.主码流;1.次码流

返回值

0   表示正确,否则其他错误

 

4.4.6  设置本地抓图默认属性接口

接口定义

_ZJ_API int ZJ_SetDefaultSnapProp(

unsigned int uiLoopFlag,

unsigned int uiFullFlag,

unsigned int uiInterval,

unsigned int uiPicType)

功能描述

设置本地抓图的 默认属性

入参

uiLoopFlag:循环抓图标志

uiFullFlag:完整抓图标志

uiInterval:抓图间隔

uiPicType:抓图类型

返回值

0   表示正确,否则其他错误

4.4.7  设置当前iot设备的工作状态

接口定义

_ZJ_API   int ZJ_SetInIotWorkStatus(unsigned int    uiAotType,unsigned long long lluAotId,int iWorkStatus);

功能描述

设置当前iot设备的工作状态 

入参

uiAotTypeiot类型

lluAotIdiotId

iWorkStatus0 关闭, 1 工作

返回值

0   表示正确,否则其他错误

 

4.4.8  IOT设备人脸列表输入接口

接口定义

_ZJ_API   void ZJ_SetAiPicEvent(unsigned int uiAIIoTType, unsigned long long   lluAIIoTID,unsigned int uiEvent,ST_ZJ_AIPIC_EVENT_INFO *pstAiPicEventInfo);

功能描述

检测到人脸列表   调用这个不用调用 ZJ_IoTEventInPut

入参

uiAIIoTTypeIoT类型,详见:EN_ZJ_AIIOT_TYPE

uiAIIoTID:摄像机ID(一般为0

uiEvent:AI 事件类型,详见EN_ZJ_MOTION_EVENT_TYPE

pstAiPicEventInfo:人脸列表

返回值

0   表示正确,否则其他错误

 

4.4.9  设置人脸回调接口

接口定义

_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表示正确,否则其他错误

 

4.4.10 设置默认的IOT策略

接口定义

_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策略

入参

uiIotTypeiot类型

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表示正确,否则其他错误

 

4.4.11  设置人脸自动录入功能

接口定义

_ZJ_API   int ZJ_SetAiAutoInputCb(

ZJ_PFUN_SETAUTOINPUTFLAG   pFunSetAutoInputFlag);

功能描述

打开人脸自动录入功能,打开后,发现默认人会自动创建标签和样本

入参

pFunSetAutoInputFlag:回调函数,通知自动录入是否打开

返回值

0   表示正确,否则其他错误

 

4.4.12  删除标签信息

接口定义

_ZJ_API   int ZJ_DelAILabel(unsigned char *pucLabelId);

功能描述

当固件创建标签失败后,调用改接口同步sdk

入参

pucLabelId:删除的标签号

返回值

0   表示正确,否则其他错误

 

4.4.13  删除标签信息

接口定义

_ZJ_API   int ZJ_DelFacePicFromLabel(unsigned char *pucLabelId,unsigned char   *pucFileId);

功能描述

当固件添加样板失败后,调用改接口同步sdk

入参

pucLabelId:标签号

pucFileId:待删除的样本号

返回值

0   表示正确,否则其他错误

 

4.4.14  JSON参数参考

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"}

 

 

 

 

4.5    发送与接收自定义消息接口

4.5.1  发送自定义消息接口

接口定义

_ZJ_API   int ZJ_SendCustomData(

const   unsigned char* pucPeerID,

unsigned   char* pucData,

int   iLen)

功能描述

发送自定义消息

入参

pucPeerID对方的标识号

pucData:发送的数据

iLen:发送数据长度

返回值

0   表示正确,否则其他错误

4.5.2  接收自定义消息回调接口

4.5.2.1   回调接口定义

接口定义

_ZJ_API   int ZJ_SetRecvCustomDataFunc(

ZJ_PFUN_DEVICE_ONRECV_CUSTOMDATA   pFuncOnRecvCustomData)

功能描述

接收自定义消息回调

入参

pFuncOnRecvCustomData:回调函数,

详见ZJ_PFUN_DEVICE_ONRECV_CUSTOMDATA

返回值

0   表示正确,否则其他错误

 

4.5.2.2   回调函数定义

函数定义

typedef int   (*ZJ_PFUN_DEVICE_RECVCUSTOMDATA)(

const   unsigned char* pucPeerID,

unsigned   char* pucData,

int iLen)

功能描述

接收自定义消息

入参

pucPeerID对方的标识号

pucData:接收的数据

iLen:接收数据长度

返回值

0   表示正确,否则其他错误

 

4.6    网络相关接口

4.6.1  设置设备网络状态信息

接口定义

_ZJ_API   int ZJ_SetNetWorkType (

EN_ZJ_NETWORK_TYPE   enNetType)

功能描述

设置设备网络状态信息,主动触发SDK对网络变化的响应,让响应更加及时

入参

enNetType:详见EN_ZJ_NETWORK_TYPE

返回值

0   表示正确,否则其他错误

 

4.6.2  设置获取WIFI列表和设置WIFI的回调函数

4.6.2.1   回调接口定义

接口定义

_ZJ_API   int ZJ_SetWifiCB(

ZJ_PFUN_DEVICE_SETWIFI   pfuncSetWifi,

ZJ_PFUN_DEVICE_GETWIFI   pfuncGetWifi,

ZJ_PFUN_DEVICE_GETNETINFO pfunGetNetInfo

)

功能描述

接收自定义消息回调

入参

pfuncSetWifi:回调函数

pfuncGetWifi:回调函数

pfunGetNetInfo:回调函数

返回值

0   表示正确,否则其他错误

 

4.6.2.2   回调函数定义

Ø  设置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

pcSSIDSSID信息

pcPwd:密码

iEncrytType:加密类型,0.无,1.WEP2.WPA-PSK3.WPA-PSK/WPA2-PSK4.WPA2-PSK5.其他

返回值

0   表示正确,否则其他错误

 

Ø  获取WIFI列表回调接口

函数定义

typedef   int (*ZJ_PFUN_DEVICE_GETWIFI)(

ST_ZJ_WIFI_INFO   stWifiInfo[16],

unsigned   int *puiWifiCount)

功能描述

获取WIFI列表回调接口,获取信号最强的,最多16WIFI列表

入参

stWifiInfowifi信息列表,详见ST_ZJ_WIFI_INFO

puiWifiCount:实际获取到的wifi数量

返回值

0   表示正确,否则其他错误

 

Ø  获取当前网络详情

函数定义

typedef int (*ZJ_PFUN_DEVICE_GETNETINFO)(

ST_ZJ_NETWORK_INFO* pstNetInfo)

功能描述

获取当前网络详情

入参

pstNetInfo:网络详情,详见:ST_ZJ_NETWORK_INFO

返回值

0   表示正确,否则其他错误

 

4.6.3  设置设备网络错误状态

接口定义

_ZJ_API int ZJ_SetNetErrStatus(

EN_ZJ_NETWORK_ERR_STATUS enNetWorkErrStatus)

功能描述

设置网络错误状态,当网络发生错误时,通知错误类型

入参

enNetWorkErrStatus

网络状态,详见:EN_ZJ_NETWORK_ERR_STATUS

返回值

0   表示正确,否则其他错误

 

4.6.4  设置WiFi配网能力

接口定义

_ZJ_API   int ZJ_SetWifiSetAbility(

unsigned   int uiSetWifiAbility)

功能描述

WiFi配置能力设置,根据EN_ZJ_SETWIFI_ABILITY按位与表示支持多种配网模式

入参

uiSetWifiAbility:详见EN_ZJ_SETWIFI_ABILITY

返回值

0   表示正确,否则其他错误

 

4.6.5  设置二维码配网信息

接口定义

_ZJ_API   int ZJ_SetQRCodeString(

unsigned   char *pstrQRCode)

功能描述

二维码配网流程,上层识别到二维码,将对应的字符串设置下来

入参

pstrQRCode:二维码信息

返回值

0   表示正确,否则其他错误

4.6.6  设置声波配网信息

接口定义

_ZJ_API   int ZJ_SetVoiceString(

unsigned   char* pstrVoiceString)

功能描述

声波配网,将上层声波识别的字符串设置下来

入参

pstrVoiceString:声波识别的信息

返回值

0   表示正确,否则其他错误

4.6.7  启用无感配网

接口定义

_ZJ_API   int ZJ_SetAutoConnStatus(int iConnectFlag);

功能描述

启用无感配网

入参

iConnectFlag1 开启, 0 关闭

返回值

0   表示正确,否则其他错误

4.6.8  无感配网回调接口

接口定义

_ZJ_API   int ZJ_SetAutoConnSSIDInfoCBFunc(ZJ_PFUN_DEVICE_SETWIFI pFunSetAutoConnSsid);

功能描述

无感配网回调接口

入参

pFunSetAutoConnSsid:回调接口

返回值

0   表示正确,否则其他错误

 

 

4.7    固件升级相关接口

OTA升级流程

1、设备注册ZJ_SetOtaCBFuncs相关函数。

2SDK收到升级请求,调用pFunNewVersionCb回调函数通知设备有新版固件需要升级,设备需要准备充足的资源。

3、设备准备完成调用ZJ_StartUpdate接口通知SDK开始升级。

4SDK调用pFunVersonDataDownCb回调接口将升级包数据传给设备,设备应做好缓存。

5、升级包数据下载完成,SDK调用pFunCoverImageNotice回调函数,通知设备升级包是否校验通过,校验通过设备进行覆盖升级,否则删除缓存数据重启设备。

6、设备通过ZJ_SetBurnningProgress接口上报烧录进度。

7、烧录成功重启设备。

4.7.1  设置设备升级能力

接口定义

_ZJ_API int ZJ_SetOTAAbility(

unsigned int uiOTAAbility)

功能描述

设置OTA升级能力,具备多种能力按位与

入参

uiOTAAbility:能力,详见:EN_ZJ_OTA_ABILITY

返回值

0   表示正确,否则其他错误

 

4.7.2  设置设备升级状态回调函数

4.7.2.1   回调接口定义

 

接口定义

_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   表示正确,否则其他错误

 

4.7.2.2   回调函数定义

Ø  设备版本状态回调接口

函数定义

typedef int (*ZJ_PFUN_NEWVERSON_NOTICE)(

unsigned char *pucNewVersion,

unsigned char *pucCrcInf,

unsigned int uiFileSize)

功能描述

设备版本状态回调接口,告诉设备当前版本升级状态

入参

pucNewVersion:版本信息

pucCrcInfCrc校验信息

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   表示正确,否则其他错误

 

4.7.3  设备开始升级接口

接口定义

_ZJ_API int ZJ_SetBurnningProgress(

unsigned int uiPercentage)

功能描述

版本下载更新后汇报烧录 进度

入参

uiPercentage:烧录进度

返回值

0   表示正确,否则其他错误

 

4.7.4  设备开始升级状态

接口定义

_ZJ_API   int ZJ_StartUpdate()

功能描述

设备开始升级状态,设备上报平台,进入升级状态;   当返回进入升级中状态后,启动升级进程,开始升级

入参

返回值

0   表示正确,否则其他错误

 

4.7.5  设置OTA升级能力

接口定义

_ZJ_API   int ZJ_SetOTAAbility(

unsigned   int uiOTAAbility)

功能描述

设置OTA升级能力,具备多种能力按位与

入参

uiOTAAbility:升级方式,详见EN_ZJ_OTA_ABILITY

返回值

0   表示正确,否则其他错误

 

4.8    设备电源相关接口

4.8.1  设置设备电源类型

接口定义

_ZJ_API int ZJ_SetEnergySavingType(

unsigned int iEngeryType)

功能描述

设置设备电源类型

入参

iEngeryType0.不带电池;1.带电池;2.太阳能电池

返回值

0   表示正确,否则其他错误

 

4.8.2  设置设备唤醒能力

接口定义

_ZJ_API int ZJ_SetAwakeAbility(

unsigned int uiAwakeAbility)

功能描述

设置设备的唤醒能力

入参

uiAwakeAbility:设备唤醒能力类型,详见EN_ZJ_AWAKE_ABILITY

返回值

0   表示正确,否则其他错误

 

 

4.8.3  设置设备当前是否充电(仅对电池类设备)

接口定义

_ZJ_API   int ZJ_SetPowerSupply(unsigned int uiSupplyFlag)

功能描述

设置设备当前是否充电;(仅对电池类设备)

入参

uiSupplyFlag0.未充电,1.充电

返回值

0   表示正确,否则其他错误

 

4.8.4  设置进入休眠回调接口

4.8.4.1   回调接口定义

接口定义

_ZJ_API   int ZJ_SetStartSleepCb(

ZJ_PFUN_STARTSLEEP   pfuncStartSleep)

功能描述

设置进入休眠回调函数

入参

pfuncStartSleep:回调函数

返回值

0   表示正确,否则其他错误

 

4.8.4.2   回调函数定义

Ø  设备进入休眠回调接口

函数定义

typedef int (*ZJ_PFUN_STARTSLEEP)(

int iWaitSecond)

功能描述

设备进入休眠回调接口,设备在该接口,收到等待秒数后,进入休眠状态

入参

iWaitSecond-1.为不可以进入休眠; 0.立刻进入休眠; > 0为等待对应的秒数后进入休眠

返回值

0   表示正确,否则其他错误

 

4.8.5  设置设备当前电池余量

接口定义

_ZJ_API   int ZJ_SetPowerLevel(unsigned int uiPowerLevel)

功能描述

设置设备当前电池余量

入参

uiPowerLevel:电池余量

返回值

0   表示正确,否则其他错误

 

4.9    日志相关接口

4.9.1  设置调试模式

接口定义

_ZJ_API   int ZJ_SetDebugMode(

int   iDebugMode)

功能描述

设置调试模式

入参

iDebugMode0.关闭print 1.打开print

返回值

0   表示正确,否则其他错误

4.9.2  设置日志等级

接口定义

_ZJ_API   int ZJ_SetDebugLevel(

int   iLevel)

功能描述

设置日志等级

入参

iLevel:日志输出等级,详见EN_ZJ_LOG_LVL

返回值

0   表示正确,否则其他错误

 

4.9.3  日志输出

接口定义

_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   表示正确,否则其他错误

 

4.9.4  日志打开标志

接口定义

_ZJ_API   int Zj_SetLogOpenFlag(int iOpenFlag)

功能描述

日志打开标志

入参

iOpenFlag:打开标志

返回值

0   表示正确,否则其他错误

4.9.5  通知设备开始收集日志

4.9.5.1   回调接口定义

接口定义

ZJ_API   int ZJ_SetDevCollectLogFilesFunc(

ZJ_PFUN_COLLECTLOGFILES   pFunCollectLogFiles)

功能描述

通知设备开始收集日志

入参

pFunCollectLogFiles:回调函数

返回值

0   表示正确,否则其他错误

4.9.5.2   回调函数定义

Ø  日志收集回调接口

函数定义

typedef int (*ZJ_PFUN_COLLECTLOGFILES)(

unsigned char *pucPeerId,

unsigned int iSessionId,

unsigned char *pcDesInfo)

功能描述

日志收集回调接口,通过该接口将所有日志打包成pcDesInfo文件

入参

pucPeerId对方的标识号

iSessionId:会话ID

pcDesInfo:日志文件

返回值

0   表示正确,否则其他错误

4.9.6  日志搜集状态设置接口

接口定义

_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   表示正确,否则其他错误

 

 

4.10      AI相关接口

4.10.1 设置是否支持AI能力

接口定义

_ZJ_API int ZJ_SetDevAiFaceAbility(int   iAiFaceAbility)

功能描述

设置设备是否支持AI能力

入参

iAiFaceAbility0 不支持;1 支持

返回值

0 表示正确,否则其他错误

 

4.10.2 设置AI底库图片数量最大值

接口定义

_ZJ_API int ZJ_SetAiMaxPicNum(int   iAiMaxPicNum)

功能描述

设置AI底库图片数量最大值

入参

iAiMaxPicNum:最大底库图片数量上限  

返回值

0 表示正确,否则其他错误

 

4.10.3 设置当前AI底库图片数量

接口定义

_ZJ_API int ZJ_SetAiCurPicNum(int   iAiCurPicNum)

功能描述

设置当前AI底库图片数量

入参

iAiCurPicNum:当前设备底库图片数量  

返回值

0 表示正确,否则其他错误

 

4.11      在线升级新SDK时使用,三方迁移

4.11.1 第三方厂商打开录像文件回调接口

4.11.1.1          回调接口定义

接口定义

_ZJ_API   int ZJ_ThirdOpenFile(ZJ_PFUN_OPENFILE pfunOpenFile);

功能描述

第三方厂商打开录像文件回调

入参

pfunOpenFile:回调函数

返回值

0   表示正确,否则其他错误

 

4.11.1.2          回调函数定义

Ø  第三方厂商打开录像文件回调

函数定义

typedef   ZJ_HANDLE (*ZJ_PFUN_OPENFILE)(unsigned char *pucFilePath,unsigned int   *puiMaxFrameSize);

功能描述

第三厂商打开录像文件回调

入参

pucFilePath:文件路径

puiMaxFrameSize:最大帧长度

返回值

文件句柄

 

4.11.2 第三方厂商关闭录像文件回调接口

4.11.2.1          回调接口定义

接口定义

_ZJ_API   int ZJ_ThirdCloseFile(ZJ_PFUN_CLOSEFILE pfunCloseFile);

功能描述

第三方厂商关闭录像文件回调

入参

pfunCloseFile:回调函数

返回值

0   表示正确,否则其他错误

 

4.11.2.2          回调函数定义

Ø  第三方厂商关闭录像文件回调

函数定义

typedef   int (*ZJ_PFUN_CLOSEFILE)(ZJ_HANDLE hHandle);

功能描述

第三厂商关闭录像文件回调

入参

hHandle:文件句柄

返回值

0   表示正确,否则其他错误

 

4.11.3 读取第三方厂商一帧录像数据回调接口

4.11.3.1          回调接口定义

接口定义

_ZJ_API   int ZJ_ThirdReadData(ZJ_PFUN_THIRDREADFRAME pfunReadFrame);

功能描述

读取第三方厂商一帧录像数据回调

入参

pfunReadFrame:回调函数

返回值

0   表示正确,否则其他错误

 

4.11.3.2          回调函数定义

Ø  读取第三方厂商一帧录像数据回调

函数定义

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时间戳

返回值

读取的数据长度

 

4.11.4 跳转到第三方厂商指定录像时间回调接口

4.11.4.1          回调接口定义

接口定义

_ZJ_API   int ZJ_ThirdSeekTime(ZJ_PFUN_SEEKBYTIMESTAMP pfunSeekTime);

功能描述

跳转第三方厂商录像时间回调

入参

pfunSeekTime:回调函数

返回值

0   表示正确,否则其他错误

 

4.11.4.2          回调函数定义

Ø  跳转第三方厂商录像时间回调

函数定义

typedef   int (*ZJ_PFUN_SEEKBYTIMESTAMP)(ZJ_HANDLE hHandle, unsigned int uiSeekTime,   unsigned int *puiSeekTimeStamp);

功能描述

读取第三方厂商一帧录像数据回调

入参

hHandle:文件句柄

uiSeekTime跳转时间

puiSeekTimeStamp跳转时间戳

返回值

0   表示正确,否则其他错误

 

4.11.5 获取第三方厂商录像音视频参数回调接口

4.11.5.1          回调接口定义

接口定义

_ZJ_API   int ZJ_ThirdGetFileDes(ZJ_PFUN_READFILEDES pfunGetFileDes);

功能描述

获取第三方录像音视频参数

入参

pfunGetFileDes:回调函数

返回值

0   表示正确,否则其他错误

 

4.11.5.2          回调函数定义

Ø  获取第三方录像音视频参数

函数定义

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   表示正确,否则其他错误

 

4.11.6  第三方厂商添加录像日期

接口定义

_ZJ_API   int ZJ_RdAddCompatibleDate(unsigned char *pucDate,int iCamId);

功能描述

第三方厂商添加录像日期

入参

pucDate:日期

iCamId镜头Id

返回值

0   表示正确,否则其他错误

 

4.11.7  第三方厂商添加录像文件

接口定义

_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   表示正确,否则其他错误

 

4.11.8  第三方厂商添加事件日期

接口定义

_ZJ_API   int ZJ_EventAddCompatibleDate(unsigned char *pucDate);

功能描述

第三方厂商添加事件日期

入参

pucDate:日期

返回值

0   表示正确,否则其他错误

 

4.11.9  第三方厂商添加事件文件

接口定义

_ZJ_API   int ZJ_EventAddCompatibleFile(unsigned char *pucDate,time_t   cEventTime,unsigned int uiDuration,unsigned int uiIotType,unsigned int   uiEventId);

功能描述

第三方厂商添加事件

入参

pucDate:日期

cEventTime事件发生时间

uiDuration时长

uiIotTypeiot类型

uiEventId事件Id

返回值

0   表示正确,否则其他错误

 

 

4.12      获取默认时间

如果厂商没有实现NTP服务,可以使用以下SDK提供的接口。

4.12.1  获取ZJ_SetBreakAlarmAbility默认时间回调接口定义

接口定义

_ZJ_API   int ZJ_SetGetUtcRspCbFun(ZJ_PFUN_DEVICE_GETUTCRSP pFunGetUtcRsp);

功能描述

获取默认时间回调

入参

pFunGetUtcRsp:回调函数

返回值

0   表示正确,否则其他错误

 

4.12.2  获取默认时间回调函数定义

接口定义

typedef   int (*ZJ_PFUN_DEVICE_GETUTCRSP)(int uiReqId,int iCode,long long iGMTSecond);

功能描述

获取默认时间回调

入参

uiReqId:请求Id

iCode错误码

iGMTSecond获取到的时间

返回值

0   表示正确,否则其他错误

 

4.12.3  向服务器发起获取默认时间请求

接口定义

_ZJ_API   int ZJ_GetUtcTimeFromServer(int uiReqId);

功能描述

向服务器发起获取默认时间请求

入参

uiReqId:请求Id

返回值

0   表示正确,否则其他错误

 

4.12.4  获取默认时间超时,取消相应操作

接口定义

_ZJ_API   int ZJ_CancleOneRequset(int iReqId);

功能描述

请求超时后, 使用者 cancle

入参

uiReqId:请求Id

返回值

0   表示正确,否则其他错误

 

 

 

 

5      数据结构

5.1    枚举定义

5.1.1  系统平台定义

/**

  * 系统平台定义。

  */

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;

 

5.1.2  设置设备类型

/**

  * 设置设备类型: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;

5.1.3  设备初始化状态

/**

  * 设备初始化状态。分别为:初始化、配置加载、网络初始化、注册、登录、绑定、运行。

  */

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;

5.1.4  设备内存富余级别

/*

 * 设备内存富余级别

 */

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;

5.1.5  设备升级状态

/*

 * 设备升级状态。

 */

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 //强制升级,系统版本不兼容需要强制升级

}

5.1.6  网络类型

// 网络类型

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;

5.1.7  WIFI信息

//定义WIFI列表元素

typedef struct stru_ZJ_WIFI_INFO{

    int     iSigStrength;              //信号强度

    int     iConnectFlag;             //是否当前连接 1.是;0.不是

    char    acWifiSSID[32];           //最长31字节WiFiSSID

}ST_ZJ_WIFI_INFO;

 

5.1.8  当前网络详情结构

// 定义当前网络详情结构

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;

5.1.9  网络连接错误状态

//网络连接状态

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;

 

5.1.10 OTA升级的模式

//支持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;

 

5.1.11 WIFI配置模式

// 支持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;

 

5.1.12 设备休眠唤醒能力

//设备休眠唤醒能力

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;

 

 

5.1.13 对讲支持能力

//声音对讲支持能力

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;

 

5.1.14 摄像机PTZ支持能力

//摄像机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;

 

5.1.15 摄像机PTZ转动能力

//摄像机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;

5.1.16 巡航预置点定义

//巡航预置点定义

typedef struct stru_ZJ_CAMERA_CRUISE_PRESET{

    int         Idx;               //预置点序号

    int         iX;                //预置点位移X

    int         iY;                 //预置点位移Y

    int         iDwellTime;        //停留时间

    int         iSpeed;            //云台转速

}ST_ZJ_CAMERA_CRUISE_PRESET;

 

5.1.17 摄像机分辨率支持能力集

//摄像机分辨率支持能力集

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;

 

5.1.18 摄像机编码帧率定义

//摄像机编码帧率定义

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;

 

5.1.19 红外灯支持能力

//红外灯支持能力

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;

 

5.1.20 图像侦测报警能力

//图像侦测报警能力

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;

 

5.1.21 摄像机视频编码类型

//摄像机视频编码类型

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;

5.1.22 音频编码类型

//音频编码类型

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;

5.1.23 镜头类型

//镜头类型

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;

 

5.1.24 视频编码参数

//视频编码参数

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;

 

5.1.25 音频参数描述

// 音频参数描述

typedef struct stru_ZJ_AUDIO_PARAM{

    unsigned int uiEncodeType;    //编码格式

    unsigned int uiSampleRate;    //采样率

    unsigned int uiChannel;       //声道数

    unsigned int uiDepth;         //深度

}ST_ZJ_AUDIO_PARAM;

 

5.1.26 广角镜头圆心半径信息描述

//广角镜头圆心半径信息描述

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;

 

5.1.27 扭曲度描述

// 扭曲度描述

typedef struct str_ZJ_VIDEO_DISTORTION

{

    double fx;       // 镜头光轴与图像圆心的水平偏移

    double fy;       // 镜头光轴与图像圆心的垂直偏移

    double a;       // 桶形畸变校正参数

    double b;       // 枕形畸变校正参数

    double scale;     // 图像缩放因子

}ST_ZJ_VIDEO_DISTORTION;

 

5.1.28 视频编码帧类型

//视频编码帧类型

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;

 

 

5.1.29 图片类型定义

// 图片类型定义。普通图片,中等大小图片,小图,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;

 

5.1.30 TF卡状态返回

//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;

5.1.31 IR模式

//  IR模式。自动模式,红外模式,全彩模式。

typedef enum enum_ZJ_IRMODE{

    EN_ZJ_IRMODE_AUTO                  = 0,  //自动模式

    EN_ZJ_IRMODE_IR                      = 1,  //红外模式

    EN_ZJ_IRMODE_FULLCOLOR             = 2   //全彩模式

}EN_ZJ_IRMODE;

 

5.1.32 关键帧编码质量参数

// 关键帧编码质量参数

typedef enum enum_ZJ_KEYFRAME_QUALITY{

    EN_ZJ_KEYFRAME_QUALITY_NORMAL       = 1, // 标准质量

    EN_ZJ_KEYFRAME_QUALITY_LOW           = 2, // 低质量

}EN_ZJ_KEYFRAME_QUALITY;

 

5.1.33 AIIoT类型

//定义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;

 

 

5.1.34 EVENTID类型

//区分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;

5.1.35 DID控制类型

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;

 

 

5.1.36 人脸相关的信息

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;

 

6      关于设备重启

由于设备重启会影响到用户实时视频观看和云存的丢失,设备端尽量避免定时自动重启,更不允许设备定时准点自动重启。

若设备确实需要周期性自动重启,需要随机打散重启时间,避免所有设备在同一时间周期性冲击平台接口,自动重启设计为间隔714天、00:30:00 04:00:00之间随机时间点,具体要求如下:

1、重启日周期:从设备启动或重启后第7到第14天,随机一天,避免所有设备在同一天重启。公式如下: 重启日周期=7+N N07的系统随机数。

2、时间点:00:30:00 04:00:00之间,随机一秒,避免重启的设备在同一秒重启。公式如下:时间点=T T00:30:00 04:00:00之间随机秒数(即1800 14400之间随机数)。

举例:设备启动或重启日期为2020/02/05,若随机数N=3、随机数T=3672,则设备在第10 01:01:12自动重启,即2020/02/15 01:01:12自动重启。


联系我们

技术支持:郑工

189 3897 4717

商务合作:余总

183 9006 6666