Uniscope-二次开发文档API
- 格式:doc
- 大小:3.64 MB
- 文档页数:18
二次开发包使用说明书(版本V1.1)目录一、DEMO软件使用步骤 (3)1.1串口通讯单个显示屏 (3)1.1.1设置屏幕参数以及模组参数 (3)1.1.2打开DEMO软件 (6)1.1.3发送数据 (6)1.2串口通讯多个显示屏 (7)1.2.1设置屏幕参数以及模组参数 (7)1.2.2 打开DEMO软件 (9)1.2.3发送数据 (9)1.3 TCP/IP通讯单个显示屏 (9)1.3.1 设置屏幕参数以及模组参数 (9)1.3.2 打开DEMO软件 (12)1.3.3 发送数据 (12)1.4 TCP/IP通讯多个显示屏 (13)1.4.1 设置屏幕参数以及模组参数 (13)1.4.2 打开DEMO软件 (14)1.4.3 发送数据 (14)二、节目编辑流程 (14)三、调用顺序样例 (15)开发包使用说明软件使用步骤使用步骤一、DEMO软件单个显示屏1.1串口通讯串口通讯单个显示屏1.1.1设置屏幕参数以及模组参数主要设置屏幕参数以及模组参数,设置参数应使用“LED图文屏编辑控制平台”软件,设置步骤如下。
1)进入“LED图文屏编辑控制平台”中的硬件参数,设置参数。
参数设置完后,点击“发送后保存”。
2)打开二次开发包中的配置文件(.ini文件)打开二次开发包中的LED.INI文件。
参数配置说明参数配置说明::[地址:1]LinkAddr=1CardType=HL06ACOMPort=COM1LinkMode=串口IPAddr=PortNO=8000BaudRate=9600bpsColor=2Width=512Height=256① 控制卡地址"[地址:n]"和"LinkAddr" 范围为:1~253;② 控制卡类型CardType 的取值为: HL00、HL01、HL02、HL03A 、HL06A 、HL06A+ ③ 控制卡通讯模式“LinkMode ”的取值为:串口、TCP/IP④ 控制卡以太网参数:“IPAddr ”和“PortNO ”:IPAddr 取值:实际卡所配置IP 地址如:192.168.0.2PortNO 取值:实际卡所配置端口如:8000注:仅TCP/IP 模式需配置该参数⑥ 显示屏的宽度和高度分别为“Width ”和“Height ”:Width 取值范围: 8~屏幕高度,并且是8的倍数,Height 取值范围:8~屏幕高度⑦串口波特率和串口号分别为“BaudRate”和“COMPort”:BaudRate取值为:9600bps,38400bps,115200bps;COMPort取值为:COM1、COM2、COM3、...... (注:COM1为COM1口,COM2为COM2口);⑧显示屏颜色:0~3;0.单色屏(红色),1.单色屏(绿色),2.双色屏(红色&绿色),3.双色屏(绿色&红色)注意:*地址的个数可以根据实际显示屏的个数添加;*不要修改该文件的文件名及后缀;*该文件必须和应用程序放在同一个目录下。
接口开发文档一、开发包目录结构1.1demo 文件夹包含了sdk 接口调用源代码,可供二次开发参考。
使用 C++开发的 MFC 程序。
1.2dll 文件夹包含了二次开发所需的所有动态库,demo 编译好的e xe 文件需要放在该文件夹才可以运行。
1.3include 文件夹包含了二次开发所需要的头文件。
1.4lib 文件夹包含了二次开发所需要的l ib 静态库。
1.5DSS 二次开发指南(C++).pdf指导二次开发用户如何新建V S2005 工程运行d emo 文件夹中的d emo。
1.6Version.xmldpsdk 开发包的程序版本信息。
1.7常见问题解答.pdf二次开发常见问题以及解决方式。
1.8大华平台S DK 开发手册(C++版).chm二次开发接口使用说明。
二、术语和缩略语1、D PSDK:DSS 平台二次开发S DK 包2、C MS:中心管理服务3、D MS:设备管理模块4、d emo:程序示例(功能类似D SS 平台客户端)5、w eb 管理员端:在浏览器中输入D SS 平台的i p 即可打开管理员端6、C ameraID:通道i d,形如:10000010$1$0$07、D eviceID:设备i d三、Demo 操作方法3.1 运行d emo把“demo/bin/”目录下面的3个文件,如下图所示3.2 登陆平台登陆界面如图 1 所示,其中: IP:DSS 平台ip 地址;端口:9000;用户名:web 管理员端配置的用户;密码:web管理员端配置的用户对应的密码。
点击“登录”按钮,登陆平台。
登陆成功的界面如图2所示:1235图2主界面上图选中的 5个模块分别是:1、组织树;2、实时视频;3、本地录像;4、云台操作;5、执行结果。
3.3 主界面功能介绍3.3.1、组织树操作步骤:点击“加载所有组织结构”按钮加载组织结构是其他操作的前提,是为了获取 DSS平台上所有的设备信息。
二次开发手册随着科技的不断发展,软件已经成为人们日常生活和工作中不可或缺的一部分。
为了满足用户对软件功能的需求,开发者经常需要进行二次开发。
本手册旨在为二次开发者提供一套完整、实用的指南,帮助其更好地进行软件二次开发工作。
1.二次开发的基本概念二次开发是指在已有软件的基础上,根据用户需求进行功能扩展、改进或定制的过程。
通过二次开发,可以充分利用已有软件的优点,提高软件的功能性和易用性。
2.二次开发的流程二次开发的流程包括需求分析、设计、编码、测试和部署等阶段。
其中,需求分析阶段是关键,需要充分了解用户需求,确定二次开发的具体内容和目标。
设计阶段需要对系统架构、数据库结构、界面设计等进行详细规划。
编码阶段需要按照设计要求进行编码实现。
测试阶段需要对二次开发的功能进行全面测试,确保其符合预期要求。
部署阶段需要对二次开发的软件进行部署和上线。
3.二次开发的技术实现在进行二次开发时,需要了解和掌握相关的技术实现。
例如,对于Web应用程序的二次开发,需要了解HTML、CSS、JavaScript等前端技术,以及后端语言如Python、Java等。
对于移动应用程序的二次开发,需要了解iOS或Android平台的开发技术。
此外,还需要了解数据库技术、版本控制技术等。
4.二次开发的常见问题及解决方案在进行二次开发时,可能会遇到一些常见问题,如兼容性问题、性能问题、安全性问题等。
针对这些问题,需要采取相应的解决方案。
例如,对于兼容性问题,需要进行充分的测试和调优;对于性能问题,需要进行性能分析和优化;对于安全性问题,需要加强安全措施和防范措施。
5.案例分析为了更好地说明二次开发的实践过程,本手册提供了几个案例分析。
这些案例涵盖了不同领域和不同规模的二次开发项目,通过分析这些案例的成功经验和问题所在,可以为读者提供宝贵的启示和帮助。
通过这些案例的分析和学习,读者可以更好地理解二次开发的实践操作和关键要点,为自己的二次开发工作提供指导和实践经验借鉴。
二次开发技术文档了解系统结构程序为MVC 3层结构,模型/ 视图/ 控制器。
●模型是前后台公用。
完成业务逻辑,所有的数据库操作,文件等资源调用,都由此层实现。
●控制器则是前后台独立。
负责业务模型的调用,拼接,变量的转换等等。
●视图层采用类似smarty的实现。
在任何时候都有一个全局变量$system指向唯一的一个内核类:core/kernel.php控制器负责所有的变量的转换,包括对外界的变量转换。
像胶水一样粘合各个业务model,并在其中的数据交互过程中做一些数据转换过程。
最终将变量抛到模板层。
模板层负责编译成html输出,这里我们创建了大量的smarty插件来减少开发者的重复工作量。
结构图公共类图公共函数库公共函数库位于/core/func_ext.php,它在内核加载时首先被加载,对全系统有效。
其中包含若干php5函数的php4模拟版本:●file_put_contents●json_encode●json_decode●ftp_chmod●array_diff_key●http_build_query运行过程商派Commerce B2B标准版前后台调度都分别通过各自目录下一个名为index.php的入口文件进行,入口文件接受控制器、方法等的输入参数,调度给对应的控制器方法执行并输出结果。
index.php会调用kernel。
Kernel基础类提供模型对象加载,插件入口,错误处理,设置管理,输入输出,第三方类库加载等基础服务。
前后台及安装入口程序在初始化时,都会初始化一个对应的内核类,这个类在前台是shopCore.php,后台时是adminCore.php。
这两个文件都是继承core/kernel.php文件。
该内核类首先会形成一个名为system的指向自身的全局对象,然后根据传入参数调用对应的控制器方法运行。
控制器层与模型层都会产生对该全局system对象的调用来使用基础服务。
并且控制器和模型层在自身被实例化之后都可以使用$this->system来引用内核对象。
微信公众平台二次开发解决方案在进行微信公众平台的二次开发时,需要考虑到一些常见的问题和解决方案,以提高开发效率和用户体验。
以下是一些常见的解决方案:1. 接口调用与权限验证:在进行微信公众平台的二次开发时,可能需要调用微信的接口来获取用户信息、发送消息等。
在这种情况下,需要进行接口调用和权限验证。
解决方案可以是使用开源的微信开发工具包,如Wechat SDK,或使用微信官方提供的接口进行调用和验证。
2. 消息回复与自定义菜单:微信公众平台可以通过自定义菜单来实现用户与公众号的交互,例如点击菜单触发事件、回复消息等。
在二次开发中,可能需要自定义菜单并实现与菜单相关的功能。
解决方案可以是使用微信公众平台提供的菜单接口进行自定义菜单的创建和管理,并通过配置菜单的触发事件来实现相关功能。
3. 消息推送与模板消息:微信公众平台可以通过消息推送功能来向用户发送消息,包括文本、图片、语音、视频等类型。
在二次开发中,可能需要实现消息推送并定制消息内容。
解决方案可以是使用微信公众平台提供的消息接口进行消息的推送,并使用模板消息来定制消息的内容和格式。
4. 用户管理与数据统计:微信公众平台可以通过用户管理功能来管理用户的基本信息,包括用户的关注状态、标签等。
在二次开发中,可能需要进行用户管理和数据统计。
解决方案可以是使用微信公众平台提供的用户管理接口进行用户管理,并使用第三方数据统计工具进行数据统计和分析。
5. 素材管理与图片上传:微信公众平台可以通过素材管理功能来管理各类素材,包括图片、语音、视频等。
在二次开发中,可能需要进行素材管理和图片的上传。
解决方案可以是使用微信公众平台提供的素材管理接口进行素材管理,并使用第三方图片上传工具来实现图片的上传和管理。
通过以上的解决方案,开发者可以更好地进行微信公众平台的二次开发,并实现更丰富和个性化的功能,提升用户的体验。
当然,具体的开发需求会根据实际情况有所差异,开发者需要根据自己的需求选择适合的解决方案。
接口开发文档一、开发包目录结构1.1demo文件夹包含了sdk接口调用源代码,可供二次开发参考。
使用C++开发的MFC程序。
1.2dll文件夹包含了二次开发所需的所有动态库,demo编译好的exe文件需要放在该文件夹内才可以运行。
1.3include文件夹包含了二次开发所需要的头文件。
1.4lib文件夹包含了二次开发所需要的lib静态库。
1.5DSS二次开发指南(C++).pdf指导二次开发用户如何新建VS2005工程运行demo文件夹中的demo。
1.6Version.xmldpsdk开发包的程序版本信息。
1.7常见问题解答.pdf二次开发常见问题以及解决方式。
1.8大华平台SDK开发手册(C++版).chm二次开发接口使用说明。
二、术语和缩略语1、DPSDK:DSS平台二次开发SDK包2、CMS:中心管理服务5、web管理员端:在浏览器中输入DSS平台的ip即可打开管理员端6、CameraID:通道id,形如:10000010$1$0$07、DeviceID:设备id三、Demo操作方法3.1运行demo把“demo/bin/”目录下面的3个文件,如下图所示拷贝到“dll”文件夹下面,运行Test_DPSDK_Core.exe。
3.2登陆平台图 1 登陆界面登陆界面如图 1 所示,其中: IP:DSS 平台ip 地址;端口:9000;用户名:web 管理员端配置的用户;密码:web管理员端配置的用户对应的密码。
点击“登录”按钮,登陆平台。
登陆成功的界面如图2所示:1235图2 主界面上图选中的 5个模块分别是:1、组织树;2、实时视频;3、本地录像;4、云台操作;5、执行结果。
3.3主界面功能介绍3.3.1、组织树操作步骤:点击“加载所有组织结构”按钮加载组织结构是其他操作的前提,是为了获取 DSS平台上所有的设备信息。
3.3.2、实时视频模块操作步骤:1)确保已经成功加载组织结构。
2)输入CamID(通道ID)。
项目二次开发源代码及详细说明I. 项目介绍本文档描述了一个二次开发项目的源代码及详细说明。
该项目是基于一个开源的企业资源管理系统进行二次开发,以满足特定客户的需求。
原始系统功能包括客户关系管理、订单管理、库存管理等,但客户需要在原始系统的基础上增加一些新的功能,比如业务报表的定制、权限管理的优化等。
为了满足客户的需求,我们需要对原系统进行二次开发,修改和添加一些功能,以适应客户的特定业务需求。
II. 项目目标1. 通过二次开发,实现客户需求的定制化功能,并满足特定的业务需求。
2. 优化原系统的权限管理模块,增强系统的安全性和稳定性。
3. 重构原系统的报表模块,实现业务报表的定制化功能。
4. 对原系统的库存管理模块进行优化,提高系统的性能和稳定性。
III. 项目源代码及详细说明1. 新增功能模块:客户需要系统新增一个产品价格管理模块,方便他们随时根据市场需求调整产品的价格。
我们在系统中增加了产品价格管理的功能模块,客户可以在这个模块中根据自己的需求,对产品的价格进行调整。
以下是新增功能模块的主要源代码及详细说明:```python# 产品价格管理模块import datetimefrom django.db import modelsclass Product(models.Model):name = models.CharField(max_length=100, verbose_name='产品名称')price = models.DecimalField(max_digits=10, decimal_places=2, verbose_name='产品价格') create_time = models.DateTimeField(default=datetime.now, verbose_name='创建时间')class Meta:verbose_name = '产品'verbose_name_plural = verbose_name# 增加产品价格调整记录模型class PriceAdjustRecord(models.Model):product = models.ForeignKey(Product, on_delete=models.CASCADE, verbose_name='产品')old_price = models.DecimalField(max_digits=10, decimal_places=2, verbose_name='调整前价格')new_price = models.DecimalField(max_digits=10, decimal_places=2, verbose_name='调整后价格')adjust_time = models.DateTimeField(default=datetime.now, verbose_name='调整时间')class Meta:verbose_name = '价格调整记录'verbose_name_plural = verbose_name```上面的代码是在原系统中新增的产品价格管理模块的源代码。
NVR的SDK二次开发接口文档采购的海康NVR及IPC的产品需支持SDK版本在XXX上能够支持输出RTSP协议流以下SDK的接口是必须的1账号验证用户登录NVR:实现用户的认证功能,登录成功后,返回的用户ID作为其他功能操作的唯一标识。
1.1SDK初始化1)初始化SDK接口:NET_DVR_Init函数:BOOLNET_DVR_Init()参数:无返回值:TRUE表示成功,FALSE表示失败。
说明:调用设备网络SDK其他函数的前提。
2)释放SDK资源接口:NET_DVR_Cleanup函数:BOOLNET_DVR_Cleanup()参数:无返回值:TRUE表示成功,FALSE表示失败。
说明:在结束之前最后调用。
接口返回失败请调用NET_DVR_GetLastError获取错误码,通过错误码判断出错原因。
1.2NVR用户的认证/登录1)激活设备接口:NET_DVR_ActivateDevice函数:BOOLNET_DVR_ActivateDevice(char*sDVRIP,WORDwDVRPort,LPNET_DVR _ACTIVATECFGlpActivateCfg)参数:[in]sDVRIP 设备IP地址[in]wDVRPort设备端口[in]lpActivateCfg激活参数,包括激活使用的初始密码返回值:TRUE表示成功,FALSE表示失败。
接口返回失败请调用NET_DVR_GetLastError获取错误码,通过错误码判断出错原因。
说明:出厂设备需要先激活,然后再使用激活使用的初始密码登录设备。
2)IPServer或者DDNS域名解析,获取动态IP地址和端口号接口:NET_DVR_GetDVRIPByResolveSvr_EX函数:BOOLNET_DVR_GetDVRIPByResolveSvr_EX(char*sServerIP,WORDwServe rPort,BYTE*sDVRName,WORDwDVRNameLen,BYTE*sDVRSerialNumber,WOR DwDVRSerialLen,char*sGetIP,DWORD*dwPort)参数:[in]sServerIP 解析服务器的IP地址[in]wServerPort 解析服务器的端口号,IPServer解析服务器端口号为7071,HiDDNS服务器的端口号为80[in]sDVRName 设备名称[in]wDVRNameLen 设备名称的长度[in]sDVRSerialNumber 设备的序列号[in]wDVRSerialLen 设备序列号的长度[out]sGetIP 获取到的设备IP地址指针[out]dwPort 获取到的设备端口号指针返回值:TRUE表示成功,FALSE表示失败。
Uniscope-二次开发文档APIUniscope Globe API 接口说明uniscope.globe空间方法:void createInterface (object div, function onCreated, function onCreateFail);参数: div: 控件创建的位置onCreated:创建成功响应的方法onCreateFail:创建失败响应的方法功能:创建一个新的Globe方法:void addEventListener (object targetObject, string eventID, function callbackListener); 参数: targetObject: 事件的触发者eventID:触发事件IDcallbackListener:响应事件的方法功能:添加一个全局事件方法:void removeEventListener(object targetObject, string eventID, function callbackListener); 参数: targetObject: 事件的触发者eventID:触发事件IDcallbackListener:响应事件的方法功能:移除一个全局事件属性:poiClickedHandler类型:eventHandler功能:poi被点击时触发的事件句柄属性:documentChangedHandler类型:eventHandler功能:文档被修改时触发的事件句柄uniscope.globe.measure方法:void clearResult();参数:无功能:清除所有的测量结果方法:void lineLength (function callbackOnResult);参数:callbackOnResult: 测量完成的响应函数功能:进行空间直线距离的测量功能:挖填方分析方法:void lineOfSight(double srcHeight, double destHeight, String pointString, function callbackOnResult );参数: srcHeight: 原始点的相对高度destHeight: 目标点的相对高度pointString: 视线的顶点集callbackOnResult: 完成后的回调函数功能:挖填方分析uniscope.search方法:void createInterface( String serverUrl);参数:serverUrl:服务的路径功能:uniscope.search初始化方法:void getPoiByKeyword(String keyword, String cityName, int pageIndex, int pageLength, function callbackOnResult );参数: keyword: 查询关键字cityName: 城市名pageIndex: 显示页号pageLength: 每页条数callbackOnResult: 完成后的回调函数功能:POI关键字查询方法:void getPoiByRect(String keyword, String cityName, double north, double south,double east, double west, int pageIndex, int pageLength, function callbackOnResult );参数: keyword: 查询关键字cityName: 城市名north, south, east, west: 矩形的参数pageIndex: 显示页号pageLength: 每页条数callbackOnResult: 完成后的回调函数功能:POI关键字查询方法:void getPoiByCircle(String keyword,String cityName, double centerLon, double centerLat, double radius, int pageIndex, int pageLength, function callbackOnResult );参数: keyword: 查询关键字cityName: 城市名centerLon: 圆形区域中心点经度centerLat: 圆形区域中心点纬度radius: 圆形区域半径pageIndex: 显示页号pageLength: 每页条数callbackOnResult: 完成后的回调函数功能:POI圆形区域查询方法:void getBuildingByKeyword(String keyword, String cityName, int pageIndex, int pageLength, function callbackOnResult );参数: keyword: 查询关键字cityName: 城市名pageIndex: 显示页号pageLength: 每页条数callbackOnResult: 完成后的回调函数功能:Building关键字查询方法:void getBuildingByRect(String keyword, String cityName, double north, double south, double east, double west, int pageIndex, int pageLength, function callbackOnResult );参数: keyword: 查询关键字cityName: 城市名north, south, east, west: 矩形的参数pageIndex: 显示页号pageLength: 每页条数callbackOnResult: 完成后的回调函数功能:Building矩形区域查询方法:void getBuildingByCircle(String keyword,String cityName, double centerLon, double centerLat, double radius, int pageIndex, int pageLength, function callbackOnResult );参数: keyword: 查询关键字cityName: 城市名centerLon: 圆形区域中心点经度centerLat: 圆形区域中心点纬度radius: 圆形区域半径pageIndex: 显示页号pageLength: 每页条数callbackOnResult: 完成后的回调函数功能:Building圆形区域查询方法:void getBuildingByPoint(String keyword,String cityName, double ptLon, double ptLat, int pageIndex, int pageLength, function callbackOnResult );参数: keyword: 查询关键字cityName: 城市名ptLon: 经度ptLat: 纬度pageIndex: 显示页号pageLength: 每页条数callbackOnResult: 完成后的回调函数功能:Building点选查询eventHandler对象方法:void addEventHandler(object targetObject, function callbackListener);参数: targetObject: 事件的触发者(可设置为null)callbackListener:响应事件的方法功能:添加一个响应函数方法:void removeEventHandler(object targetObject, function callbackListener); 参数: targetObject: 事件的触发者(可设置为null)callbackListener:响应事件的方法功能:移除一个响应函数方法:void clearEventHandler();参数: targetObject: 事件的触发者(可设置为null)callbackListener:响应事件的方法功能:清除所有的响应函数方法:void notifyEvent(object argument);参数:argument: 参数功能:触发事件IUSEarth对象属性:ImageLayers类型:IUSLayers功能:获得Image 图层的集合属性:ModelLayers类型:IUSLayers功能:获得Model图层的集合属性:POILayers类型:IUSLayers属性:VectorLayers:类型:IUSLayers功能:获得Vector 图层的集合属性:UserDocument类型:IUSUserDocument功能:获得用户数据文档属性:GlobeObserver类型:IUSGlobeObserver功能:获得摄像机属性:TrackControl类型:IUSTrackControl功能:获得飞行路线控制器属性:Factory类型:IUSFactory功能:对象工厂属性:Measure类型:IUSMeasure功能:测量模块属性:ShapeCreator类型:IUSShapeCreator功能:几何对象创建属性:Paint类型:IUSPaint功能:绘制简单几何图形的接口属性:HtmlBalloon类型:IUSHtmlBalloon功能:HTML弹出气泡属性:Event类型:IUSEvent功能:事件模块属性:RootPath类型:StringIUSLayers接口属性:Count类型:Int功能:获得图层的数量属性:Item类型:IUSLayer功能:获得某一图层;IUSLayer接口属性:Name类型:String功能:获得图层的名字属性:Visible类型:Boolean功能:获得/设置图层的可见性IUSUserDocument接口方法:void ImportXmlString(String xmlString, bool bAsync);参数:xmlString: 导入的XmlStringbAsync: 是否异步读入功能:将一个XmlString导入USEarth中方法:String LoadXmlFile(String xmlFilePath);参数:xmlFilePath: 文件的路径功能:从本地文件中读入xmlString方法:void SaveXmlFile(String xmlFilePath, String xmlString); 参数:xmlFilePath: 文件的路径xmlString: 需要写入的xmlString功能:将xmlString写入本地文件中方法:void DeleteXmlFile (String xmlFilePath); 参数: xmlFilePath: 文件的路径功能:删除本地文件中的xml方法:void DeleteXmlFile (String xmlFilePath); 参数: xmlFilePath: 文件的路径功能:删除本地文件中的xml IUSGlobeObserver接口方法:void Forward();参数:无功能:视点向前移动方法:void Backward();参数:无功能:视点向后移动方法:void MoveLeft();参数:无功能:视点向左移动方法:void MoveRight();参数:无功能:视点向右移动方法:void TurnLeft();参数:无功能:视点向左旋转方法:void TurnRight();参数:无功能:视点向右旋转方法:void LookUp();参数:无功能:视点向上旋转方法:void LookDown();参数:无功能:视点向下旋转方法:void ZoomIn();参数:无功能:视点靠近目标点方法:void ZoomOut();参数:无功能:视点远离目标点方法:void Resume();参数:无功能:视点返回全球状态方法:void NorthView();参数:无功能:视点返回到正北姿态方法:void TopView();参数:无功能:视点返回到顶视姿态方法:void Stop();参数:无功能:停止当前视点的运动状态方法:void FlyTo( double lon, double lat, double alt, double heading, double tilt, double range); 参数: lon: 目标点经度lat: 目标的纬度alt: 目标点高程heading: 朝向(与正北方向的夹角 0 <= heading <= 360 )tilt: 俯仰(垂直指向地心方向的射线的夹角。