当前位置:文档之家› 服务器平台SDK使用文档

服务器平台SDK使用文档

服务器平台SDK说明书

(For Windows2000\XP\Server2003)

2009-12-04

当前版本/状

作者参与者起止日期备注态

V1.0.0.0 张小路郭伟伟2009-10-20~2009-10-21 初稿

V1.0.0.1 张小路 2009-11-17~2009-11-17

修改BUG V1.0.1.0 张小路 2009-11-31~2009-12-04

增加功能

上海天跃科技有限公司

目 录

一、基本说明 (4)

1.1、文件说明 (4)

1.2、版本说明 (4)

二、SDK说明 (5)

2.1、功能简介 (5)

2.2、数据类型及数据结构定义 (6)

2.2.1、DVR类型 (6)

2.2.2、预览视频信息结构 (6)

2.2.3、报警信息结构 (7)

2.2.4、外设控制结构 (8)

2.2.5、云台控制结构 (8)

2.2.6、空调控制结构 (9)

2.2.7、布撤防控制结构 (10)

2.2.8、常量定义 (10)

2.2.9、错误码定义 (10)

2.3、函数使用顺序 (10)

三、函数接口说明 (12)

3.1、SDK初始化与释放相关 (12)

3.1.1、初始化SDK (12)

3.1.2、释放SDK (12)

3.1.3、注册异常消息回调 (12)

3.2、报警相关 (13)

3.2.1、注册报警信息回调函数 (14)

3.2.2、注销报警回调 (14)

3.3、登录流媒体相关 (14)

3.3.1、登录流媒体服务器 (15)

3.3.2、退出流媒体服务器 (15)

3.4、实时预览相关 (16)

3.4.1、打开预览通道 (16)

3.4.2、关闭预览通道 (17)

3.5、声音控制相关 (18)

3.5.1、打开声音 (18)

3.5.2、关闭声音 (18)

3.5.3、设置声音大小 (19)

3.6、登录中心管理服务器相关 (19)

3.6.1、注册中心消息回调函数 (19)

3.6.2、登录中心管理服务器 (20)

3.6.3、退出中心管理服务器 (21)

3.7、控制和信息获取相关 (21)

3.7.1、外设控制 (21)

3.7.2、云台控制 (22)

3.7.3、布撤防控制 (22)

3.7.4、获取布防状态 (23)

3.7.5、获取硬盘状态信息 (24)

3.7.6、空调控制 (24)

3.7.7、开始群呼 (25)

3.7.8、停止群呼 (26)

一、基本说明

1.1、文件说明

此SDK是天跃科技服务器平台中服务器群(包括流媒体服务器、

报警服务器、中心管理服务器等)的网络接口,用户可用此SDK进行

基于天跃科技服务器平台的客户端开发。

此SDK采用TCP技术实现。

此SDK相关文件介绍如下:

TjtyServer.dll, TjtyServer.lib, TjtyServer.h为

SDK的主要库文件。

Tjty_Play.dll(1.1.0.1), AVPlayer.Dll(7.3.2.56), Decoder.Dll(7.3.2.56), HBPlaySDK.Dll(2.0.0.1), DLSDK.Dll(1.0.0.1),dldecoder.Dll(1.0.5.407),

dhplay.Dll(3.19.1.703),dllh264.Dll,

HikPlayM4.Dll(4.8.0.0), BSRPlayer.dll等为本地解码支

持库。

cc3250mt.dll,borlndmm.dll,vcl50.bpl,

cc3290mt.dll为编译器(BCB5.0)支持库。

1.2、版本说明

V1.0.0.0

该文档的初始版本编号,主要对该SDK描述,包括功能和使用说明。

V1.0.0.1

修改无法停止接收报警信息的BUG。

V1.0.1.0

增加了中心管理服务器的网络接口,包括登录和登出中心管理服务器、外设控制、云台控制、布撤防、获取布防状态、获取硬盘信息、空调控制等接口。

二、SDK说明

2.1、功能简介

此SDK提供了基于天跃科技服务器平台关于视频预览、报警上传、外设控制、信息获取等功能的一些网络接口,目前支持对天跃工控主机和几大主流的嵌入式主机(包括海康、大华、图敏、大立、蓝色星际和汉邦等)的实时预览、报警上传、外设控制、信息获取等功能。用户可用此SDK进行基于天跃科技服务器平台的客户端开发,理论上一个客户端同时最高支持36通道实时预览。

此SDK采用TCP技术实现。

2.2、数据类型及数据结构定义

2.2.1、DVR类型

描述:DVR主机的类型信息

typedef enum

{

TJTY_DVR_PC = 0, //天跃工控

TJTY_DVR_HIK, //海康

TJTY_DVR_DH, //大华

TJTY_DVR_TM, //图敏

TJTY_DVR_DL, //大立

TJTY_DVR_HB6000, //汉邦6000

TJTY_DVR_HB8000, //汉邦8000

TJTY_DVR_BSR, //蓝色之星

TJTY_DVR_NULL //未确定的类型

}TJTY_DVRTYPE;

2.2.2、预览视频信息结构

描述:该结构做为打开通道时的参数输入,存储所申请视频的流媒体信息、DVR信息、窗口信息等。

typedef struct

{

int nUserID; //登录流媒体服务器返回的UserID char chDVRIP[20]; //DVRIP

int nChannelNO; //通道号

TJTY_SERVER_DVRTYPE nDVRType; //DVR类型

HWND hViewWin; //窗口句柄

int nPlayMode; //解码方式 0-流解码;1-文件解密;默认为流解码

TJTY_SERVER_SMS_REALDATA_CALLBACK pDataCallBack; //数据回调函数

DWORD dwUser; //用户自己的参数

} TJTYSERVERVIEWINFO, *LPTJTYSERVERVIEWINFO;

2.2.3、报警信息结构

描述:报警信息结构。

typedef struct

{

char infohead[20];

char hostname[20];

char hostip[20];

unsigned char videoalarm[24];

unsigned char sensoralarm[24];

unsigned char reserved1[24];

unsigned char reserved2[24];

unsigned int reserved3;

unsigned char reserved4;

unsigned char havealarm;

unsigned char reserved5;

char reserved6[37];

} TJTYSERVERALARMINFO, *LPTJTYSERVERALARMINFO; 2.2.4、外设控制结构

描述:外设控制结构。

typedef struct

{

unsigned long ulDvrIp; //DVR网络格式IP地址 int iDvrType; //DVR类型

int iEdvrCtlPort; //探头号(嵌入式 0-3) int iDvrCtlProt; //探头号(工控 0-7) bool bDvrCtlcmd; //控制命令(true/false) }TJTYSERVERDVRCOMMEND, *LPTJTYSERVERDVRCOMMEND; 2.2.5、云台控制结构

描述:云台控制结构。

typedef struct

{

unsigned long ulDvrIp; //DVR网络格式IP地址

WORD wCameraIndex; // DVR外接摄像机号

int nCtlCommand; //控制命令

int btPresetNum; //预置位255:无效 0-128:有效 WORD wReserve; //保留

}TJTYSERVERPZTCTL, *LPTJTYSERVERPZTCTL;

2.2.6、空调控制结构

描述:空调控制结构。

typedef struct

{

unsigned long ulDvrIp; //DVR网络格式IP地址

int iDvrType; //DVR类型

int nAddress; //空调地址

int nOpenClose; //1开 0关

int nMode; //模式 1自动 2除湿 3制冷 4制热 int nTemp; //温度

}TJTYSERVERDVRCOMMENDAIR,*LPTJTYSERVERDVRCOMMENDA IR;

2.2.7、布撤防控制结构

描述:布撤防控制结构。

typedef struct

{

unsigned long ulDvrIp; //DVR网络格式IP地址 int iDvrType;

bool bSwitch; //true布防,false撤防

char bCtlEdvr[TJTY_SENSOR_IN_EDVR_MAX]; //控制命令(输入探头0-16) Y为布防、N为撤防、0为不控制

}TJTYSERVERDVRCOMMENDALARMIN,*LPTJTYSERVERDVRCOMMENDALARMIN;

2.2.8、常量定义

具体定义见头文件“TjtyServer.h”。

2.2.9、错误码定义

具体定义见头文件“TjtyServer.h”。

2.3、函数使用顺序

此SDK主要提供了初始化SDK、视频预览、注册报警和声音控制等函数接口,以下是函数调用的大致顺序,用户可根据实际情况去调用函数接口,但是必须保证首先调用初始化SDK函数和最后调用释放SDK函数。

TJTY_SERVER_Init() //初始化SDK

TJTY_SERVER_RegExceptionMsgCallback()//异常回调↓

TJTY_SERVER_RegAlarmMsgCallback() //注册报警回调↓

TJTY_SERVER_RegRecvCMSMsgCallback() //注册中心回调↓

//登录流媒体

TJTY_SERVER_LoginInSMS()

//打开通道

TJTY_SERVER_RealPlay()

//关闭通道

TJTY_SERVER_StopRealPlay()

//退出流媒体

TJTY_SERVER_LoginOutSMS()//登录中心

TJTY_SERVER_LoginInCMS()

TJTY_SERVER_ControlDeviceOut() TJTY_SERVER_ControlPZT()

TJTY_SERVER_ControlAlarmIn() TJTY_SERVER_GetAlarmInState() TJTY_SERVER_GetDiskState() TJTY_SERVER_ControlAirCondition

//退出中心

TJTY_SERVER_LoginOutCMS()

TJTY_SERVER_UnRegAlarmMsgCallback() //停止接收报警↓

TJTY_SERVER_CleanUp() //释放SDK资源

三、函数接口说明

3.1、SDK初始化与释放相关

该部分主要介绍关于SDK初始化和释放资源相关的一些接口,包括SDK初始化、注册异常消息回调和释放SDK等。

3.1.1、初始化SDK

bool TJTY_SERVER_Init()

参数:无;

返回值:成功-true,失败-false;

说明:初始化SDK,此函数是使用其他函数的基础和前提条件。

3.1.2、释放SDK

bool TJTY_SERVER_CleanUp()

参数:无;

返回值:保留;

说明:释放SDK资源,SDK使用完成后,需调用此函数释放资源。

3.1.3、注册异常消息回调

bool TJTY_SERVER_RegExceptionMsgCallback

(TJTY_SERVER_EXCEPTION_MSG_CALLBACK

ExceptionMsgCallback);

参数:ExceptionMsgCallback [in]异常消息处理回调函数;

返回值:成功-true,失败-false;

说明:该函数注册一个异常消息回调函数,当与流媒体、中心管理服

务器之间交互异常时,SDK会将异常消息通知给回调函数,用户自己

处理这些异常信息。如果用户不关心这些信息,可以不用调用此函数。

回调函数原型:

typedef void(CALLBACK *TJTY_SERVER_EXCEPTION_MSG_CALLBACK )(int lHandle,

UINT uMSG)

参数:lHandle 句柄值;

uMSG 消息类型;

说明:当uMSG 为与SMS交互异常时,lHandle为登录SMS的句

柄;当uMSG 为与CMS交互异常时,lHandle为登录CMS的句柄;

当uMSG 为与预览异常时,lHandle为预览句柄。具体使用见

DEMO。

3.2、报警相关

该部分主要介绍与报警服务器相关的函数接口,要成功使用这些

接口须在报警服务器添加此客户机IP地址。

3.2.1、注册报警信息回调函数

bool TJTY_SERVER_RegAlarmMsgCallback

(TJTY_SERVER_ALARM_MSG_CALLBACK ReadAlarmMsgFun ) 参数:ReadAlarmMsgFun [in] 报警消息处理回调函数;

返回值:成功-true,失败-false;

说明:注册一个报警回调函数,在程序初始化时调用一次即可。

回调函数原型:

typedef void

(CALLBACK *TJTY_SERVER_ALARM_MSG_CALLBACK)

(void *buf, DWORD length )

参数:buf报警信息缓冲区指针;

Length数据长度;

说明:具体使用见DEMO。

3.2.2、注销报警回调

bool TJTY_SERVER_UnRegAlarmMsgCallback()

参数:无;

返回值:保留;

说明:此函数用来停止接收报警信息。

3.3、登录流媒体相关

该部分主要介绍登录和退出流媒体服务器相关的函数接口。

3.3.1、登录流媒体服务器

bool TJTY_SERVER_LoginInSMS(char * pchSeverIP,char * pchUserName,char * pchUserPass,int &nRet);

参数:pchSeverIP [in] 流媒体IP;

pchUserName [in] 登录SMS的用户名;

pchUserPass [in] 登录SMS的密码;

nRet [out] 操作句柄或者错误代码;

返回值:true登录成功,此时nRet为操作句柄;

登录失败,此时nRet为错误代码,具体含义见错 false

误码定义;

说明:此函数用来登录流媒体服务器,登录成功后,获得唯一(同一进程中)的操作句柄,此操作句柄是其他操作的必要参数。

3.3.2、退出流媒体服务器

bool TJTY_SERVER_LoginOutSMS(int nUserID)

参数:nUserID [in]函数TJTY_SERVER_LoginInSMS()调用成功后获得的操作句柄;

返回值:保留;

说明:此函数用来退出流媒体服务器登录。调用此函数后,所有与此流媒体服务器有关的操作都将被中止。

3.4、实时预览相关

该部分主要介绍与实时预览相关的函数接口,包括打开通道和关

闭通道两个函数。

3.4.1、打开预览通道

bool TJTY_SERVER_RealPlay(LPTJTYSERVERVIEWINFO pViewInfo, int &nRet)

参数:pViewInfo [in] 预览视频信息结构,具体含义见备注;

nRet [out] 预览句柄或者错误代码;

返回值:true登录成功,此时nRet为预览句柄;

登录失败,此时nRet为错误代码,具体含义见错

false

误码定义;

说明:此函数用来申请实时预览视频图像登录流媒体服务器,若调用

成功,获得唯一(同一进程中)的预览句柄,此与预览句柄是关闭通

道和声音控制等操作的必要参数。

备注:TJTYSERVERVIEWINFO 结构详解

nUserID登录流媒体服务器返回的UserID;

chDVRIP[20] DVRIP;

nChannelNO通道号;

nDVRType DVR类型;

hViewWin 窗口句柄,若此参数为NULL,表示用户自己通过回调函

数自己处理数据,此时pDataCallBack不能为空;

nPlayMode 解码方式, 0-流解码,1-文件解密,默认为流解码,

当hViewWin 不为空时有效;

pDataCallBack 回调函数指针,当hViewWin为NULL时,此参

数有效,表示用户自己处理得到的数据;

dwUser用户自己的参数;

视频回调函数原型:

typedef void (CALLBACK *TJTY_SERVER_SMS_REALDATA_CALLBACK )(int lViewID,

int nDataType, BYTE *pDataBuf, DWORD dwDataSize,

DWORD dwUser, TJTY_SERVER_DVRTYPE nDVRType)

参数:lViewID 预览句柄;

nDataType 数据类型, TJTY_SERVER_SYSTEM_HEAD 为

系统头数据;TJTY_SERVER_STREAM_DATA 为视频流数据;

pDataBuf 数据缓冲区;

dwDataSize 数据长度;

dwUser 用户自己定义的数据;

nDVRType DVR类型;

说明:具体使用见DEMO;

3.4.2、关闭预览通道

bool TJTY_SERVER_StopRealPlay( int nViewID )

参数:nViewID [in] TJTY_SERVER_RealPlay获得的预览句柄;

返回值:保留;

说明:此函数用来停止指定的预览句柄标志的实时预览图像。

3.5、声音控制相关

该部分主要介绍与声音控制相关的函数接口,包括打开声音、关闭声音和设置音量三个函数。若用户利用回调函数自己处理得到的视频数据时,该组函数是无效的。

3.5.1、打开声音

bool TJTY_SERVER_PlaySound( int nViewID )

参数:nViewID [in] TJTY_SERVER_RealPlay获得的预览句柄;返回值:true成功;

false失败;

说明:此函数用来打开指定的预览句柄标志的实时预览的声音。

3.5.2、关闭声音

bool TJTY_SERVER_StopSound( int nViewID )

参数:nViewID [in] TJTY_SERVER_RealPlay获得的预览句柄;返回值:true成功;

false失败;

说明:此函数用来关闭指定的预览句柄标志的实时预览的声音。

3.5.3、设置声音大小

bool TJTY_SERVER_SetVolume(int nViewID, WORD

nVolume)

参数:nViewID [in] TJTY_SERVER_RealPlay获得的预览句柄;

nVolume[in] 音量的大小,0—100的整数;

返回值:true成功;

false失败;

说明:此函数用来设置指定的预览句柄标志的实时预览的声音大小。

3.6、登录中心管理服务器相关

该部分主要介绍注册中心消息回调函数、登录和退出中心管理服

务器相关的函数接口。

3.6.1、注册中心消息回调函数

bool TJTY_SERVER_RegRecvCMSMsgCallback (TJTY_SERVER_RECVCMS_CALLBACK

fpRecvCMSMsgCallBack);

参数:fpRecvCMSMsgCallBack [in]处理中心反馈信息的回调函

数;

返回值:成功-true,失败-false;

说明:该函数注册一个处理中心反馈消息的回调函数,由于各种控制

接口采用异步处理的方式,所有控制成功与否的反馈信息都是通过该

回调函数回调出来的。如果要调用与中心交互的接口,必须注册该回调函数。

回调函数原型:

typedef void

(CALLBACK *TJTY_SERVER_RECVCMS_CALLBACK)

(int nUserID, void *buf, DWORD dwBufSize)

参数:nUserID 登录中心成功后返回的UserID;

buf信息缓冲区指针;

dwBufSize数据长度;

说明:具体使用见DEMO。

3.6.2、登录中心管理服务器

bool TJTY_SERVER_LoginInCMS(char * pchSeverIP,char * pchUserName,char * pchUserPass,int &nRet);

参数:pchSeverIP [in] 中心管理服务器IP;

pchUserName [in] 登录CMS的用户名;

pchUserPass [in] 登录CMS的密码;

nRet [out] 操作句柄或者错误代码;

返回值:true登录成功,此时nRet为操作句柄;

登录失败,此时nRet为错误代码,具体含义见错 false

误码定义;

说明:此函数用来登录中心服务器,登录成功后,获得唯一(同一进

相关主题
文本预览
相关文档 最新文档