CN105824616A - 一种用于设备控制***程序的开发方法及框架 - Google Patents
一种用于设备控制***程序的开发方法及框架 Download PDFInfo
- Publication number
- CN105824616A CN105824616A CN201610132369.7A CN201610132369A CN105824616A CN 105824616 A CN105824616 A CN 105824616A CN 201610132369 A CN201610132369 A CN 201610132369A CN 105824616 A CN105824616 A CN 105824616A
- Authority
- CN
- China
- Prior art keywords
- file
- program
- framework
- development
- control system
- 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
- 238000000034 method Methods 0.000 title claims abstract description 61
- 238000011161 development Methods 0.000 title claims abstract description 45
- 230000008569 process Effects 0.000 claims abstract description 32
- 230000006870 function Effects 0.000 claims description 55
- 238000013459 approach Methods 0.000 claims description 20
- 238000004891 communication Methods 0.000 claims description 4
- 230000003993 interaction Effects 0.000 claims description 2
- 238000009795 derivation Methods 0.000 claims 1
- 238000005538 encapsulation Methods 0.000 claims 1
- 239000008186 active pharmaceutical agent Substances 0.000 description 23
- 238000005516 engineering process Methods 0.000 description 12
- 201000001432 Coffin-Siris syndrome Diseases 0.000 description 10
- 230000009471 action Effects 0.000 description 9
- 239000012634 fragment Substances 0.000 description 8
- 238000013461 design Methods 0.000 description 5
- 230000008901 benefit Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 239000000203 mixture Substances 0.000 description 4
- 230000003068 static effect Effects 0.000 description 4
- 230000004899 motility Effects 0.000 description 3
- 239000000047 product Substances 0.000 description 3
- PXFBZOLANLWPMH-UHFFFAOYSA-N 16-Epiaffinine Natural products C1C(C2=CC=CC=C2N2)=C2C(=O)CC2C(=CC)CN(C)C1C2CO PXFBZOLANLWPMH-UHFFFAOYSA-N 0.000 description 2
- 239000004606 Fillers/Extenders Substances 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 235000014510 cooky Nutrition 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 230000006855 networking Effects 0.000 description 2
- 239000011265 semifinished product Substances 0.000 description 2
- 230000006399 behavior Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000000739 chaotic effect Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 150000001875 compounds Chemical class 0.000 description 1
- 239000012141 concentrate Substances 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 238000013467 fragmentation Methods 0.000 description 1
- 238000006062 fragmentation reaction Methods 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 230000009191 jumping Effects 0.000 description 1
- 238000002372 labelling Methods 0.000 description 1
- 235000015250 liver sausages Nutrition 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000003550 marker Substances 0.000 description 1
- 230000035800 maturation Effects 0.000 description 1
- 230000005012 migration Effects 0.000 description 1
- 238000013508 migration Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 238000003032 molecular docking Methods 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000001737 promoting effect Effects 0.000 description 1
- 238000003860 storage Methods 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/20—Software design
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/76—Adapting program code to run in a different environment; Porting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明提供一种用于设备控制***程序开发方法及框架,所述开发方法包括多入口文件接收服务请求启动,引导程序完成运行环境初始化和必要库引入,程序有前端、后端、API三种基于运行模式的类型,通过引入相应的程序段、插件、模块、引擎以完成程序的操作。规范驱动程序目录并使用目录推导法获得驱动函数名;开发可选地采用了本发明所述的伪面向对象的思想;在设备伺服、API响应及前端程序运行使用了本发明所述的多进程的方法;程序完成执行后输出视图文件或返回值,包括输出到浏览器上。
Description
技术领域
本发明设计一种计算机技术,尤其是一种用于设备控制***程序的开发方法及框架。
背景技术
①本发明使用的是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)的设备控制***程序开发方法及框架。所以本发明有效的克服了现有技术的种种缺点而具备高度的产业价值。
上述表述及实施例仅示例性说的对本发明的原理与其功效进行说明,并非用于限制本发明。任何掌握或熟悉此范畴技术的人均可在不违背本发明的精神及范畴的情况下对本发明进行改变或修饰。因此凡在本发明所属技术领域中的具有通常知识的人员在未脱离本发明所揭示的精神与技术思想下所完成的一切等效的改变或修饰,皆仍应由本发明的权利要求所涵盖。
Claims (10)
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所述的开发框架,其特征在于:所述的驱动文件库所指的外接单位还包括硬件设备、软件程序和虚拟设备。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610132369.7A CN105824616A (zh) | 2016-03-07 | 2016-03-07 | 一种用于设备控制***程序的开发方法及框架 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610132369.7A CN105824616A (zh) | 2016-03-07 | 2016-03-07 | 一种用于设备控制***程序的开发方法及框架 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105824616A true CN105824616A (zh) | 2016-08-03 |
Family
ID=56987591
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610132369.7A Pending CN105824616A (zh) | 2016-03-07 | 2016-03-07 | 一种用于设备控制***程序的开发方法及框架 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105824616A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108415735A (zh) * | 2018-02-01 | 2018-08-17 | 天津麒麟信息技术有限公司 | 一种Web浏览器快速启动方法 |
CN108536431A (zh) * | 2018-04-04 | 2018-09-14 | 浙江小泰科技有限公司 | 一种全局命令行创建前端项目方法及*** |
CN109144520A (zh) * | 2018-09-03 | 2019-01-04 | 武汉斗鱼网络科技有限公司 | Android中不同对象间的信息交互方法、装置、设备和存储介质 |
CN110471649A (zh) * | 2019-07-11 | 2019-11-19 | 广州向导信息科技有限公司 | 一种编写web服务端程序的开发平台及方法 |
CN110798452A (zh) * | 2019-10-16 | 2020-02-14 | 北京邮电大学 | 轻量级的物联网服务生成***及方法 |
TWI769696B (zh) * | 2020-02-14 | 2022-07-01 | 日商三菱電機股份有限公司 | 驅動控制裝置及驅動控制系統 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW200739426A (en) * | 2006-04-14 | 2007-10-16 | Yi-Min Yang | Method for integrating webpage server and dynamic webpage program to be a single execution file to protect the dynamic webpage source codes |
CN101276279A (zh) * | 2008-05-21 | 2008-10-01 | 天柏宽带网络科技(北京)有限公司 | 一种统一开发***和方法 |
CN102207866A (zh) * | 2011-05-25 | 2011-10-05 | 盛乐信息技术(上海)有限公司 | 基于WebOS的应用程序开发、发布、安装、运行***及方法 |
US20110321010A1 (en) * | 2010-06-24 | 2011-12-29 | Yifei Wang | Web application framework based on object oriented class mapping |
US8954989B1 (en) * | 2007-11-19 | 2015-02-10 | Appcelerator, Inc. | Flexible, event-driven JavaScript server architecture |
CN104866327A (zh) * | 2015-06-19 | 2015-08-26 | 上海斐讯数据通信技术有限公司 | 一种php开发方法及框架 |
CN105068801A (zh) * | 2015-08-06 | 2015-11-18 | 福建天晴数码有限公司 | 修改json日期格式的方法及*** |
-
2016
- 2016-03-07 CN CN201610132369.7A patent/CN105824616A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW200739426A (en) * | 2006-04-14 | 2007-10-16 | Yi-Min Yang | Method for integrating webpage server and dynamic webpage program to be a single execution file to protect the dynamic webpage source codes |
US8954989B1 (en) * | 2007-11-19 | 2015-02-10 | Appcelerator, Inc. | Flexible, event-driven JavaScript server architecture |
CN101276279A (zh) * | 2008-05-21 | 2008-10-01 | 天柏宽带网络科技(北京)有限公司 | 一种统一开发***和方法 |
US20110321010A1 (en) * | 2010-06-24 | 2011-12-29 | Yifei Wang | Web application framework based on object oriented class mapping |
CN102207866A (zh) * | 2011-05-25 | 2011-10-05 | 盛乐信息技术(上海)有限公司 | 基于WebOS的应用程序开发、发布、安装、运行***及方法 |
CN104866327A (zh) * | 2015-06-19 | 2015-08-26 | 上海斐讯数据通信技术有限公司 | 一种php开发方法及框架 |
CN105068801A (zh) * | 2015-08-06 | 2015-11-18 | 福建天晴数码有限公司 | 修改json日期格式的方法及*** |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108415735A (zh) * | 2018-02-01 | 2018-08-17 | 天津麒麟信息技术有限公司 | 一种Web浏览器快速启动方法 |
CN108415735B (zh) * | 2018-02-01 | 2022-04-05 | 麒麟软件有限公司 | 一种Web浏览器快速启动方法 |
CN108536431A (zh) * | 2018-04-04 | 2018-09-14 | 浙江小泰科技有限公司 | 一种全局命令行创建前端项目方法及*** |
CN109144520A (zh) * | 2018-09-03 | 2019-01-04 | 武汉斗鱼网络科技有限公司 | Android中不同对象间的信息交互方法、装置、设备和存储介质 |
CN109144520B (zh) * | 2018-09-03 | 2022-05-13 | 武汉斗鱼网络科技有限公司 | Android中不同对象间的信息交互方法、装置、设备和存储介质 |
CN110471649A (zh) * | 2019-07-11 | 2019-11-19 | 广州向导信息科技有限公司 | 一种编写web服务端程序的开发平台及方法 |
CN110798452A (zh) * | 2019-10-16 | 2020-02-14 | 北京邮电大学 | 轻量级的物联网服务生成***及方法 |
CN110798452B (zh) * | 2019-10-16 | 2021-01-05 | 北京邮电大学 | 轻量级的物联网服务生成***及方法 |
TWI769696B (zh) * | 2020-02-14 | 2022-07-01 | 日商三菱電機股份有限公司 | 驅動控制裝置及驅動控制系統 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11861334B2 (en) | Providing communication between a client system and a process-based software application | |
CN105824616A (zh) | 一种用于设备控制***程序的开发方法及框架 | |
CA2915620C (en) | Method and apparatus for code virtualization and remote process call generation | |
US20220391221A1 (en) | Providing a different configuration of added functionality for each of the stages of predeployment, deployment, and post deployment using a layer of abstraction | |
WO2018036342A1 (zh) | 基于csar的模型文件的可视化设计方法及装置 | |
CN102495735A (zh) | web 端UI组件应用框架*** | |
US9460230B1 (en) | Method and system for visual styling of visual elements for applications | |
CN106997298A (zh) | 一种应用资源获取方法及装置 | |
CN104407863A (zh) | 抽象控件模型编程装置和方法 | |
CN113010827B (zh) | 页面渲染方法、装置、电子设备以及存储介质 | |
CN110895471A (zh) | 安装包生成方法、装置、介质及电子设备 | |
CN112114890A (zh) | 小程序的处理方法、装置、设备及存储介质 | |
WO2016005887A2 (en) | Client-side template engine and method for constructing a nested dom module for a website | |
CN108536431A (zh) | 一种全局命令行创建前端项目方法及*** | |
US20160012144A1 (en) | Javascript-based, client-side template driver system | |
WO2016005885A2 (en) | Asynchronous initialization of document object model (dom) modules | |
KR101086620B1 (ko) | 스마트 오피스 시스템 및 운용을 위한 서버 및 운용 방법 | |
WO2024066825A1 (zh) | 页面项目开发方法、装置、设备、介质及产品 | |
CN115113850A (zh) | 一种跨平台应用的构建、运行方法、服务器、终端和*** | |
Miravet et al. | Framework for the declarative implementation of native mobile applications | |
WO2016005886A2 (en) | Self-referencing of running script elements in asychronously loaded dom modules | |
JP4836412B2 (ja) | グラフィカル・ユーザ・インタフェースを生成する方法および装置 | |
CN112287266A (zh) | 一种网页配置的处理方法及其装置、设备及存储介质 | |
Martinez et al. | Migrating c/c++ software to mobile platforms in the adm context | |
CN112685051A (zh) | 自动执行shell脚本的方法、装置、平台及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
DD01 | Delivery of document by public notice | ||
DD01 | Delivery of document by public notice |
Addressee: Lin Youzhe Document name: Notice of first review opinion |
|
DD01 | Delivery of document by public notice | ||
DD01 | Delivery of document by public notice |
Addressee: Lin Youzhe Document name: Deemed withdrawal notice |
|
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20160803 |