CN101404656A - 一种与第三方智能设备协议通讯的软件接口设计方法 - Google Patents
一种与第三方智能设备协议通讯的软件接口设计方法 Download PDFInfo
- Publication number
- CN101404656A CN101404656A CNA2008102175221A CN200810217522A CN101404656A CN 101404656 A CN101404656 A CN 101404656A CN A2008102175221 A CNA2008102175221 A CN A2008102175221A CN 200810217522 A CN200810217522 A CN 200810217522A CN 101404656 A CN101404656 A CN 101404656A
- Authority
- CN
- China
- Prior art keywords
- protocol
- intelligent equipment
- main program
- agreement
- dynamic base
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Communication Control (AREA)
Abstract
本发明是一种与第三方智能设备协议通讯的软件接口设计方法,该方法对应于主程序设置智能设备协议动态库,与协议相关的功能剥离出主程序单独封装存储于智能设备协议动态库中,且该智能设备协议动态库向主程序展示出相同的接口以供主程序调用协议。剥离出来的功能被封装成智能设备协议动态库,由于向主程序展现出来的接口是相同的,所以不同的智能设备的协议按这种方式封装后主程序都可以调用,主程序使用一组接口就可以调用所有的协议动态库。这种接口设计方法使得主程序能够保持不变,大大降低了智能设备接入的成本和风险。
Description
技术领域
本发明涉及环境监控领域,具体地说,涉及动力环境监控系统接入第三方智能设备的软件接口设计方法。
背景技术
在网络的运营中,我国的动力环境设备产商众多,各种产商所开发生产的智能设备的协议各不相同。即使是同一产商,不同时期开发的智能设备,其协议收发流程也不尽相同。目前常见的协议收发流程有如下几种:
1.请求——应答模式。请求应答模式的又有1对1模式,1请求对应1条应答;1对多模式,1条请求对应多条应答;多对1模式,多条请求对应1条应答;
2.上报——确认模式。上报——确认模式又有1对1模式,多对1模式;
除了协议收发流程,不同产商的通讯超时时间标准也从0.5秒到几十秒各不相同。
目前常见的智能设备协议接入接口的设计方法是:
1.根据协议收发流程将接口划分成1对1、1对多、多对1、主动上报等几种模式;
2.主程序依据这几种模式各自的协议收发流程,开发出相应的功能模块按协议收发流程收发数据;
3.这些开发出来的功能模块可以修改收发速度以适应不同产商的通讯超时时间标准。
这种软件接口的设计方法有如下几个缺点:
1.在接入第三方智能设备时,主程序必须将智能设备的协议划分成几类,从中选择最接近的一类来接入;
2.如果有一种新的协议收发流程出现,主程序必须修改,增加遵守此协议收发流程的收发功能模块以后才能接入这种新特征的智能设备;
3.对于那些有严格收发流程的协议,主程序的控制命令的流程复杂常常使得控制功能无法实现或者需要新开发主程序以增加相应功能。
这些缺点造成主程序需求和接口结构的频繁变动,维护成本高、风险大。尤其是对不同协议不能兼容,必须修改主程序和协议标准,造成人力和时间成本的大幅度提高。
发明内容
基于此,本发明设计一种新的与第三方智能设备协议通讯的软件接口设计方法,该方法能够兼容不同的通讯协议,便于维护及使用,维护成本低。
本发明的另一个目地在于提供一种与第三方智能设备协议通讯的软件接口设计方法,该方法将协议从主程序中剥离出来,单独存储,使得对于不同协议之间的接口能够快速兼容,且不必更新主程序及接口。
本发明是这样实现的:
一种与第三方智能设备协议通讯的软件接口设计方法,在主程序控制下智能设备通过接口和协议进行通讯,其特征在于对应于主程序设置智能设备协议动态库,与协议相关的功能剥离出主程序单独封装存储于智能设备协议动态库中,且该智能设备协议动态库向主程序展示出相同的接口以供主程序调用协议。
所述的剥离,剥离出来的与协议相关的功能有:
1.协议的时序控制,包括:协议收发的流程和收发过程中的时间控制;
2.输出的协议帧的生成;
3.输入的协议数据流的组帧、校验检查、协议内容解析和向主程序反馈协议解析结果;
4.将主程序的控制信息转换成协议方式,按协议收发流程输出给主程序;
剥离出来的功能被封装成智能设备协议动态库,由于向主程序展现出来的接口是相同的,所以不同的智能设备的协议按这种方式封装后主程序都可以调用。主程序使用一组接口就可以调用所有的协议动态库。
其次,为了让主程序能同时与多个相同的智能设备或不同的智能设备通讯,智能设备协议动态库提供了2个接口用来分配协议数据区和释放协议数据区。
协议数据区是为了实现与各个物理设备独立通讯而开辟的一块独立的内存空间。每一个物理设备都有唯一一块用于存放通讯过程中的协议数据的内存空间,各个物理设备对应的协议数据区不相互重叠,完全独立。
协议数据区的功能如下:
1.保存协议收发时序信息,这包括下一协议周期要输出的协议帧、时间信息和流程步骤信息等等;
2.保存输入的残缺协议帧,这些残缺帧将与下一次收到的数据合并在一起组帧;
3.保存主程序下发过来的控制参数信息。
主程序在调用上述的智能设备协议动态库接口创建协议数据区时,协议数据区以句柄的方式交给主程序保存,但主程序并不访问这些句柄的内容。主程序在调用智能设备协议动态库的控制接口,或者按时钟周期调用协议动态库的输出协议数据流接口、输入协议数据流接口时将这个句柄交给智能设备协议动态库,由智能设备协议动态库来完成对协议数据区的访问操作。
时钟周期的时间尺度远远要小于所有智能设备的协议周期的时间尺度。
本发明将与协议相关的功能剥离出主程序单独封装,不同的智能设备的协议按这种方式封装后主程序都可以调用,让主程序能同时与多个相同的智能设备或不同的智能设备通讯,使得主程序保持不变,智能设备协议动态库的设置能够兼容不同的通讯协议,便于维护及使用,大大降低了智能设备接入的成本和风险。
附图说明
图1为本发明的智能设备协议动态库与主程序的示意图;
图2为本发明的主程序与智能设备协议动态库建立和释放协议数据区的结构示意图;
图3为本发明的协议周期和时钟周期的关系图。
具体实施方式
如图1所示,本发明是实施特点是对应于主程序设置智能设备协议动态库,该智能设备协议动态库向主程序展示出相同的接口以供主程序调用协议;与协议相关的功能剥离出主程序单独封装存储于智能设备协议动态库中;所剥离出来的与协议相关的功能有:
1、协议的时序控制,包括:协议收发的流程和收发过程中的时间控制;
2、输出的协议帧的生成;
3、输入的协议数据流的组帧、校验检查、协议内容解析和向主程序反馈协议解析结果;
4、将主程序的控制信息转换成协议方式,按协议收发流程输出给主程序。
其次,如图2所示,为了让主程序能同时与多个相同的智能设备和不同的智能设备通讯,智能设备协议动态库提供了2个接口用来分配协议数据区和释放协议数据区。协议数据区是为了实现与各个物理设备独立通讯而开辟的一块独立的内存空间。每一个物理设备都有唯一一块用于存放通讯过程中的协议数据的内存空间,各个物理设备对应的协议数据区不相互重叠,完全独立。
协议数据区的功能如下:
1、保存协议收发时序信息,这包括下一协议周期要输出的协议帧、时间信息和流程步骤信息等等;
2、保存输入的残缺协议帧,这些残缺帧将与下一次收到的数据合并在一起组帧;
3、保存主程序下发过来的控制参数信息。
主程序在调用上述的智能设备协议动态库接口创建协议数据区时,协议数据区以句柄的方式交给主程序保存,但主程序并不访问这些句柄的内容。主程序在调用智能设备协议动态库的控制接口,或者按时钟周期调用协议动态库的输出协议数据流接口、输入协议数据流接口时将这个句柄交给智能设备协议动态库,由智能设备协议动态库来完成对协议数据区的访问操作。
所谓的协议周期,是指智能设备要完成一个功能操作而收发协议所需要的时间。比如读取DU300开关电源整流模块的数据,需要向开关电源设备发送协议命令然后等待它的回应。发送协议命令就是这个协议周期的开始,接收到开关电源的应答并解析正确就是这个协议周期的结束,亦或者没有接收到开关电源的应答,因等待超时而导致这个协议周期结束。就算是进行相同的功能操作,这个时间长度是也不定的,这与协议通讯所依赖的传输环境有关,可能相同也可能不同。
所谓的时钟周期,是主程序特有的依次调用协议动态库输出接口和输入接口的时间间隔。每个时钟周期内主程序都要顺序进行如下操作:
1.调用1次协议动态库的输出协议数据流接口。如果从此接口获取到协议数据流,则将此数据流发送给对应设备。
2.调用1次协议动态库的输入数据流接口。如果从设备那里收到了数据流,则在此时将收到的数据流通过这个接口传递给协议动态库;如果没有收到从设备发来的数据,则在调用此接口时表明输入的数据流长度为0。
时钟周期的时间尺度远远要小于所有智能设备的协议周期的时间尺度。对于任何智能设备而言,一个协议周期将对应几个、几十个甚至上百个时钟周期。正是这个设计理念,使得主程序的一组接口就能够适应于所有的智能设备的协议收发流程。主程序如此之细的时间片完全能够描绘任何模式的协议流程,实现任何模式的协议周期。
下面是SM60电源协议收发时的时钟周期和协议周期:
SM60协议是典型的1对1模式的协议,在一个协议周期内只有1次输出1次输入。在传输条件恶劣时,输入的数据很可能被分成几块,每次输入只传入1块,但这并不否定SM60的1对1模式(因为这种特征定义是从协议层面上说的,不考虑其它因素的影响),也不会搅乱它的协议周期。从上面的例子可以看出,在协议周期的最后一个时钟周期的输入期间内,智能设备协议动态库在重组接收缓冲区中的协议帧时得到了一个完整帧,于是它触发协议的解析并完成向主程序的反馈,结束了这个协议周期。
对于主程序的控制操作,智能设备协议动态库自身完全能够根据当前协议数据区中协议收发的状态来判断是否要在下一个时钟周期进行。这种接口设计方法使得主程序能够保持不变,大大降低了智能设备接入的成本和风险。
Claims (7)
1、一种与第三方智能设备协议通讯的软件接口设计方法,在主程序控制下智能设备通过接口和协议进行通讯,其特征在于对应于主程序设置智能设备协议动态库,与协议相关的功能剥离出主程序单独封装存储于智能设备协议动态库中,且该智能设备协议动态库向主程序展示出相同的接口以供主程序调用协议。
2、如权利要求1所述的与第三方智能设备协议通讯的软件接口设计方法,其特征在于所述的剥离,剥离出来的与协议相关的功能有:
A、协议的时序控制,包括:协议收发的流程和收发过程中的时间控制;
B、输出的协议帧的生成;
C、输入的协议数据流的组帧、校验检查、协议内容解析和向主程序反馈协议解析结果;
D、将主程序的控制信息转换成协议方式,按协议收发流程输出给主程序;
3、如如权利要求1所述的与第三方智能设备协议通讯的软件接口设计方法,其特征在于为了让主程序能同时与多个相同的智能设备和不同的智能设备通讯,智能设备协议动态库提供了2个接口用来分配协议数据区和释放协议数据区。
4、如权利要求3所述的与第三方智能设备协议通讯的软件接口设计方法,其特征在于协议数据区的功能如下:
a、保存协议收发时序信息,这包括下一协议周期要输出的协议帧、时间信息和流程步骤信息等;
b、保存输入的残缺协议帧,这些残缺帧将与下一次收到的数据合并在一起组帧;
c、保存主程序下发过来的控制参数信息。
5、如权利要求4所述的与第三方智能设备协议通讯的软件接口设计方法,其特征在于主程序在调用上述的智能设备协议动态库接口创建协议数据区时,协议数据区以句柄的方式交给主程序保存,但主程序并不访问这些句柄的内容。
6、如权利要求5所述的与第三方智能设备协议通讯的软件接口设计方法,其特征在于主程序在调用智能设备协议动态库的控制接口,或者按时钟周期调用协议动态库的输出协议数据流接口、输入协议数据流接口时将这个句柄交给智能设备协议动态库,由智能设备协议动态库来完成对协议数据区的访问操作。
7、如权利要求6所述的与第三方智能设备协议通讯的软件接口设计方法,其特征在于时钟周期的时间尺度远远要小于所有智能设备的协议周期的时间尺度。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2008102175221A CN101404656A (zh) | 2008-11-04 | 2008-11-04 | 一种与第三方智能设备协议通讯的软件接口设计方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2008102175221A CN101404656A (zh) | 2008-11-04 | 2008-11-04 | 一种与第三方智能设备协议通讯的软件接口设计方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101404656A true CN101404656A (zh) | 2009-04-08 |
Family
ID=40538524
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2008102175221A Pending CN101404656A (zh) | 2008-11-04 | 2008-11-04 | 一种与第三方智能设备协议通讯的软件接口设计方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101404656A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106959870A (zh) * | 2017-02-20 | 2017-07-18 | 北京数字联盟网络科技有限公司 | Nginx动态模块加载方法和装置 |
CN107734487A (zh) * | 2014-07-14 | 2018-02-23 | 华为技术有限公司 | 控制可穿戴电子设备的方法、中心装置及设备 |
CN108737123A (zh) * | 2017-04-13 | 2018-11-02 | 厦门科灿信息技术有限公司 | 一种采集器通讯协议的配置方法 |
WO2018209554A1 (zh) * | 2017-05-16 | 2018-11-22 | 深圳中兴力维技术有限公司 | 一种接入第三方平台协议的装置 |
CN108933771A (zh) * | 2018-01-03 | 2018-12-04 | 杭州义益钛迪信息技术有限公司 | 一种模块级升级方式的通信局站设备协议解析方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1471291A (zh) * | 2002-07-26 | 2004-01-28 | 华为技术有限公司 | 一种用于智能网系统中支持多协议可拆卸的scf系统 |
CN101291326A (zh) * | 2008-05-28 | 2008-10-22 | 珠海中慧微电子有限公司 | 通信协议栈动态链接库 |
-
2008
- 2008-11-04 CN CNA2008102175221A patent/CN101404656A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1471291A (zh) * | 2002-07-26 | 2004-01-28 | 华为技术有限公司 | 一种用于智能网系统中支持多协议可拆卸的scf系统 |
CN101291326A (zh) * | 2008-05-28 | 2008-10-22 | 珠海中慧微电子有限公司 | 通信协议栈动态链接库 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107734487A (zh) * | 2014-07-14 | 2018-02-23 | 华为技术有限公司 | 控制可穿戴电子设备的方法、中心装置及设备 |
CN107734487B (zh) * | 2014-07-14 | 2020-03-27 | 华为技术有限公司 | 控制可穿戴电子设备的方法、中心装置及设备 |
CN106959870A (zh) * | 2017-02-20 | 2017-07-18 | 北京数字联盟网络科技有限公司 | Nginx动态模块加载方法和装置 |
CN106959870B (zh) * | 2017-02-20 | 2020-09-29 | 北京数字联盟网络科技有限公司 | Nginx动态模块加载方法和装置 |
CN108737123A (zh) * | 2017-04-13 | 2018-11-02 | 厦门科灿信息技术有限公司 | 一种采集器通讯协议的配置方法 |
WO2018209554A1 (zh) * | 2017-05-16 | 2018-11-22 | 深圳中兴力维技术有限公司 | 一种接入第三方平台协议的装置 |
CN108933771A (zh) * | 2018-01-03 | 2018-12-04 | 杭州义益钛迪信息技术有限公司 | 一种模块级升级方式的通信局站设备协议解析方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3399715B1 (en) | Protocol conversion method, platform, and protocol conversion gateway | |
CN100492302C (zh) | 基于Java的进程间异步通信的实现方法 | |
CN110381093B (zh) | 数据协议转换的方法、装置、数据传输的系统及电子设备 | |
CN113268319A (zh) | 基于微服务架构的业务流程定制与分布式流程调度方法 | |
CN102780613A (zh) | 一种分布式设备板间通信的方法与装置 | |
WO2011116556A1 (zh) | 基于物联网的无线通信终端及其应用方法 | |
CN104852939B (zh) | 一种部署能力接口的方法和系统 | |
CN101335648A (zh) | 一种不同接口报文间的自动转换方法及其装置 | |
CN105162673A (zh) | 数据传输接口及方法 | |
CN111294235B (zh) | 数据处理方法、装置、网关及可读存储介质 | |
CN101404656A (zh) | 一种与第三方智能设备协议通讯的软件接口设计方法 | |
CN102331935A (zh) | 一种嵌入式跨系统软件开发平台 | |
CN101478439A (zh) | 统一业务管理平台、接口机和业务处理系统及处理方法 | |
CN110166378B (zh) | 一种用于配网终端调试维护的通信系统及方法 | |
CN102448098B (zh) | 基于arm和dsp多核结构的物理层测试系统及方法 | |
US20220327010A1 (en) | Extensible communication framework and communication method supporting multiple communication protocols | |
WO2014139270A1 (zh) | 智能业务系统的业务实现方法及装置、智能业务系统 | |
CN102866925A (zh) | 一种中间件与用户界面的通信方法和系统 | |
CN102984258A (zh) | 物联网数据传输方法和适配器 | |
CN1960276B (zh) | 远程控制系统及方法 | |
CN101609427B (zh) | 一种可编程的网络服务自动化测试系统及方法 | |
CN102281197A (zh) | 一种rfid路由器架构系统 | |
CN109445384A (zh) | 一种多设备控制系统 | |
CN117439838A (zh) | 一种面向边缘计算网关主从机自适应快速组网方法 | |
CN105320517B (zh) | 基于web服务的适配器中间件系统及方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20090408 |