sdk编程说明
- 格式:pdf
- 大小:193.84 KB
- 文档页数:10
设备网络SDK编程指南1. 简介设备网络SDK编程指南旨在帮助开发者理解和使用设备网络SDK,实现设备与网络之间的通信。
2. 设备网络SDK概述设备网络SDK是一种用于在设备和网络之间进行通信的软件开发工具。
它提供了一组API(应用程序编程接口),使开发者能够轻松地将设备连接到网络并进行数据交换。
设备网络SDK通常包含以下功能:2.1 设备连接设备网络SDK提供了设备连接到网络的功能。
开发者可以使用SDK中的API来创建设备连接,并通过设备连接与网络进行通信。
2.2 数据传输设备网络SDK可以帮助开发者实现设备与网络之间的数据传输。
使用SDK提供的API,开发者可以将数据从设备发送到网络,也可以将数据从网络发送到设备。
2.3 数据加密与安全设备网络SDK通常还提供了数据加密与安全功能,以确保设备与网络之间的通信安全可靠。
开发者可以使用SDK提供的加密算法和安全协议来保护通信数据。
2.4 设备管理设备网络SDK还可以帮助开发者管理设备。
通过SDK提供的设备管理功能,开发者可以实现设备的注册、注销、查询等操作。
3. 设备网络SDK的使用使用设备网络SDK可以按照以下步骤进行:3.1 引入SDK在使用设备网络SDK之前,需要首先将SDK集成到项目中。
开发者可以从官方网站或开发者平台下载SDK,并将SDK添加到项目的依赖中。
3.2 创建设备连接在使用设备网络SDK之前,需要创建设备连接。
开发者可以使用SDK提供的API创建设备连接对象,并设置连接参数,比如设备ID、设备密钥等。
import device_network_sdk# 创建设备连接device_connection = device_network_sdk.create_connection(device_id, dev ice_key)3.3 设备连接与网络通信创建设备连接后,可以使用设备连接与网络进行通信。
开发者可以使用SDK 提供的API发送和接收数据。
SDK编程经典解释什么是WinSDK:大致说来windows编程有两种方法: 1.windwos c方式(SDK), 2.c++方式:即对SDK函数进行包装,如VC的MFC,BCB的OWL等,如果要深入下去,还是要熟悉SDK。
两种方法有哪些区别呢:SDK编程就是直接调用windows的API进行编程,但是有上千个API组成(win95的API有两千多个),这种数目太大了,对于编程显然不利。
而MFC把这些API封闭起来,共有一百多个类组成。
一般只需20多个windows类和另外20多个通用的非windows类就可"干活"了,这一改变无疑是有很大好处的。
尽管MFC如此方便,但是要学VC,直接去学MFC却是不明智的选择。
只有在熟悉了MFC的运行机制的情况下,才有可能深入下去。
那些如多少天精通什么什么的书籍其实讲的全是些如怎么使用VC这种工具的话题,学来学去学会了怎么会使用VC这种工具,而不能深入MFC编程。
象VB这类工具就更令人感觉到太闷了,不过各有各的好处。
MFC虽然提高了程序员编程的效率,但是也失去了SDK编程的灵活性.....不好意思,跑题了....本专题假定:C语言是windows的源语言,用C进行SDK编程是最合适的,你应该至少学过C语言,知道C语言的各种语法等,当我说到指针等类似概念的时候,你不至于茫然就行了。
你还应该安装了Visual C++6.0,低版本的就不用用了吧,D版的才几块钱吗?推荐与参考资料:1.Petzold的[programming windows by petzold],这是我看过的一本书(电子书),不过是E文的,我只看了一半,"下载空间"一栏能供了该电子书。
中文版的是[Windows 程序设计](包括上,下卷),Charles Petzold著,北京博彦发展有限公司译,北京大学出版社出版,本书唯一的缺点就是太贵,价格是160元。
关于服务端和客户端SDK代码及编译步骤的说明1.服务端代码结构服务器端的代码由4个Project组成,分别是:CommonClass, ServiceDemo, ServiceParam, ServiceSDK。
1.1. CommonClassCommonClass是一个通用的类库,可以被服务端和客户端SDK上层的代码使用。
只是由于编译平台的不同,类库中的类有所删节。
GenericObject:对象池模板中的对象的基类,所有用对象池管理的对象都需要使用该类作为基类;ObjectHolder<T>:对象池模板中用到的对象管理模板,用于对对象进行管理,里面存储的对象都由GenericObject类派生而来;SinglitonPoolMgr<T>:单模式的对象池模板,使用ObjectHolder<T>实现的,单态的对象池模板;PolymorphicPoolMgr<T>:多模式的对象池模板,使用ObjectHolder<T>实现的,可以出现多个对象的对象池模板;CADOObj:继承自GenericObject的数据库连接对象;CDBCPool:使用PolymorphicPoolMgr<T>生成的数据库连接池,其中PolymorphicPoolMgr<T>模板使用的数据类型是CADOObj;CDBCPoolCollection:多个CDBCPool的集合,可以显现多个数据库的连接;CframeContainer:数据帧容器,实现了传输协议的功能,数据存储等;CframeContainer的对象由CframeContainerPool实现工厂模式;CframeContainerPool:CframeContainer对象池,采用工厂模式;CframeContainer 对象都在需要时向CframeContainerPool申请,不再使用时,回收到CframeContainerPool;CpriorityFrameQueue:带有优先级排队的帧容器队列,存储的对象是CframeContainer对象,可以根据CframeContainer对象的优先级,并按照先来后到的顺序进行排队;CrecordSetParser:封装了Recordset操作的一个类;CworkerThreadPool:实现线程池的一个类;1.2. ServiceSDK使用CommonClass类,实现的服务端功能模块。
设备(转码设备) 网络SDK编程指南V4.2声明非常感谢您购买我公司的产品,如果您有什么疑问或需要请随时联系我们。
●我们已尽量保证手册内容的完整性与准确性,但也不免出现技术上不准确、与产品功能及操作不相符或印刷错误等情况,如有任何疑问或争议,请以我司最终解释为准。
●产品和手册将实时进行更新,恕不另行通知。
●本手册中内容仅为用户提供参考指导作用,请以SDK实际内容为准。
目录声明 (I)目录 (II)1SDK简介 (1)2SDK版本更新 (3)3函数调用顺序 (4)3.1主动转码模块流程 (4)3.2被动转码模块流程 (5)4函数说明 (6)4.1SDK初始化 (6)4.1.1初始化SDK NET_DVR_Init (6)4.1.2释放SDK资源NET_DVR_Cleanup (6)4.2异常消息回调 (8)4.2.1注册接收异常、重连等消息的窗口句柄或回调函数NET_DVR_SetExceptionCallBack_V30 (8)4.3SDK日志和信息 (10)4.3.1获取SDK的版本号和build信息NET_DVR_GetSDKBuildVersion (10)4.3.2获取当前SDK的状态信息NET_DVR_GetSDKState (10)4.3.3获取当前SDK的功能信息NET_DVR_GetSDKAbility (10)4.3.4获取SDK本地参数NET_DVR_GetSDKLocalConfig ..................................................... 错误!未定义书签。
4.3.5设置SDK本地参数NET_DVR_SetSDKLocalConfig ...................................................... 错误!未定义书签。
4.3.6启用写日志文件NET_DVR_SetLogToFile (12)4.4获取错误信息 (13)4.4.1返回最后操作的错误码NET_DVR_GetLastError (13)4.4.2返回最后操作的错误码信息NET_DVR_GetErrorMsg (13)4.5用户注册 (13)4.5.1用户注册设备NET_DVR_Login_V30 (13)4.5.2用户注销NET_DVR_Logout (13)4.6获取设备能力集 (14)4.6.1获取设备能力集NET_DVR_GetDeviceAbility (14)4.7远程参数配置 (15)基本参数配置 (15)4.7.1获取设备的配置信息NET_DVR_GetDVRConfig (15)4.7.2设置设备的配置信息NET_DVR_SetDVRConfig (16)4.7.3批量获取配置信息NET_DVR_GetDeviceConfig (17)4.7.4批量设置配置信息NET_DVR_SetDeviceConfig (17)获取IPC协议列表 (18)4.7.5获取设备支持的IPC协议表NET_DVR_GetIPCProtoList (18)报警输出设置 (19)4.7.6获取设备报警输出NET_DVR_GetAlarmOut_V30 (19)4.7.7设置设备报警输出NET_DVR_SetAlarmOut (19)4.8实时预览 (19)4.8.1实时预览NET_DVR_RealPlay_V40 (19)4.8.2停止预览NET_DVR_StopRealPlay (20)4.9实时预览数据捕获 (20)4.9.1注册回调函数,捕获实时码流数据NET_DVR_SetRealDataCallBack (20)4.9.2注册回调函数,捕获实时码流数据(标准码流)NET_DVR_SetStandardDataCallBack (21)4.9.3捕获数据并保存到指定的文件中NET_DVR_SaveRealData (22)4.9.4停止数据捕获NET_DVR_StopSaveRealData (22)4.10被动转码 (22)4.10.1启动被动转码NET_DVR_StartPassiveTransCode (22)4.10.2向被动转码通道发送数据NET_DVR_TransCodeInputData (23)4.10.3停止被动转码NET_DVR_StopPassiveTransCode (23)4.10.4根据转码句柄获取设备转码通道号NET_DVR_GetPassiveTransChanNum (24)4.11布防、撤防 (24)设置报警等信息上传的回调函数 (24)4.11.1注册回调函数,接收设备报警消息NET_DVR_SetDVRMessageCallBack_V30 (24)布防撤防 (25)4.11.2建立报警上传通道,获取报警等信息NET_DVR_SetupAlarmChan_V41 (25)4.11.3撤销报警上传通道NET_DVR_CloseAlarmChan_V30 (25)4.12监听报警 (25)4.12.1启动监听,接收设备主动上传的报警等信息NET_DVR_StartListen_V30 (25)4.12.2停止监听(支持多线程)NET_DVR_StopListen_V30 (26)4.13设备状态 (26)4.13.1获取设备运行状态NET_DVR_GetDeviceStatus (26)4.14设备维护管理 (27)远程升级 (27)4.14.1设置远程升级时网络环境NET_DVR_SetNetworkEnvironment (27)4.14.2远程升级NET_DVR_Upgrade (27)4.14.3获取远程升级的进度NET_DVR_GetUpgradeProgress (28)4.14.4获取远程升级的状态NET_DVR_GetUpgradeState (28)4.14.5关闭远程升级句柄,释放资源NET_DVR_CloseUpgradeHandle (28)日志查找 (28)4.14.6查找设备的日志信息NET_DVR_FindDVRLog_V30 (28)4.14.7逐条获取查找到的日志信息NET_DVR_FindNextLog_V30 (29)4.14.8释放查找日志的资源NET_DVR_FindLogClose_V30 (29)恢复设备默认参数 (29)4.14.9恢复设备默认参数NET_DVR_RestoreConfig (29)导入/导出配置文件 (30)4.14.10导出配置文件NET_DVR_GetConfigFile_V30 (30)4.14.11导出配置文件NET_DVR_GetConfigFile (30)4.14.12导入配置文件NET_DVR_SetConfigFile_EX (30)4.14.13导入配置文件NET_DVR_SetConfigFile (31)4.15关机和重启 (31)4.15.1重启设备NET_DVR_RebootDVR (31)4.15.2关闭设备NET_DVR_ShutDownDVR (31)5错误代码及说明 (32)5.1.1网络通讯库错误码 (32)5.1.2RTSP通讯库错误码 (35)5.1.3软解码库错误码 (36)6结构体说明 (38)1SDK简介设备网络SDK是基于设备私有网络通信协议开发的,为嵌入式网络硬盘录像机、视频服务器、网络摄像机、网络球机、解码器、多屏控制器、报警主机等产品服务的配套模块,用于远程访问和控制设备软件的二次开发。
设备网络SDK编程指南1. 简介设备网络SDK是一种用于编写设备网络通信的软件开发工具包。
本文档旨在为开发人员提供使用设备网络SDK进行编程的指南。
2. SDK安装和配置要开始使用设备网络SDK进行编程,需要先安装和配置SDK。
下面是安装和配置SDK的步骤:1.下载SDK安装程序。
2.运行安装程序,按照安装向导完成SDK的安装。
3.配置SDK的环境变量,确保系统能够找到SDK的相关文件和库。
3. 编写网络设备程序使用设备网络SDK进行编程可以方便地实现与网络设备的通信。
下面是编写网络设备程序的基本步骤:1.导入设备网络SDK的库文件。
2.创建设备对象。
3.配置设备的网络设置。
4.建立与设备的连接。
5.发送和接收数据。
6.关闭与设备的连接。
下面是一个简单的示例代码,演示了如何使用设备网络SDK进行编程:import devnetsdk# 创建设备对象device = devnetsdk.Device()# 配置设备的网络设置device.set_network_settings(ip='192.168.1.100', port=8000)# 建立与设备的连接device.connect()# 发送数据device.send_data('Hello, device!')# 接收数据data = device.receive_data()# 关闭与设备的连接device.disconnect()4. SDK文档和示例代码详细的SDK文档和示例代码可以在SDK的安装目录中找到。
文档包括SDK的各种功能和方法的说明,示例代码可以帮助开发人员更好地理解和使用SDK。
5. 开发调试和错误处理在使用设备网络SDK进行编程时,开发人员需要进行调试和处理可能出现的错误。
下面是一些开发调试和错误处理的常用方法:•使用日志记录来跟踪程序的运行情况和调试信息。
•使用异常处理来处理可能发生的错误,避免程序崩溃。
java sdk使用手册Java SDK(Software Development Kit)是用于开发Java应用程序的软件包,它包含了一系列工具、库和文档,帮助开发人员更轻松地创建和部署Java应用程序。
下面我将从多个角度介绍Java SDK的使用手册。
1. 安装和配置,首先,你需要下载并安装Java SDK。
你可以从Oracle官方网站或者其他可信赖的来源下载最新的Java SDK版本。
安装完成后,你需要配置环境变量,以便系统能够找到Java SDK的安装目录。
2. 编程基础,Java SDK包含了Java编程语言的基础库和工具。
你可以使用Java SDK中的编译器(javac)来编译Java源代码文件,然后使用Java虚拟机(java)来运行生成的字节码文件。
Java SDK还包含了丰富的类库,包括用于处理输入输出、网络通信、图形界面等方面的类和方法。
3. 文档和示例,Java SDK提供了详细的文档和示例代码,帮助开发人员快速上手。
你可以在官方网站或者安装目录中找到Java API文档,其中包含了所有Java标准库的详细说明。
此外,JavaSDK还包含了许多示例代码,演示了如何使用不同的库和工具来解决实际问题。
4. 调试和性能优化,Java SDK提供了丰富的调试和性能优化工具,帮助开发人员诊断和解决程序中的问题。
你可以使用Java虚拟机的调试器来逐步执行程序并观察变量的值,也可以使用性能分析工具来找出程序中的性能瓶颈并进行优化。
5. 发布和部署,最后,Java SDK还包含了用于打包和部署Java应用程序的工具。
你可以使用Java打包工具(jar)将你的程序打包成一个可执行的JAR文件,也可以使用Java Web Start来将你的程序发布到互联网上,让用户可以通过浏览器直接启动你的应用。
总之,Java SDK是Java开发人员的利器,它提供了丰富的工具和文档,帮助开发人员快速高效地开发、调试和部署Java应用程序。
SDK 第一节 Hello SDK一、概述:SDK(software Development kit 软件开发包) 。
我们从这堂课开始,要学习基于Windows操作平台上的程序设计。
我们平常用的软件如:RealONE Player、OFFICE2003、金山影霸、甚至我们现在所用到的Microsoft Visual Studio .NET 2003 等,在我们按装完操作系统时,这些软件是不存在的,是我们后来人工按装上的,也就是说这些软件都是基于Windows操作平台开发出来的软件,那么,我们在写程序的时候就要和操作系统打交道,就要利用微软给我们提供的接口来实现Windows操作平台的程序设计。
我们把接口称做API函数(Application Programming Interface 应用程序接口)。
微软把2800多个API函数通过包的形式提供给我们(也就是我们要学习的SDK)。
SDK的组成:Win32 API。
注意:概述一下API函数.Windows当中的新数据类型:1、结构:MSG 消息结构WNDCLASS 窗体类结构RECT 矩形结构:left xTop yRight x1Bottem y1POINT 点结构(x,y)2、句柄HINSTANCE 应用程序实例句柄HWND 窗体句柄HDC 设备描述表句柄3、数据类型WORD(unsigned short int)DWORD (unsigned long int )BYTE (unsigned char)TCHAR (wchar:宽字符集)UINT (unsigned int)WPARAM (unsigned int)LPARAM (unsigned int)LRESULT (long int)CALLBACK 回调函数二、Windows编程的第一个程序(Hello Win):1、建立VC++项目-->win32→win32项目。
2、应用程序设置→windows应用程序-->空项目。
芯片sdk手册芯片SDK(Software Development Kit)是指为特定芯片或硬件平台提供的软件开发工具包,它包括了编程接口、驱动程序、库文件、示例代码等,用于帮助开发者设计和开发应用程序。
以下是对芯片SDK手册的详细介绍:一、SDK概述1. SDK是Software Development Kit的缩写,意为软件开发工具包。
2. 芯片SDK是为特定芯片或硬件平台提供的开发工具包,包含了开发该平台所需的各种软件组件。
3. 芯片SDK通常由芯片制造商提供,以帮助开发者快速开发出适用于该芯片的应用程序。
二、SDK内容1. 编程接口:SDK提供了编程接口,开发者可以通过这些接口来访问芯片的硬件功能,如传感器、控制器等。
2. 驱动程序:SDK包含了芯片的驱动程序,用于控制和管理芯片的硬件组件。
3. 库文件:SDK提供了各种库文件,这些库文件包含了常用的功能实现,如数据处理、网络通信等。
4. 示例代码:SDK提供了示例代码,用于指导开发者如何使用SDK开发应用程序。
5. 文档:SDK包含了详细的文档,描述了SDK的使用方法、接口定义、功能说明等。
三、SDK使用1. 安装SDK:开发者需要根据芯片平台下载并安装相应的SDK。
2. 学习文档:开发者应该仔细阅读SDK提供的文档,了解SDK的使用方法和功能。
3. 编写代码:开发者可以使用SDK提供的编程接口和库文件来编写应用程序代码。
4. 调试测试:开发者需要使用调试工具来测试和调试应用程序,确保其正常运行。
5. 部署应用:完成应用程序的开发和测试后,开发者可以将应用程序部署到相应的芯片平台。
四、SDK优势1. 提高开发效率:SDK提供了预编译的组件和函数,可以节省开发者的时间和精力。
2. 降低开发难度:SDK提供了详细的接口定义和示例代码,降低了开发者对硬件的了解要求。
3. 优化性能:SDK通常由芯片制造商提供,可以充分利用芯片的硬件特性,优化性能。
EDK与SDK编程规范指导书(仅供内部使用)修订记录1.关于EDK与SDK编程规范随着公司使用Microblaze的来开发项目的越来越多,为了FPGA设计组在开发过程中更能较快较好的完成项目,制定了此EDK与SDK编程规范。
EDK,在本公司中规定的定义指:使用XPS软件建立的Microblaze所有CPU、外设、自定义IP等硬件工程。
SDK,在本公司中夫定的定义指:由EDK硬件工程导入生成并交给下位机工程师进行开发的软件工程。
2.详细规范1. SDK软件路径在EDK工程目录下,新建一个名为CODE的文件夹,每次生成的SDK软件工程必须放在CODE下面。
2. SDK的更新每次更改硬件工程后,必须将CODE里面的内容清空(必要时备份里面的内容),然后再生成 SDK软件工程,并重新生成BSP及C工程3. SDK交接每次把SDK工程交给下位机工程师时,必须重新生成新的SDK软件工程,严禁只拷备bit文件和bmm文件。
4. EDK本地版本管理严格按照填写工程版本管理excel表格,对EDK工程进行阶段性备份,禁止从头到尾一直只在一个工程中进行编辑。
5. SVN版本管理在设备出厂时,在SVN中上传一次最终版的EDK工程,打包压缩上传。
6. ucf各引脚约束由于在EDK中一些引脚约束与实现硬件连接常常是倒序的关系,因此对于一些同时存在倒序约束和顺序约束的ucf设计,需要在约束的后面加以注释,可参考下列示例。
Net pluse_ms_0_Pluse_pin<0> LOC=G5 | IOSTANDARD=LVCMOS33;Net pluse_ms_0_Pluse_pin<1> LOC=G6 | IOSTANDARD=LVCMOS33;Net pluse_ms_0_Pluse_pin<2> LOC=E3 | IOSTANDARD=LVCMOS33;Net pluse_ms_0_Pluse_pin<3> IOSTANDARD=LVCMOS33; ##顺序输出Net pluse_ms_0_Pluse_pin<4> IOSTANDARD=LVCMOS33;Net pluse_ms_0_Pluse_pin<5> IOSTANDARD=LVCMOS33;Net pluse_ms_0_Pluse_pin<6> IOSTANDARD=LVCMOS33;Net pluse_ms_0_Pluse_pin<7> IOSTANDARD=LVCMOS33;Net pluse_ms_0_Pluse_pin<8> IOSTANDARD=LVCMOS33; ##顺序输出Net W5300_Addr_GPIO_IO_O_pin<9> LOC=T9 | IOSTANDARD=LVCMOS33;Net W5300_Addr_GPIO_IO_O_pin<8> LOC=U4 | IOSTANDARD=LVCMOS33;Net W5300_Addr_GPIO_IO_O_pin<7> LOC=U3 | IOSTANDARD=LVCMOS33;Net W5300_Addr_GPIO_IO_O_pin<6> LOC=T8 | IOSTANDARD=LVCMOS33;Net W5300_Addr_GPIO_IO_O_pin<5> LOC=T6 | IOSTANDARD=LVCMOS33; ##倒序约束Net W5300_Addr_GPIO_IO_O_pin<4> LOC=R5 | IOSTANDARD=LVCMOS33;Net W5300_Addr_GPIO_IO_O_pin<3> LOC=T4 | IOSTANDARD=LVCMOS33;Net W5300_Addr_GPIO_IO_O_pin<2> LOC=R7 | IOSTANDARD=LVCMOS33;Net W5300_Addr_GPIO_IO_O_pin<1> LOC=R6 | IOSTANDARD=LVCMOS33;Net W5300_Addr_GPIO_IO_O_pin<0> LOC=AB3 | IOSTANDARD=LVCMOS33; ##倒序约束。
一、整体说明:1、使用环境及编程环境:本SDK以DLL的形式提供给用户调用,适用于Windows xp、Windows 2003、Windows XP、Windows7等Windows 32位开发环境;本SDK库和DEMO均在Microsoft Visual studio 2005下编译开发;2、主要功能说明:a. 处理器配置信息读取;b. 信号窗口的控制,如打开、关闭、移动、改变大小等;c. 信号属性的调节,如视频图像亮度、对比度等;二、文件目录说明:1. 头文件目录include:include\api.h //主要包含宏定义、数据结构定义和函数定义2. 库文件目录lib:lib\empeasy.lib //sdk的导入库3. 可执行文件目录bin:bin\empeasy.dll //sdk的动态链接库bin\sample1.exe //例子1的可执行文件4. 文档目录doc:doc\编程说明.pdf //本文档5. 例子目录sample:sample\sample1 //例子1,示例如何使用本sdk三、宏定义说明:#define NAME_LEN 64 //名称长度#define HOST_NAME_LEN NAME_LEN //主机名称长度#define PARAM_FILE_NAME_LEN NAME_LEN //参数文件名称长度#define CMD_NAME_LEN 256 //命令行长度#define MAX_PARAM_FILE 8 //信号参数保存成文件的最大数#define TITLE_LEN 64#define TITLE_LENV2 256#define MAX_VIDEO_INPUT_MODE 8 //视频信号模式的最大数#define MAX_RGB_INPUT_MODE 36 //RGB信号模式的最大数#define MODE_NAME_LEN 32 //模式名称的最大长度备注:视频信号模式主要有:如NTSC、PAL、SECAM等;RGB信号模式主要有:800x600@60Hz、1024x768@60Hz等。
信号类型定义:#define TYPE_VIDEO 1 //视频信号类型#define TYPE_RGB 2 //RGB信号类型#define TYPE_NET 3 //网络信号类型#define TYPE_IPVIDEO 8 //IP视频信号类型#define TYPE_EVWS 9 //EVWALL媒体流信号类型窗口类型定义:#define MASK_ALL (0x1F) //所有窗口#define MASK_TYPE_VIDEO (0x01) //视频窗口类型#define MASK_TYPE_RGB (0x02) //RGB窗口类型#define MASK_TYPE_NET (0x04) //网络窗口类型#define TYPE_MEDIA_MASK (0x20) //媒体播放窗口类型#define TYPE_IPVIDEO_MASK (0x40) //IP视频窗口类型#define TYPE_IPVIDEO_EVWS (0x80) //EVWALL媒体流窗口类型备注:此定义主要用于枚举窗口和关闭窗口,可以对指定类型的窗口进行相关操作,例如函数EmpEnumWindows和EmpCloseWindows的type参数,可以是其中一项,也可是任意的并集。
图像格式定义:#define PIXELFORMAT_YUY2 1#define PIXELFORMAT_YUYV 2#define PIXELFORMAT_RGB565 3#define PIXELFORMAT_RGB888 4#define PIXELFORMAT_RGB8888 5#define PIXELFORMAT_YUV420 6IP视频厂家型号定义:#define IP_STREAM_MODEL_UNKNOWN 0#define IP_STREAM_MODEL_LC 1 //朗驰#define IP_STREAM_MODEL_AS 2 //安森威尔#define IP_STREAM_MODEL_ACTi 3 //acti#define IP_STREAM_MODEL_HK 4 //海康威视#define IP_STREAM_MODEL_TAS 5 //同安顺#define IP_STREAM_MODEL_HH 6 //黄河摄像头#define IP_STREAM_MODEL_DAHUA 7 //大华#define IP_STREAM_MODEL_XM 8 //雄迈#define IP_STREAM_MODEL_SAMSUNG 9 //三星#define IP_STREAM_MODEL_ZION 10 //zion#define IP_STREAM_MODEL_YAAN 11 //亚安#define IP_STREAM_MODEL_HIE 12 //hualu#define IP_STREAM_MODEL_INFINOVA 13 //英飞拓摄像头云台控制命令定义:SDK开发文档#define CODE_PTZ_UP 1#define CODE_PTZ_DOWN 2#define CODE_PTZ_LEFT 3#define CODE_PTZ_RIGHT 4#define CODE_ZOOM_IN 5#define CODE_ZOOM_OUT 6#define CODE_FOCUS_PLUS 7#define CODE_FOCUS_MINUS 8#define CODE_APERTURE_PLUS 9#define CODE_APERTURE_MINUS 10与处理器连接超时定义:#define PROCESSOR_RECVTIMEOUT 5000消息类型定义:#define MSG_WND_OPENED 0 //窗口创建消息#define MSG_WND_MOVED 1 //窗口移动消息#define MSG_WND_STYLE_CHANGED 2 //窗口风格改变消息#define MSG_WND_ACTIVED 3 //窗口激活消息#define MSG_WND_CLOSED 4 //窗口关闭消息返回值定义:enum RET_STATUS{ST_SUCCESS = 0, //表示成功HANDLE_INVALID, //HANDLE不可用COMMUNICATE_ERROR, //与处理器通信失败INPUT_PARAM_INVALID, //输入参数不可用INPUT_BUFFER_INVALID, //输入buffer不可用OUTPUT_BUFFER_INVALID, //输出buffer不可用EXECUTE_ERROR, //执行错误UNKNOWN_ERROR=0xFFFFFFFF //未知错误};三、结构定义说明:1.处理器信息结构定义:typedef struct tagPROINFO{int mainVersion; //主版本号int subVersion; //子版本号int row; //行数int col; //列数int cubeWidth; //单元宽int cubeHeight; //单元高int Reserved1; //保留int Resvered2; //保留int bitsPerPixel; //桌面颜色位深int nRgbInput; //RGB通道数int nVideoInput; //视频通道数char szName[HOST_NAME_LEN]; //处理器名称}PROINFO, *PPROINFO;2. 请求开窗口结构定义:typedef struct tagREQOPENWND{int type; //信号类型long x; //窗口位置:左long y; //窗口位置:顶unsigned long w; //窗口宽unsigned long h; //窗口高unsigned long style; //窗口风格int nChannel; //信号通道号unsigned char szCmd[CMD_NAME_LEN];//信号命令行}REQOPENWND, *PREQOPENWND;typedef struct{char szUrl[64]; //摄像头IP地址加通道号的格式,如192.168.1.55:1,如果不加:1,默认是0通道char szUser[32]; //摄像头登录用户名char szPwd[32]; //摄像头登录密码unsigned char bDefaultLogin;//是否默认登录,如果是,将忽略szUser、szPwd和port 参数unsigned char reserved1; //保留unsigned char model; //摄像头厂家型号,参照IP视频厂家型号定义unsigned char reserved2; //保留int port; //摄像头端口号}IPLOGININFO,*PIPLOGININFO;备注:信号类型为TYPE_VIDEO和TYPE_RGB时,nChannel有效,szCmd为无效参数;信号类型为TYPE_NET时,szCmd有效,nChannel为无效参数;信号类型为TYPE_IPVIDEO时,szCmd有效,szCmd的格式按IPLOGININFO结构定义;3. 请求改变窗口位置或大小结构定义:typedef struct tagREQMOVEWND{DWORD winId; //窗口句柄long x; //窗口位置:左long y; //窗口位置:顶unsigned long w; //窗口宽unsigned long h; //窗口高}REQMOVEWND, *PREQMOVEWND;4. 请求改变窗口风格结构定义:typedef struct tagREQSTYLECHANGE{DWORD winId; //窗口句柄int style; //窗口风格}REQSTYLECHANGE, *PREQSTYLECHANGE;备注:窗口风格仅对TYPE_VIDEO、TYPE_RGB和TYPE_NET起作用。
5. 视频信号参数结构定义:typedef struct tagVIDEOADJUSTPARAM{CHAR nModeIdx; //模式索引号UCHAR Reserved1; //保留SHORT Reserved2; //保留SHORT HOffset; //水平开始位置SHORT VOffset; //垂直开始位置SHORT Width; //宽SHORT Height; //高UCHAR Brightness; //亮度UCHAR Contrast; //对比度UCHAR Hue; //色度UCHAR Saturation; //饱和度}VIDEOADJUSTPARAM, *PVIDEOADJUSTPARAM;6. RGB信号参数结构定义:typedef struct tagRGBADJUSTPARAM{CHAR nModeIdx; //模式索引号CHAR bDVI; //是否DVI信号SHORT HOffset; //水平开始位置SHORT HSize; //水平总像素SHORT VOffset; //垂直开始位置UCHAR Format; //图像格式UCHAR Brightness; //亮度UCHAR Contrast; //对比度UCHAR Phase; //相位UCHAR Reserved; //保留UCHAR bAutoDetect; //信号自动检测}RGBADJUSTPARAM, *PRGBADJUSTPARAM;备注:HSize、Brightness、Contrast和Phase对VGA信号调节有效。