




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 !#$%&()*+,-./CD23456789:;?AB 修订第 3 页 共 29 页日期修订内容2013/1/5第一次发布2013/9/14增加登录设备 API NETSDK_CreateSesEx增加获取 SDK 版本 API NETSDK_Ver解决了打开后断线重连的 BUG2013/9/291. 增加首次连接设备失败时的事件上报(SOCKET_CONNECT_LOST)2013/11/12增加了 NETSDK_ReuseSes接口,复用已存在会话2013/12/4修正首次重连设备后主动断开连接问题,心跳不稳定问题2014/3/1增加音格式描述及使用实例目录简 介5概述5适用性5设计原
2、则5编程说明5典型调用顺序62接口定义8SDK 初始化8登录设备8实时监视102.4 回放和.11回放控制13云台控制13图像配置13网络配置152.92.10配置16配置16升级、搜索17获取、设置系统时间18透明通道19获取、设置 DDNS 信息19强制 I 帧192.16 设备主动.202.17 获取 SDK 版本20格式2133.1格式213.2 音频格式21使用实例22初始化 SDK22设备搜索22主动连接设备234.4 设备上报254.5 请求实时.26PTZ 控制27图像参数配置27编码参数配置28第 4 页共 29 页NetSDK 编程手册1. 简介1.1概述欢迎使用我公司网络
3、SDK编程手册,NetSDK是开发商在开发机联网应用时的开发套件。本文档详细描述了开发包中各个函数实现的功能、接口及其函数之间的调用关系和示例实现。开发包所包括的文件有:1.2适用性设计原则1.3编程说明初始化和清除使用NetSDK 包首先调用 NETSDK_Initialize()对系统进行初始化,应用程序退出时调用 NETSDK_Uninitialize()所有占用的资源。用户登录和注销用 户 在前 端 设 备 之 前 必 须 通 过 调 用NETSDK_CreateSesEx() 或()登录到前端设备上,登录成功后返回一个全局唯一的句NETSDK_CreateSes柄。此句柄就像一个会话
4、通道,之后该用户可通过此句柄前端设备。退出该会话时则通过 NETSDK_DestroySes()函数端设备上注销此句柄以终止该会话通道的使用。建立连接与登录是同步的。心跳功能在本开发包中提供自动心跳功能(5 秒一次心跳)当设备断开回调给客户端。回调函数一般都有由用户自定义的参数, 用来传入类对象指针, 方便回调处理在类中实现,回调应用都可以采取这种方式。第 5 页共 29 页网络库NetSDK.h头文件NetSDKDef.h结构体定义文件NetSDK.libLib 文件NetSDK.dll接口库NetSDK 编程手册1.4典型调用顺序A.初始化B.登录连接设备C.实时D.回放/E.设备功能操作
5、与信息获取F.控制G.注销断开设备第 6 页共 29 页断开连接NETSDK_DestroySes()升级NETSDK_UpgradeDev () NETSDK_CancelUpgradeDev ()系统参数配置NETSDK_GetSeInfo ()NETSDK_SetSeInfo ()云台控制NETSDK_PtzControl ()透明通道控制NETSDK_GetTransparentMSG()NETSDK_SetTransparentMSG()查询NETSDK_SearchRecordFile ()回放及控制NETSDK_StartPlayFile ()NETSDK_PlayFileCon
6、trol()打开实时流NETSDK_CreateRealTimeStream()关闭实时流NETSDK_StopStream ()登入设备NETSDK_CreateSesEx ()SDK 初始化NETSDK_Initialize ()3 5 #!#!%!(!4 2接口定义2.1SDK 初始化1.32_tNETSDK_Initialize();函数说明:初始化 SDK, 在所有的 SDK 函数之前调用参数说明:0:ok,-1:failure2.void NETSDK_Uninitialize();函数说明:清空 SDK,参数:无 返回值:无占用的资源,在所有的 SDK 函数之后调用。典型应用:在
7、应用程序关闭时调用2.21.登录设备NETSDK_hSesNETSDK_CreateSes(boolbDynamicIP,structsockaddr_in *addr, const char *username, constchar *password,16_trsvPort,u16_tmsgPort,u16_tstreort,uNETSDK_SesdevType = 0);EventCallBackcallback,LPVOIDparam,32_t函数说明:用户到设备, 当设备端把用户设置为复用( 设备默认的用户如admin,不能设置为复用),则使用该帐号可以多次向设备参数说明:。inbD
8、ynamicIP是否动态 IP in addr设备 IPin username用户名in password用户in msgPort默认 8088信令端口in streort流端口,可以为 0: in rsvPort保留in callback事件回调函数,上线、下线、等事件通过该 回调函数通知调用者typedef void ( stdcall *NETSDK_SesEventCallBack)(第 8 页共 29 页NETSDK_hSesses,void* callbackParam,SesEvent_E event,void* eventParam); in param该参数将做为事件回调函数
9、 callbackParam 值。in devType设备类型,保留,常为 0返回值: 0 成功,否则失败,登录成功之后对设备的操作都可以通过此值(设备句柄)对应到相应的设备。典型应用:在初始化后就可以调用本接口登录到指定的设备,成功后将返回设备句柄,给相关的函数调用2.NETSDK_hSesNETSDK_CreateSesEx(char* sIP, u16_t wPort,char*sUserName,char*sPassword,NETSDK_SesEventCallBackcallback, LPVOID param);函数说明:用户到设备,当设备端把用户设置为复用(设备默认的用户如 a
10、dmin,不能设置为复用),则使用该帐号可以多次向设备参数说明:in sIP 设备 IP in wPort信令端口 默认 8088 in username 用户名in password用户in callback。事件回调函数,上线、下线、等事件通过该 回调函数通知调用者typedef void ( stdcall *NETSDK_SesEventCallBack)(NETSDK_hSesses,void* callbackParam,SesEvent_E event,void* eventParam); in param该参数将做为事件回调函数 callbackParam 值。返回值: 0 成
11、功,否则失败,登录成功之后对设备的操作都可以通过此值(设备句柄)对应到相应的设备。典型应用:在初始化后就可以调用本接口登录到指定的设备,成功后将返回设备句柄,给第 9 页共 29 页相关的函数调用3.NETSDK_hSesNETSDK_ReuseSes(NETSDK_hSessid,char*sIP,u16_t wMsgPort,u*sPwd);16_t wStreort,char *sUserName, char函数说明:复用已存在的会话,避免设备因连接失败频繁创建 SES,以及用于设备IP&PORT 变化时,自动打开之前已存在的参数说明:会话insid:已存在的设备会话 IDin sIP设
12、备 IPin wMsgPort信令端口默认 8088in wStreort默认 8090信令端口in sUserName用户名in sPwd用户4.void NETSDK_DestroySes(NETSDK_hSesses);函数说明:注销设备用户参数说明:in sesNETSDK_CreateSes的返回值返回值:N/A典型应用:当需要设备主动断开时调用;2.31.实时监视NETSDK_hStreamNETSDK_CreateRealTimeStream(NETSDK_hSesses,const StreamInfo_S *streamInfo, NETSDK_RecvDallBackrec
13、vDataFunc, LPVOID param);函数说明:启动实时监视参数说明:in sesNETSDK_CreateSesin streamInfo的返回值请求流的信息,描述主、辅码流等信息,详见 NetSdkDef.h第 10 页共 29 页inrecvDataFunc流回调函数typedef void ( stdcall *NETSDK_RecvDallBack)(NETSDK_hSesses,NETSDK_hStream hStream,const u8_t *data,u32_t dataLen,32_t isKeyFrame,TimeTick_T timest,u32_t fra
14、meSeqId,void* param);inparam传给回调函数的参数返回值:成功,否则失败,成功返回实时流 ID(实时流句柄),将作为相关函数的参数。0典型应用:根据登录时获取到的设备信息,调用本接口,就可以打开任何有效的一路实时监视,并通过回调函数得到流数据。2.32_t NETSDK_StopStream(const NETSDK_hStream stream);函数说明:停止实时监视参数说明:in streamNETSDK_CreateRealTimeStream 的返回值返回值:成功返回 0,否则失败典型应用:关闭实时流2.41.回放和32_t NETSDK_SearchReco
15、rdFile(NETSDK_hSesses, constRcdFileSearch_S*info,NETSDK_SearchResultCallBackrcdResultCallBack, LPVOID param);函数说明:查询参数说明:文件in ses第 11 页共 29 页NETSDK_CreateSes的返回值in info查询条件,RcdFileSearch_S 详见 NetSDKDef.hout rcdResultCallBack回调函数,返回的文件信息typedef void ( stdcall *NETSDK_SearchResultCallBack)(NETSDK_hSes
16、ses,const char *data,u32_t arraySize,u8_t isEnd,void*param);data 为 RcdFileListResult_S, 详见 NetSDKDef.hin param传给回调函数的参数返回值:成功返回 0,失败返回错误码典型应用:在回放之前需要先调用本接口查询2.NETSDK_hStreamNETSDK_StartPlayFile(NETSDK_hSesses,constPlayFiyTime_S*plyRcdFile,NETSDK_RecvDallBackrecvDataFunc, LPVOID param, u8_t playFlag)
17、;函数说明:回放参数说明:,收到的流通过回调函数送给调用者in sesNETSDK_CreateSesin plyRcdFile的返回值查询条件 PlayFiyTime_S,详见 NetSDKDef.h.out recvDataFunc回调函数,同 NETSDK_CreateRealTimeStreamin param传给回调函数的参数in playFlag1:回放, 0:返回值:成功返回0,否则失败第 12 页 共 29 页2.5回放控制1.32_tNETSDK_PlayFileControl(NETSDK_hStreamses,constPlayControl_SNULL);*contro
18、lInfo, PlayRecordByTime_S*timeInfo=函数说明:参数说明:回放控制。in sesNETSDK_StartPlayFile 的返回值in controlInfo暂停、快进等信息,详见 NetSDKDef.h in timeInfo,详见 NetSDKDef.h根据时间定位返回值:成功返回 0,否则失败2.61.云台控制32_tNETSDK_PtzControl(NETSDK_hSesses,PtzControlInfo_S *info);函数说明:云台控制参数说明:in sesNETSDK_CreateSesin info的返回值设备通道号、预置位、速度、命令等,
19、详见 NetSDKDef.h返回值:成功返回 0,否则失败返回错误码。相关函数:H264_DVR_Login,H264_DVR_RealPlay典型应用:控制云台,但是必须在当前通道打开的情况下使用。2.7图像配置1.32_tNETSDK_SetDefault(NETSDK_hSesdefualt);ses,32_t函数说明:恢复出厂2.32_t NETSDK_GetOSD(NETSDK_hSes*osdParam);ses, OUTOsd_S第 13 页共 29 页1 0*6 /&QR 6JzUCD 0*#) 00* 6 /&*,$2*#) 0* /&?VWX 0 ( 0*,$2 0* 6
20、/& ( 0 /&? 353* XXYZ* 023* 00* 6 /,10&*,$223* 0* /,10&8uX2 04 5 6 00* 6 E) /1)&*,$24 5 6 0*E) /1)&865 0 0,&*6 F, / F F 0*, / F,&IMN_a6 4F0& 0*6 , / 1&4F& 0*, /1&bo$ 0 0*6 / & 0* /&cde 0+) 0* &* 6 +) 0* /&fghi 0#75 0*6 / MN 0)2 ( 00* 6 A, /&*,$2)2 ( 0*A, /&z4 052 ( 00* 6 A, /&*,$252 ( 0*A, /&|o4w 2 3
21、.32_t NETSDK_GetAlarmOutput(NETSDK_hSesses,u16_tchnnlNo, OUT AlarmOutParam_S *info);/chnnlNo(0,1)32_t NETSDK_SetAlarmOutput(NETSDK_hSesAlarmOutParam_S *info);ses, const函数说警输出设置4.32_tu16_tNETSDK_GetMotionDetect(NETSDK_hSeschnnlNo, OUT VMotionDetect_S *motionDetect);ses,32_t NETSDK_SetMotionDetect(NET
22、SDK_hSes VMotionDetect_S *motionDetect);函数说明:移动侦测灵敏度、侦测范围设置ses, const2.11升级、搜索1.32_tNETSDK_UpgradeDev(NETSDK_hSesses,32_tTranferFileType_EfileNameLen);fileType,constchar*fileName,函数说明:设置对前端设备网络升级程序参数说明:in sesNETSDK_CreateSesin fileType要升级的文件类型,详见 NetSDKDef.h enum TranferFileType_E的返回值TRANFER_UPGRADE
23、_FILE = 0, /.升级系统;in fileName要升级的文件路径名in fileNameLen要升级的文件名返回值:成功返回升级句柄 ID,失败返回 0典型应用:升级2.32_t NETSDK_CancelUpgradeDev(NETSDK_hSesses);函数说明:停止升级参数说明:in ses第 17 页共 29 页NETSDK_CreateSes返回值:0 成功,否则失败的返回值a)典型应用:停止升级3.32_t NETSDK_SearchDevice(u32_t msTimeOut);函数说明:搜索设备,以广播方式搜索网内设备参数说明:in msTimeOut搜索时间,毫秒
24、。返回值:返回搜到的设备数。4.32_t NETSDK_GetDeviceInfo(udeviceInfo);32_t index,OUTDeviceInfo_S*函数说明:从搜索的结果中获取设备的详细信息。参数说明:in index设备索引out deviceInfo设备信息 DeviceInfo_S,详见 NetSDKDef.h返回值:0 成功,否则失败2.12获取、设置系统时间1.32_tNETSDK_GetDeviceTime(NETSDK_hSesses,OUTSystemTime_S *pDevTime);32_tNETSDK_SetDeviceTime(NETSDK_hSesse
25、s,constSystemTime_S *pDevTime);d)函数说明:设置系统时间e) 参数说明:in sesNETSDK_CreateSes返回值in pDevTime系统时间 ,SystemTime_S 详见 NetSDKDef.hf) 返回值:0 成功否则失败第 18 页共 29 页/_ ) 50 0*7- 3* 0 /*7-4&0+ )*+ 3,-./01 4N! #bc$XYU(N a 0 0* 6 /& 0* /&8QR 99: 9,: * : %0( #bc-bH c + *+ ( 0*,$2 chnnlNo);m)n)函数说明: 强制 I 帧参数说明:in sesNETS
26、DK_CreateSes返回值in chnnlNo控制的设备通道号返回值:0 成功否则失败2.16设备主动1.32_t NETSDK_GetServicePort(NETSDK_hSes*netConfigInfo);32_t NETSDK_SetServicePort(NETSDK_hSes*netConfigInfo);ses, OUT NetConfig_S2.ses, const NetConfig_So)函数说明:设置服务端口, NetConfig_S 中的如果设定了服务器的 IP 地址和端,则设备主服务器。p)参数说明:insesNETSDK_CreateSes返回值innetCo
27、nfigInfo网络相关端口的结构体,NetConfig_S 详见 NetSDKDef.hq)返回值:0 成功,否则失败3.32_tNETSDK_GetDeviceID(NETSDK_hSesses,OUTDevName_S *pDevID);32_t NETSDK_SetDeviceID(NETSDK_hSesDevName_S *pDevID);ses, const函数说明:获取/设置设备 ID, 该 ID 为主动时唯一标识设备2.17获取 SDK 版本Const char* NETSDK_Ver();第 20 页共 29 页3格式来自设备的实时和回放通过回调函数NETSDK_RecvDa
28、llBack输出数据格式为:数据头(16 字节)+数据+音频数据数据头:3.1格式数据格式为标准的 H264:起始码+NA编码参数it3.2音频格式音频数据格式为对应的标准编码格式第 21 页共 29 页编码Profile分辨率帧率H.264Main:4.11080P 720P D1 VGA CIF QCIF30目前支持的音频编码参数,用于语音时客户端接收设备的音频编码数据音频参数 用于语音对讲时客户端发给设备的音频编码数据4使用实例使用 SDK 必须包含头文件#include NetSdk.h#include netsdkdef.h4.1初始化 SDK1. NETSDK_Initialize
29、();2. NETSDK_Uninitialize();4.2设备搜索nCount = NETSDK_SearchDevice(1000);/1secondfor (nItem = 0; nItem errCode = 0)第 23 页共 29 页prf(连接设备成功sesid=%dn,ses);break;case EVENT_CONNECTION_LOST:prf(sesid=%d connectfailure!n,ses);break;/发起连接请求sesid =NETSDK_CreateSesEx(51,8088,super,999999,SesEventProc
30、,0);if (sesid 0)/ok第 24 页 共 29 页4.4设备上报接收设备的回调函数与连接设备的回调函数复用。支持的事件类型参考 EventType_Evoid CALL_METHOD SesEventProc(ses, LPVOIDcallbackParam, SesEvent_E SesEvent, LPVOIDeventParam)switch(SesEvent)case EVENT_ALARM_NOTIFY:MsgEventLogEventEx_S* pEvent = (MsgEventLogEventEx_S*)eventParam;nEventType = pEvent
31、 -event;switch(nEventType)caseEVENT_TYPE_IOINPUT:caseEVENT_TYPE_IOINPUTPASS:caseEVENT_TYPE_LOST:caseEVENT_TYPE_RESUME:caseEVENT_TYPE_MOTIONED:caseEVENT_TYPE_MOTIONPASS:第 25 页共 29 页4.5请求实时/流回调函数voidCALL_METHOD RecvDallBack(NETSDK_hSesses,NETSDK_hStream hStream,const u8_t *data, u32_tdataLen,32_t isKe
32、yFrame, TimeTick_Ttimest,u32_t frameSeqId, void* param)const FrameHead_S* pHeader = reret_cast(data);char*p= pHeader-body;char*pAudio = p+pHeader-Len;/发起打开请求StreamInfo_S streamInfo;/主码流streamInfo.channel= 0;streamInfo.channelStream=CHANNEL_STREAM_MAIN;streamInfo.streamType=第 26共 29 页页STREOSITE;/副码流/streamInfo.channel= 1;/streamInfo.channelStream = CHANNEL_STREAM_DUAL;/streamInfo.streamT
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年职业道德与法律法规考试试卷及答案
- 2025年厨师模拟考试试题及答案
- 品牌策划大赛题库及答案
- 2025年东莞知识产权转让合同
- 2025年导游资格证考试专项训练试卷 导游业务实战案例解析
- 绵阳市2025年价格鉴证师职业能力水平评价考试(经济学和价格学基本理论)模拟题库及答案
- 2025年价格鉴证师职业能力水平评价考试(价格鉴证理论与实务)强化训练试题及答案二
- 2025年价格鉴证师考试(价格鉴证理论与实务)模拟题库及答案(陕西)
- 2025年企业人力资源管理师职业技能鉴定等级考试(专业能力)二级技师仿真试题及答案二
- 勘察项目进度安排方案
- SKF递进润滑系统-课件
- DB32/T 4401-2022《综合医院建筑设计标准》-(高清正版)
- 造口周围皮肤并发症 (伤口造口专科护理课件)
- 重症医学科优质护理服务工作计划
- 典范英语7-4中英文对照翻译Oh,otto!Oh,otto
- 危大工程动态管控表
- 检体诊断学循环系统查体教学课件
- 小学生文明就餐主题班会课件
- 工作分析(第二版)付亚和
- 地基验槽记录表.(范文)
- 浅析拉维莱特公园
评论
0/150
提交评论