一种用于设备控制系统程序的开发方法及框架

著录项
  • CN201610132369.7
  • 20160307
  • CN105824616A
  • 20160803
  • 林友哲
  • 林友哲
  • G06F9/44
  • G06F9/44 G06F9/445

  • 天津市和平区南浮房大街建津里29-302
  • 天津(12)
摘要
本发明提供一种用于设备控制系统程序开发方法及框架,所述开发方法包括多入口文件接收服务请求启动,引导程序完成运行环境初始化和必要库引入,程序有前端、后端、API三种基于运行模式的类型,通过引入相应的程序段、插件、模块、引擎以完成程序的操作。规范驱动程序目录并使用目录推导法获得驱动函数名;开发可选地采用了本发明所述的伪面向对象的思想;在设备伺服、API响应及前端程序运行使用了本发明所述的多进程的方法;程序完成执行后输出视图文件或返回值,包括输出到浏览器上。
权利要求

1.一种用于设备控制系统程序的开发方法及框架,所述开发方法包括:

①程序接到服务请求由入口文件启动,先载入初始化引导程序,完成必要库的引入、预 加载并引导相应的环境程序和激活全局变量,程序根据其前端、后端、API三种运行类型加 载相应的文件,并根据用户传入参数执行相应的流程,其中引入相应的程序段、插件、模块、 引擎以完成程序的操作;

②在引入(虚/实)设备驱动程序时采用了本发明所述的目录推导法得到驱动函数名及驱 动后续函数名;

③在包括不仅限于程序段、插件、模块及引擎的引入流程中使用了本发明所述伪面向对 象的方法;

④在设备伺服、API响应及前端程序运行使用了本发明所述的多进程的方法,通过进程 管理器进行进程的呼叫和起停,进程管理器通过对指定目录下的文件进行遍历并读取待激活 进程信息实现对指定进程的自动启动同时接受人工控制。设备伺服进程和API进程通过数据 库与其它进程进行协作。

⑤程序完成执行后输出视图文件或返回值。

2.根据权利要求1所述的用于设备控制系统程序开发方法,其特征在于:所述的入口文 件不仅限于唯一的入口文件,程序可能同时存在若干个入口文件。所述的服务请求包括网络 路径和文件路径。

3.根据权利要求1所述的用于设备控制系统程序开发方法,其特征在于:所述的开发方 法还包括将所述的必要库、需预加载的并引导的相应的环境程序、全局变量激活程序、前端、 后端、API三种运行类型对应的相应的文件、要执行的相应的流程文件、程序段、插件、模 块、引擎、驱动,根据分类放置在不同的目录中。

4.根据权利要求1所述的用于设备控制系统程序开发方法,其特征在于:所述的开发方 法还包括驱动文件的命名及目录结构是根据程序的需要进行规定的。

5.根据权利要求1所述的用于设备控制系统程序开发方法,其特征在于:所述的开发方 法还包括在使用了本发明所述伪面向对象的方法的过程中传入变量、传出变量和引入函数, 根据程序的需要规定了变量名称头和函数名称头避免重复变量名称。

6.根据权利要求1所述的用于设备控制系统程序开发方法,其特征在于:所述的开发方 法还包括,将所述的视图文件以web形式展现在浏览器上,将返回值通过普通字符串、JSON、 XML或指定规则的格式输出。

7.一种用于设备控制系统程序的开发方法及框架,所述开发框架包括:

配置文件及引导程序:用于对程序的运行环境进行初始化和必要库文件引入,并依据配 置文件引入所需库文件,预加载相应环境程序,激活全局变量。

函数库文件:用于预置的在程序开发过程中可能需要用到的各种函数。

引擎文件库:封装了常用的成套操作,以便开发过程中快速调用。

驱动文件库:封装了常用外接单位的驱动程序。

执行文件库:封装了程序需要高频执行的程序。

扩展文件库:用以存放各种需要用到的框架扩展文件。

组件框架文件:包括API框架文件、前端程序框架文件、后端程序框架文件(包括伺服 程序)、进程管理器框架,及其组件。

模版文件库:内置有需要输出的前端程序的模版文件。

API文件库:内置有在程序开发过程当中需要常用到的API文件,用于程序内外部通信。

8.根据权利要求7所述的开发框架,其特征在于:所述的引导程序、函数库文件、引擎 文件、驱动文件、执行文件、扩展文件、组件框架文件、API文件,包括用户根据项目需要 所新开发或二次开发的此类文件。

9.根据权利要求8所述的开发框架,其特征在于:所述的引擎文件还包扩常用网络通信 协议的实现、与常用数据库、服务、第三方程序交互程序的实现、对硬件设备及接口的驱动 文件的实现、程序操作的封装。

10.根据权利要求9所述的开发框架,其特征在于:所述的驱动文件库所指的外接单位 还包括硬件设备、软件程序和虚拟设备。

说明书
技术领域

本发明设计一种计算机技术,尤其是一种用于设备控制系统程序的开发方法及框架。

①本发明使用的是PHP、JAVASCRIPT、HTML、CSS开发语言。

PHP(外文名:PHP:HypertextPreprocessor,中文名:“超文本预处理器”)是一种通 用开源脚本语言。语法吸收了C语言、Java和Perl的特点,利于学习,使用广泛,主要适 用于Web开发领域。PHP独特的语法混合了C、Java、Perl以及PHP自创的语法。它可以比 CGI或者Perl更快速地执行动态网页。用PHP做出的动态页面与其他的编程语言相比,PHP 是将程序嵌入到HTML(标准通用标记语言下的一个应用)文档中去执行,执行效率比完全生 成HTML标记的CGI要高许多;PHP还可以执行编译后代码,编译可以达到加密和优化代码运 行,使代码运行更快。

JavaScript一种直译式脚本语言,是一种动态类型、弱类型、基于原型的语言,内置支 持类型。它的解释器被称为JavaScript引擎,为浏览器的一部分,广泛用于客户端的脚本语 言,最早是在HTML(标准通用标记语言下的一个应用)网页上使用,用来给HTML网页增加 动态功能。

HTML超级文本标记语言是标准通用标记语言下的一个应用,也是一种规范,一种标准, 它通过标记符号来标记要显示的网页中的各个部分。网页文件本身是一种文本文件,通过在 文本文件中添加标记符,可以告诉浏览器如何显示其中的内容(如:文字如何处理,画面如 何安排,图片如何显示等)。

CSS层叠样式表是一种用来表现HTML(标准通用标记语言的一个应用)或XML(标准通 用标记语言的一个子集)等文件样式的计算机语言,是能够真正做到网页表现与内容分离的 一种样式设计语言。相对于传统HTML的表现而言,CSS能够对网页中的对象的位置排版进行 像素级的精确控制,支持几乎所有的字体字号样式,拥有对网页对象和模型样式编辑的能力, 并能够进行初步交互设计,是目前基于文本展示最优秀的表现设计语言。

②现在设备控制系统应用范围越来越广泛,大量的设备智能化物、联网化,应用于诸如 家居、楼宇、社区等原先的传统领域。越来越多的领域正在走上自动化、智能化、物联网化, 它们都需要设备控制系统。在这些领域设备控制系统的开发是一个复杂的过程。

③众多不同的需求和实施环境所开发的设备控制系统具备很多共通之处,许多开发内容 相似且高频的出现,这些内容的代码可以重用。程序开发框架内预建了完备成熟模块和代码 片段,以便开发者在开发的过程中进行调用。它犹如为设备控制系统的开发建立了一个生产 流水线,一个灵活完备的开发框架能够帮助开发者更轻松更有质量的开发出高效、稳定、优 质且拓展性强的设备控制系统。

④PHP+JAVASCRIPT+HTML+CSS本是互联网WEB领域应用最广泛的技术解决方案,人与互 联网的交互主要是通过WEB来进行。在当今互联网+的浪潮下,物联网飞速发展且与人与互联 网与WEB越来的密不可分,WEB是一个将人与物联网与受控设备交互的最佳手段之一,通过 WEB来进行人与设备控制系统与受控设备进行交互将非常的简单。PHP技术作为本框架重要的 后端解决技术它的无需编译、弱类型、热部署、丰富的库函数、强大的哈希表(关联数组)、 非常广泛的跨平台等等这些优势也非常适应当前设备控制系统需求的多样性和多变性,对开 发的灵活性、可拓展性和可维护性的需求,而且PHP的开发非常的高效最新的PHP7运行环境 还带来的PHP运行效率的极大的提升该,项技术本身的发展潜力也很大。

PHP+JAVASCRIPT+HTML+CSS技术当今在世界范围内保有大量的开发者,非常容易到现有的 从业人员,绝大多数互联网应用的开放平台均提供PHP-SDK,非常方便的与之进行融合。而 PHP+JAVASCRIPT+HTML+CSS构建的设备控制系统程序开发框架使得WEB开发和设备控制系统 开发共用一套开发技术,技术的一致性带来开发团队、系统运行、部署和兼容性上的不计其 数优点。

鉴于此,到一个为设备控制系统量身定做的完备、高效、灵活的有PHP、JAVASCRIPT、 HTML、CSS技术实现的程序开发框架成为本领域技术人员急需解决的问题。

鉴于以上需求及克服现有技术的不足之处,本发明提供了一种用于设备控制系统程序的 开发方法及框架。

本发明为了达到上述目的是采取以下技术方案实现的:

通过PHP来完成主要后台部分,由JAVASCRIPT来配合,通过HTML、CSS、JAVASCRIPT、 PHP的接合配合来完成前台的表现部分。将经常需要复用到的函数分类建立独立文件组成框 架基础函数库;将经常需要复用到的功能建立成代码片段模块预置于框架之内,代码片段主 要通过诸如INCLUDE/INCLUDE_ONCE/REQUIRE/REQUIRE_ONCE操作被引入模块通过实例化调 用;将经常需要用到的高频操作(包括不仅限于诸如SOCKET_TCP、SOCKET_UDP、HTTP、EMAIL 等)独立成引擎预置于框架之内,存在形式也主要是代码片段/模块;预置对外API常用到的 片段模块并独立预置于框架之内;将常用不同初始化文件制作成片段模块独立预置于框架 之内;建立设备驱动文件集中文件夹并在子文件夹中分立不同文件的驱动文件和信息表文件, 驱动函数名由文件夹路径推断,统一函数传入值格式;预置图片、影音文件和模版文件文件 夹;将javascript、css和字体文件合并置于一个预置文件夹的各子文件夹下,这些子文件 夹是不同的前段框架或前段文件集;将配置文件分立置于配置文件夹下;独立扩展文件夹; 独立非默认插件文件夹,插件文件夹下的每一个子文件夹均为一个插件;成品产品自定义文 件也存在一个专有文件夹;钩子文件存在于一个独立文件夹下的二级目录中,一级目录下是 钩子的识别&触发文件;

主目录下包括前端入口文件,设备动作及查询API入口文件,对外API入口文件,总初 始化文件,各页面入口文件,各个后台常驻程序文件及其启动BAT,所需的独立协议支持文 件,及其它由于路径等原因必须要放在主目录下的文件。

在框架内预置一个整套的默认于设备的通信反馈控制规则,以便设备厂商更方便配合框 架。

在主目录下置有扩展程序文件夹,用以存放对框架自身进行扩展延伸的程序,统一规划 的扩展方式,提升框架的可扩展性。

在主目录下置有启动文件集文件夹,主目录下置有主引导程序和相应的引导引擎,主引 导程序启动后将检索并引入启动文件文件夹下的所有文件,并载入它们相应的引导引擎,呼 起对应的进程。通过控制台和数据库输入并传递控制指令,主引导程序进行相应数据传递和 进程启动关闭操作。包括不仅限于用以设备监控、伺服和程序自动值守等场景使用。

本发明的框架主要采用片段引入的方式,函数的通过规范命名规则以避免名称碰撞。

本发明采用了伪面向对象思想。

可选地,API程序与伺服程序服务程序使用数据库进行协作,以便更好的协作任务队列 和数据。

可选地,在驱动文件夹下可预置部分指定型号的设备的驱动文件,以便框架默认就具备 对部分设备的直接支持。

可选地,在引擎文件夹下的独立引擎文件所需的函数库可独立预置在函数库文件夹下, 以便引用内容最小化。

可选地,javascript、css和字体文件夹下可预置现有的成熟的合适的前端框架。

可选地,根据不同的发行需要可在非默认插件文件夹下预置一些可能需要的插件。

可选地,在模版文件夹下预置一套默认模版。

本发明的优点和积极效果是:

本发明所提供的用于设备控制系统程序的开发方法及框架,在兼顾WEB程序的开发方法 及框架功能及特征的情况下跳出PHP+JAVASCRIPT+HTML+CSS的传统应用范畴将面对设备控制 方面的开发需求也完美的融合进来。本发明的结构设计特立独行的适合面向过程、函数式开 发,更加适合开发运行高效的程序成品,结构清晰合理并具有极高的拓展性,通过本发明方 法及框架开发的设备控制程序在每一次功能底层框架的拓展升级都非常的平滑,不会影响 其它的部分。新的设备在加入的时候都不会影响其它任何设备和任何已经在运行的功能。通 过本发明所编写的程序既可以集成成运行环境打包在不同的操作系统中独立运行,也可以采 取更简便、稳定、易于部署和维护的C/S模式,用户和SERVER构筑连接只需浏览器就可以完 成全部的控制操作。本发明接合云的概念将对外API预置于本发明内,使得通过本发明开发 的设备控制系统程序轻松能够拥有能够对接其它系统/云端的对外API,还能和其它系统点对 点的配合,易于搭建云、P2P和对接其它开放平台的设备控制系统程序。通过本发明提供的 用于设备控制系统程序的开发方法及框架开发的设备控制系统程序可以实现热部署、热升级、 设备的热加入热退出和广泛的跨平台迁移。

本发明的开发框架对模块&程序段、驱动、扩展等部分的调用特立独行的提出了以固定名 称的已定义变量为传入数据以固定名称的变量为传出数据的方法,使用伪面向对象思想充分 亲和面向过程&函数式开发,带来了更高的开发灵活性、更高的完成品运行效率并使得代码可 更简洁。每台设备独立进程伺服、通过数据库进行协作通过进程管理器进行起停呼叫、API 为核心的架构和微服务的思想不谋而合,使得完成品程序天生具有更高的稳定性、更灵活的 资源利用和更高的使用拓展性。

本发明的开发方法和框架在使得软件工程师可以轻易上手以外更亲近硬件工程师的思考 习惯。

图1是本发明的开发方法的一种实施的流程示意图。

图2是本发明的开发框架的进程管理器示意图。

图3是本发明的开发方法所述的伺服/服务进程示意图。

图4是本发明的开发框架开发的程序运行示意图。

图5是本发明的开发方法所述的多进程模型示意图。

图6是本发明的开发方法所述的伪面向对象模型示意图。

图7是本发明的开发方法所述的驱动程序函数名推导及驱动流程示意图。

下面结合附图并通过具体实施例对本发明作进一步详述,以下实施例只是描述性的,不 是限定性的,不能以此限定本发明的保护范围。

一种用于设备控制系统程序的开发方法及框架具体实施步骤如下:

【1】将经常需要复用到的函数分类建立独立文件组成框架基础函数库,分类分立文件, 放置于框架主目录下的基础函数库专属文件夹下。这些基础函数包括不仅限于经常用到的如 下类型的操作函数,字符串&数据处理函数、编码转换函数、获取连接对象信息函数、数据库 基本操作函数、基本底层事件函数等可归类为基础函数的函数。

【2】将经常需要复用到的功能建立成代码片段模块预置于框架之内,代码片段主要通过 诸如INCLUDE/INCLUDE_ONCE/REQUIRE/REQUIRE_ONCE操作被引入模块通过实例化调用,独立 文件夹分类分立存放。这部分是常用的程序片段但不是完整过程,他们是不宜通过函数来实 现或有特殊需要的部分。

【3】将经常需要用到的高频操作(包括不仅限于诸如SOCKET_TCP、SOCKET_UDP、HTTP、 EMAIL等)独立成引擎预置于框架之内,存在形式也主要是代码片段/模块;预置对外API常 用到的片段模块并独立预置于框架之内组成框架引擎部分。他们集中在引擎文件夹中,每一 个引擎独立文件夹,他们是常用的完整的过程,他们的函数库也可选的加入到基础库文件夹 下或置于引擎文件夹下,但不得对程序的其它部分构成影响。

【4】预置对外API常用到的片段模块并独立预置于框架之内;将常用不同初始化文件制 作成片段模块独立预置于框架之内,放置于框架内的对外API专属文件夹下。这些片段模 块功能是服务于创建对外API所使用的,本身已经接近于成品对外API的状态,内容包括不 仅限于:对外API主程序半成品、控制/反馈附属程序半成品、API常用动作模块(包括不 仅限于诸如OAuth令牌生成、OpenID字符串创建、P2P验证码生成、加密及校验等),方便 开发者最快速度构建完善的对外API。

【5】预置图片文件夹和前端文件文件夹。将图片文件独立为一个文件夹下,将Javascript 文件、CSS文件和FONT(字体)文件合并于一个文件夹下,该文件夹下还预置一些常用到的 前端框架(譬如但不仅限定于BOOTSTRAP、JQUERY、CHART.JS等),方便开发者最快速的引 用并搭建前段且不对框架的其它部分构成影响。

【6】预置对象文件库文件夹,以存放部分已既有的对象文件库,方便开发者调用且不混 乱。

【7】预置引导文件库文件夹,并在该文件夹下预置一些常用的、高频的、需求度高的引 导文件。引导文件指的是某个程序动作的引导文件,包含对该动作的环境建立、初始化、启 动、(可选的)过程、(可选的)完成。譬如但不仅限于以下动作:HTML页面头输出、MYSQL 数据库连接、EMAIL投送等。

【8】预置模版文件库文件夹,分为两类动态模板库和静态模板库。其中动态模版库下的 模版将静态模版文件和部分对应该模版需要的动态文件内容混合综合在了一起。静态模版库 内只包含静态模版文件,前端与后端分离依赖模版引擎将它与程序结合。

【9】预置驱动文件库文件夹,并预置部分通用驱动文件及部分设备的专用驱动文件。驱 动文件分主驱动文件和虚拟驱动文件两种。置于不同的多级文件夹下,文件夹采用“(可选 的)设备类型/(可选的)厂商/(必选)设备型号/(可选的)其它信息”的命名方法,驱动 文件本身采用通用命名方式主驱动文件为统一的名称,虚拟驱动文件为统一的名称。驱动函 数采用统一的命名方式,主驱动函数名为将从根文件夹到文件所在目录的路径所有“/”改为 “_”并置有统一的函数开头,删除首尾的“_”。例如(驱动文件A所在相对程序根目录的 目录的目录为“/DIRVER/1/2/3/4/”统一的函数开头为“oibc_”则函数名为 oibc_DIRVER_1_2_3_4”。函数具有统一的输入格式,为(地址,端口,动作代码,信息), 例如:主驱动函数functionoibc_DIRVER_1_2_3_4($address,$port,$do,$msg)虚拟驱动函 数functionoibc_DIRVER_1_2_3_4_xn($address,$port,$do,$msg)。虚拟驱动函数和主驱动 函数均不一定必须存在。

【10】独立置系统大引导文件,用以初始化每个程序的运行环境,同时设置安全全局变量, 每一个程序在运行时都会检查该变量一变判断是否在一个不安全的环境下运行以终止程序。

【11】独立置系统API文件,该文件负责设备操作&反馈、系统数据库API操作、系统内 通信等。该文件通过根据数据不同的指令值载入不同的驱动操作片段文件来实现不同的API 操作。

【12】独立置WEB端主入口文件。本框架设置有主入口文件但并不限定开发者只采用单一 入口开发的思路。

【13】置后台常驻程序模版文件,用以帮助开发人员快速衍生开发后台常驻程序。

【14】置COOKIE文件夹,该文件夹用以存放程序模拟成CLIENT时产生的COOKIE。

【15】预置CACHE缓存文件夹和UPDATE框架升级文件夹。

【16】预置配置文件文件夹,其中包括不仅限于以下配置文件:程序基础配置文件、数据 库配置文件、预置动作配置文件(譬如但不仅限于:预先启动MYSQL连接)、管理员信息设 置文件、设备信息文件、API接口配置文件。

【17】在主目录下独立置有启动文件集文件夹,主目录下置有主引导程序和相应的引导引 擎,主引导程序启动后将检索并引入启动文件文件夹下的所有文件,并载入它们相应的引导 引擎,呼起对应的进程。通过控制台和数据库输入并传递控制指令,主引导程序进行相应数 据传递和进程启动关闭操作。包括不仅限于用以设备监控、伺服和程序自动值守等场景使用。

【18】在主目录下置有扩展程序文件夹,用以存放对框架自身进行扩展延伸的程序,统一 规划的扩展方式,提升框架的可扩展性。

【19】当一个伪面向对象程序被引入时,程序先会执行运行环境的安全检查,而后检查必 要变量和不必要变量是否已被设置和赋值。若必要变量未被设置和赋值,则跳出伪面向对象 程序;若不必要变量未被设置和赋值,则可选地初始化不必要变量。执行程序内容,为输出 值变量进行赋值。本条所述的必要变量、不必要变量和输出值变量均使用约定好的名称。当 需要引入一个函数时,则通过约定好的名称头+可选的函数名称身+指定后缀对函数进行命名。

以上流程构建了一个PHP开发框架。由此框架构建的程序绝大部分的来自用户浏览器的 访问请求均默认导向主入口文件,并由主入口文件引入系统大引导文件及各组建来完成对请 求的处理。绝大部分对设备控制操作及数据反馈读取的请求均默认由系统API文件来处理, 系统API文件引入系统大引导文件并解析所需控制设备的驱动程序路径并引入,读取所要控 制/读取反馈值的设备的地址、端口及其它信息并解析其驱动程序函数名将用户的请求和设备 信息传入驱动程序,并完成后续的数据处理及输出工作。绝大部分的后台常驻进程由台常驻 程序模版文件衍生,并进程独立运行,以互不干扰。绝大部分对外/系统间的通信又对外API 承担,不同进程间通过数据库/SOCKET进行通信。由于本框架的模块/片段化特性使得零散的 程序可以通过对模块/片段的零散的引入而灵活且又轻量的实现。本框架构建了一个为设备控 制系统程序量身定做的PHP开发框架,将设备控制、WEB、与全球互联网的第三方开放平台整 合及自身私有API&开放API的搭建有机的接合,同时PHP+MYSQL技术作为服务端支柱对云计 算有着天生的亲和能力(近乎现在所有的云环境都能运行PHP程序并支持MYSQL数据库)。 开发出来的程序具有灵活部署、跨平台、浏览器替代客户端易于使用、热升级、与第三方平 台具备天生亲和性及云亲和的特性。本框架更偏重函数编程亲过程化,更具备效率优势。本 发明设备控制系统程序开发方法及框架使得PHP开发的程序可以跳出传统的WEB领域更方便 高效的拓展到设备自控、智能化、物联网领域并且和WEB、云、开放API领域的开发兼顾使 得它们可以同处一个框架下融合开发。并且本发明设备控制系统程序开发方法及框架使得PHP 的开发灵活性大大提高且兼顾的运行效率,同时亲近函数编程及过程化编程。本发明独创了 通过函数式和过程化的有机结合,充分利用了INCLUDE&INCLUDE_ONCE函数在较新版PHP环境 中的性能特立独行的创造了伪面向对象与函数式过程式接合的PHP开发框架,并将主要应用 场景是WEB领域的PHP技术应用于控制领域创造了从web端到设备控制端都使用PHP技术(配 合Javascript+CSS+HTML)的设备控制系统程序开发方法及框架。所以本发明有效的克服了 现有技术的种种缺点而具备高度的产业价值。

上述表述及实施例仅示例性说的对本发明的原理与其功效进行说明,并非用于限制本发 明。任何掌握或熟悉此范畴技术的人均可在不违背本发明的精神及范畴的情况下对本发明进 行改变或修饰。因此凡在本发明所属技术领域中的具有通常知识的人员在未脱离本发明所揭 示的精神与技术思想下所完成的一切等效的改变或修饰,皆仍应由本发明的权利要求所涵盖。

本文发布于:2024-09-24 12:20:28,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/1/85411.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议