CN112860244A - 一种图形化编程方法和系统 - Google Patents
一种图形化编程方法和系统 Download PDFInfo
- Publication number
- CN112860244A CN112860244A CN202110223902.1A CN202110223902A CN112860244A CN 112860244 A CN112860244 A CN 112860244A CN 202110223902 A CN202110223902 A CN 202110223902A CN 112860244 A CN112860244 A CN 112860244A
- Authority
- CN
- China
- Prior art keywords
- program
- datagram
- plug
- script
- programming
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/34—Graphical or visual programming
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/38—Creation or generation of source code for implementing user interfaces
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/42—Syntactic analysis
- G06F8/427—Parsing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/44—Encoding
-
- 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
- G06F9/44526—Plug-ins; Add-ons
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Stored Programmes (AREA)
Abstract
本发明提供一种图形化编程方法和系统,方法包括:S1:解析不同芯片的插件文件的内部数据,生成SDK程序包和JSON数据报,在数据库中进行记录;S2:基于数据库,根据选择的插件以及对应的SDK程序包生成脚本解释器可执行文件;S3:基于数据库,将选择的插件以及对应的JSON数据报进行图形渲染生成图形编程界面;S4:在图形编程界面中,通过空间连线和属性调节实现功能模块的程序逻辑和数据控制生成图形编程数据报并发送至后端;S5:根据图形编程数据报生成脚本程序,脚本程序用于驱动脚本解释器可执行文件。通过图形化编程,不但能够降低编程门槛,提高程序逻辑性与结构性,让非专业人士也能很容易地进行嵌入式编程,更能便于使用手机、平板等便携设备进行编程。
Description
技术领域
本发明涉及图形化编程领域,具体涉及一种图形化编程方法和系统。
背景技术
随着时代的发展,科技的使用门槛逐渐降低,但是科技发明的门槛却仍旧很高,对于一个普通非科技行业从业者来说,想要制作一个简单的单片机设计所需要掌握硬件编程和电路设计的知识就已经非常庞杂了,而且限于没有基础,无法有规划有目标的学习,学习难度更大。目前市面上也有Arduino这一开源项目似乎可以改善这一情况。但是实际情况中,因为Arduino源码更多涉及C++,在涉及框架以外的地方新手用户很难独立实现,造成了使用者总是受制于框架而自身能力又无法超脱框架的情况。而且因为其本身是一个国外的开源项目,无论是文档还是许多框架在中文支持上都做得很差,并不真正适合国内用户。
发明内容
本发明的目的在于克服现有技术中的缺点,提供一种图形化编程方法,采用图像化编程的方式代替传统的C/C++编程方式,极大降低了学习门槛并提高了学习效率。
本发明的目的是通过以下技术方案来实现的:
一种图形化编程方法,包括以下步骤:
S1:解析不同芯片的插件文件的内部数据,生成SDK程序包和JSON数据报,在数据库中进行记录;
S2:基于所述数据库,根据选择的插件以及对应的SDK程序包生成脚本解释器可执行文件;
S3:基于所述数据库,将所述选择的插件以及对应的JSON数据报进行图形渲染生成图形编程界面;
S4:在所述图形编程界面中,通过空间连线和属性调节实现功能模块的程序逻辑和数据控制生成图形编程数据报并发送至后端;
S5:根据所述图形编程数据报生成脚本程序,所述脚本程序用于驱动所述脚本解释器可执行文件。
本发明的有益效果是,通过SDK和JSON数据报的配合,能够实现云端编程,从而减轻用户电脑压力。同时通过图形化编程,不但能够降低编程门槛,提高程序逻辑性与结构性,让非专业人士也能很容易地进行嵌入式编程,更能便于使用手机、平板等便携设备进行编程。
进一步,所述S1具体包括:
S101:接收符合规范的插件文件;
S102:复制所述插件文件的内部数据中关于脚本解释器程序文件的内容,生成SDK程序包并存储,且在数据库中记录信息;
S103:解析不同芯片的插件文件中关于功能和属性介绍的文件内容,生成JSON数据报并存储,且在数据库中记录信息;
S104:将已被解析完成的插件文件删除。
采用上述进一步方案的有益效果是,通过插件文件的使用可以将程序进行隔离抽象,用户直接使用的是通过调用数据库记录的已经提前上传并且解析保存为SDK文件和JSON数据报的插件,而不需等待将插件文件上传、解析后再重新生成,可以有效减少准备等待的时间,有助于提高图形界面和脚本解释器的生成速度,并缓解服务器同一时间需要处理大量数据所造成的压力。
进一步,所述S2具体包括:
S201:基于所述数据库,将所述选择的插件所对应的SDK程序包的API通过搜索程序进行封装,加上Bootloader程序生成脚本解释器程序文件;
S202:将所述脚本解释器程序文件通过交叉编译工具进行编译,生成所述脚本解释器可执行文件。
采用上述进一步方案的有益效果是,通过调用SDK的API进行程序编写编译的方式,可以对SDK进行预处理编译,同时这种方式编译链接时所需进行的处理更少,可以有效缩减程序编译时间并降低服务器资源占用。
进一步,所述S3具体包括:
S301:基于所述数据库,根据前后端交互,将所述选择的插件和对应的JSON数据报相关信息进行组合,并发送给前端网页;
S302:在所述前端网页中根据数据报内容规范进行渲染,生成所述图形编程界面。
采用上述进一步方案的有益效果是,提供可变化的图形编程界面,可以根据插件选择对内容显示进行筛选,既能增加插件选择时的条理,又能防止冗余功能出现在界面。
进一步,所述S4具体包括:
S401:在所述图形界面中,通过连接选择的功能模块的接口标志和调整所述选择的功能模块的属性参数生成所述图形编程数据报并发送给后端。
采用上述进一步方案的有益效果是,通过连线和包含关系等方式有助于用户理清自己的逻辑并美化界面。
进一步,还包括连接选择的功能模块的接口标志和调整所述选择的功能模块生成所需的功能模块;
将所述所需的功能模块进行封装、注释、导入、导出、拆分和修改主题风格中的一种或多种操作生成编程界面脚本数据报并发送至后端。
采用上述进一步方案的有益效果是,让图形界面更加结构化、有条理性,使非专业用户能够更加方便地使用图形化编程,同时能够让图形程序更加便于移植和扩展。
进一步,所述S5具体包括:
S501:根据所述功能模块各自的连接关系和属性生成函数关系;
S502:将所述函数关系根据脚本解释器对各函数设置的编号进行编码生成函数调用码;
S503:将所述图形编程数据报拆分成常量数据和变量数据;
S504:根据常量数据和变量数据的不同类型,将所述常量数据和所述变量数据进行细分,生成多串数据调用码;
S505:添加关键字将所述函数调用码和所述多串数据调用码进行隔离并将进行隔离后的数据进行封装,生成所述脚本程序,所述脚本程序用于驱动所述脚本解释器可执行文件。
采用上述进一步方案的有益效果是,因为脚本程序基于逻辑和数据关系,本身体积较小,可以有效缩短脚本程序生成时间并减少上传至的内容,脚本程序从制作完成到下载、上传至芯片正式运行都比常规编程编译烧录的方式更快。同时因为脚本程序空间较小而且脚本解释器中可以自带Bootloader,可以实现手机、平板等多平台便携编程以及IAP等功能。脚本解释器和脚本程序中,可以方便用户通过增加功能并添加关键字来实现功能扩展。
本发明还提供一种图形编程系统,包括,文件解析模块、脚本解释器生成模块、图形渲染模块、图形编程模块和脚本程序生成模块;
所述文件解析模块用于解析不同芯片的插件文件的内部数据,生成SDK程序包和JSON数据报,在数据库中进行记录;
所述脚本解释器生成模块用于基于所述数据库,根据选择的插件以及对应的SDK程序包生成脚本解释器可执行文件;
所述图形渲染模块用于基于所述数据库,将所述选择的插件以及对应的JSON数据报进行图形渲染生成图形编程界面;
所述图形编程模块用于在所述图形编程界面中,通过空间连线和属性调节实现功能模块的程序逻辑和数据控制生成图形编程数据报并发送至后端;
所述脚本程序生成模块用于根据所述图形编程数据报生成脚本程序,所述脚本程序用于驱动所述脚本解释器可执行文件。
本发明的有益效果是,通过SDK和JSON数据报的配合,能够实现云端编程,从而减轻用户电脑压力。同时通过图形化编程,不但能够降低编程门槛,提高程序逻辑性与结构性,让非专业人士也能很容易地进行嵌入式编程,更能便于使用手机、平板等便携设备进行编程。
进一步,所述文件解析模块用于解析不同芯片的插件文件的内部数据,生成SDK程序包和JSON数据报,在数据库中进行记录具体过程包括:
接收符合规范的插件文件;
复制所述插件文件的内部数据中关于脚本解释器程序文件的内容,生成SDK程序包并存储,且在数据库中记录信息;
解析不同芯片的插件文件中关于功能和属性介绍的文件内容,生成JSON数据报并存储,且在数据库中记录信息;
将已被解析完成的插件文件删除。
采用上述进一步方案的有益效果是,通过插件文件的使用可以将程序进行隔离抽象,用户直接使用的是通过调用数据库记录的已经提前上传并且解析保存为SDK文件和JSON数据报的插件,而不需等待将插件文件上传、解析后再重新生成,可以有效减少准备等待的时间,有助于提高图形界面和脚本解释器的生成速度,并缓解服务器同一时间需要处理大量数据所造成的压力。
进一步,所述脚本解释器生成模块用于基于所述数据库,根据选择的插件以及对应的SDK程序包生成脚本解释器可执行文件具体过程包括:
基于所述数据库,将所述选择的插件所对应的SDK程序包的API通过搜索程序进行封装,加上Bootloader程序生成脚本解释器程序文件;
将所述脚本解释器程序文件通过交叉编译工具进行编译,生成所述脚本解释器可执行文件。
采用上述进一步方案的有益效果是,通过调用SDK的API进行程序编写编译的方式,可以对SDK进行预处理编译,同时这种方式编译链接时所需进行的处理更少,可以有效缩减程序编译时间并降低服务器资源占用。
进一步,所述图形渲染模块用于基于所述数据库,将所述选择的插件以及对应的JSON数据报进行图形渲染生成图形编程界面,具体包括:
基于所述数据库,根据前后端交互,将所述选择的插件和对应的JSON数据报相关信息进行组合,并发送给前端网页;
在所述前端网页中根据数据报内容规范进行渲染,生成所述图形编程界面。
采用上述进一步方案的有益效果是,提供可变化的图形编程界面,可以根据插件选择对内容显示进行筛选,既能增加插件选择时的条理,又能防止冗余功能出现在界面。
进一步,所述图形编程模块用于在所述图形编程界面中,通过空间连线和属性调节实现功能模块的程序逻辑和数据控制生成图形编程数据报并发送至后端,具体包括:
在所述图形界面中,通过连接选择的功能模块的接口标志和调整所述选择的功能模块的属性参数生成所述图形编程数据报并发送给后端。
采用上述进一步方案的有益效果是,通过连线和包含关系等方式有助于用户理清自己的逻辑并美化界面。
进一步,还包括连接选择的功能模块的接口标志和调整所述选择的功能模块生成所需的功能模块;
将所述所需的功能模块进行封装、注释、导入、导出、拆分和修改主题风格中的一种或多种操作生成编程界面脚本数据报并发送至后端。
采用上述进一步方案的有益效果是,让图形界面更加结构化、有条理性,使非专业用户能够更加方便地使用图形化编程,同时能够让图形程序更加便于移植和扩展。
进一步,所述脚本程序生成模块用于根据所述图形编程数据报生成脚本程序,所述脚本程序用于驱动所述脚本解释器可执行文件,具体包括:
根据所述功能模块各自的连接关系和属性生成函数关系;
将所述函数关系根据脚本解释器对各函数设置的编号进行编码生成函数调用码;
将所述图形编程数据报拆分成常量数据和变量数据;
根据常量数据和变量数据的不同类型,将所述常量数据和所述变量数据进行细分,生成多串数据调用码;
添加关键字将所述函数调用码和所述多串数据调用码进行隔离并将进行隔离后的数据进行封装,生成所述脚本程序,所述脚本程序用于驱动所述脚本解释器可执行文件。
采用上述进一步方案的有益效果是,因为脚本程序基于逻辑和数据关系,本身体积较小,可以有效缩短脚本程序生成时间并减少上传至的内容,脚本程序从制作完成到下载、上传至芯片正式运行都比常规编程编译烧录的方式更快。同时因为脚本程序空间较小而且脚本解释器中可以自带Bootloader,可以实现手机、平板等多平台便携编程以及IAP等功能。脚本解释器和脚本程序中,可以方便用户通过增加功能并添加关键字来实现功能扩展。
附图说明
图1为本发明一种图形化编程方法流程图;
图2为本发明S1的具体过程图;
图3为本发明S2的具体过程图;
图4为本发明S3的具体过程图;
图5为本发明S5的具体过程图;
图6为本发明一种图形化编程系统连接关系图。
如表1所示,为本发明中部分名词及释义:
表1
具体实施方式
下面结合附图进一步详细描述本发明的技术方案,但本发明的保护范围不局限于以下。
实施例1
参照图1,一种图形化编程方法,包括以下步骤:
S1:解析不同芯片的插件文件的内部数据,生成SDK程序包和JSON数据报,在数据库中进行记录;
S2:基于所述数据库,根据选择的插件以及对应的SDK程序包生成脚本解释器可执行文件;
S3:基于所述数据库,将所述选择的插件以及对应的JSON数据报进行图形渲染生成图形编程界面;
S4:在所述图形编程界面中,通过空间连线和属性调节实现功能模块的程序逻辑和数据控制生成图形编程数据报并发送至后端;
S5:根据所述图形编程数据报生成脚本程序,所述脚本程序用于驱动所述脚本解释器可执行文件。
在本实施例中,数据报是通过网络传输的数据的基本单元,包含一个报头(header)和数据本身,其中报头描述了数据的目的地以及和其它数据之间的关系。数据报是完备的、独立的数据实体,该实体携带要从源计算机传递到目的计算机的信息,在本实施例中,JSON数据报是包含了对前端渲染时所需的数据。在本实施例中,空间连线可以理解为对编程模块的流程连接设置,类似于画的程序框图的连线。属性调节可以理解为:对编程模块的参数调节,类似于编程调用函数传参的过程。后端可以理解为web服务器中运行的服务程序。
芯片的插件文件通过SDK和JSON数据报的配合,能够实现云端编程,从而减轻用户电脑压力。同时通过图形化编程,不但能够降低编程门槛,提高程序逻辑性与结构性,让非专业人士也能很容易地进行嵌入式编程,更能便于使用手机、平板等便携设备进行编程。
在本实施例中,参照图2,所述S1具体包括:
S101:接收符合规范的插件文件;
S102:复制所述插件文件的内部数据中关于脚本解释器程序文件的内容,生成SDK程序包并存储,且在数据库中记录信息;
S103:解析不同芯片的插件文件中关于功能和属性介绍的文件内容,生成JSON数据报并存储,且在数据库中记录信息;
S104:将已被解析完成的插件文件删除。
通过插件文件的使用可以将程序进行隔离抽象,用户直接使用的是通过调用数据库记录的已经提前上传并且解析保存为SDK文件和JSON数据报的插件,而不需等待将插件文件上传、解析后再重新生成,可以有效减少准备等待的时间,有助于提高图形界面和脚本解释器的生成速度,并缓解服务器同一时间需要处理大量数据所造成的压力。
在本实施例中,芯片的插件文件包含芯片的引脚信息、基础功能等。符合规范可以理解为,类似于语法的规则,比如C语言双斜杠是注释,圆括号表示函数,#define表示定义,#include表示引用,然后根据这些语法解析程序就可以理解这段文字需要用什么方法来处理。插件文件中关于功能和属性介绍的文件内容,即该插件中程序将要实现的目的和对这个程序的接口参数进行描述,例如:
目的:用户需要用STM32F103C8T6在8M外部时钟下实现PA5引脚上连接的LED闪烁,该LED正极连接PA5引脚,负极通过一个1K电阻连接GND极,闪烁频率为1s亮,1s暗。
解释:用户需要实现的是在8M外部时钟下,PA5引脚以输出1s一次的频率进行电平转换。
步骤
1.用户选择界面选择STM32F103C系列的基本流程插件,硬件配置插件、时间插件、基础输入输出插件,上述四个插件生成解释器工具集后可以进入图形编程界面。
2.在图形编程界面的工具栏选择新建工程。
3.然后将插件栏中硬件配置插件栏的时钟选择时钟配置功能图标将其拖入图形编程栏。
4.然后在图形编程栏中点击上述拖入的时钟配置功能图标使属性栏显示其中属性,对属性进行配置后该功能变为可以将该系列芯片的时钟配置为8M外部时钟。
5.然后再次拖动插件栏中基础输入输出插件栏的引脚配置功能图标和引脚输出电平图标进入图形编程栏。
6.同上述方法,在引脚配置功能图标的属性栏中配置PA5引脚为输出功能,在输出电平图标中配置PA5引脚为高电平。
7.然后从基础流程插件中拖入循环功能图标。
8.在属性栏中配置循环功能图标为无限循环,此时循环功能图标的两个下一步接口将会消失一个。
9.然后从基础输入输出插件中拖入电平转换图标。
10.在属性栏配置该图标针对引脚为PA5。
11.然后从时间插件中拖入延时功能图标。
12.在属性栏中配置该图标为1s中延时。
13.在图形编程栏中鼠标右键点击时钟配置功能图标设置其为起点,此时该图标的时序上一步接口消失。
14.将该图标时序下一步连接至引脚配置功能图标的上一步接口。
15.以此类推依次连接引脚输出电平功能图标、循环功能图标、电平转换图标、延时功能图标。
16.上述图标中循环功能图标有两个上一步接口,将引脚输出电平功能图标下一步接口与其连接时任选一接口即可。
17.将延时功能图标的下一步接口接至循环功能图标剩余的上一步接口。
18.上述步骤已完成功能编程,其中选取插件、插件连接的步骤流程可以交换,只需要最终显示结果相同即可。
19.在工具栏选择生成脚本程序,即可下载脚本程序并上传至已烧录了上述解释器工具集中脚本解释器可执行文件的STM32F103C8T6芯片上然后执行了。
在本实施例中,参照图3,所述S2具体包括:
S201:基于所述数据库,将所述选择的插件所对应的SDK程序包的API通过搜索程序进行封装,加上Bootloader程序生成脚本解释器程序文件;
S202:将所述脚本解释器程序文件通过交叉编译工具进行编译,生成所述脚本解释器可执行文件。
在本实施例中,不同芯片的Bootloader包含该芯片基础的接收脚本程序,解析、保存以及根据芯片特点添加个性化内容的功能等。搜索程序为不涉及底层的的算法内容,这里的底层可以理解为:涉及如时钟、内存大小等芯片特性的程序,或需要通过调用芯片内部寄存器进行配置的程序,以及需要直接针对芯片地址进行调用的程序。
通过调用SDK的API进行程序编写编译的方式,可以对SDK进行预处理编译,同时这种方式编译链接时所需进行的处理更少,可以有效缩减程序编译时间并降低服务器资源占用。
在本实施例中,参照图4,所述S3具体包括:
S301:基于所述数据库,根据前后端交互,将所述选择的插件和对应的JSON数据报相关信息进行组合,并发送给前端网页;
S302:在所述前端网页中根据数据报内容规范进行渲染,生成所述图形编程界面。
提供可变化的图形编程界面,可以根据插件选择对内容显示进行筛选,既能增加插件选择时的条理,又能防止冗余功能出现在界面。
在本实施例中,所述S4具体包括:
S401:在所述图形界面中,通过连接选择的功能模块的接口标志和调整所述选择的功能模块的属性参数生成所述图形编程数据报并发送给后端。
通过连线和包含关系等方式有助于用户理清自己的逻辑并美化界面。
在本实施例中,还包括连接选择的功能模块的接口标志和调整所述选择的功能模块生成所需的功能模块;
将所述所需的功能模块进行封装、注释、导入、导出、拆分和修改主题风格中的一种或多种操作生成编程界面脚本数据报并发送至后端。
让图形界面更加结构化、有条理性,使非专业用户能够更加方便地使用图形化编程,同时能够让图形程序更加便于移植和扩展。
在本实施例中,参照图5,所述S5具体包括:
S501:根据所述功能模块各自的连接关系和属性生成函数关系;
S502:将所述函数关系根据脚本解释器对各函数设置的编号进行编码生成函数调用码;
S503:将所述图形编程数据报拆分成常量数据和变量数据;
S504:根据常量数据和变量数据的不同类型,将所述常量数据和所述变量数据进行细分,生成多串数据调用码;
S505:添加关键字将所述函数调用码和所述多串数据调用码进行隔离并将进行隔离后的数据进行封装,生成所述脚本程序,所述脚本程序用于驱动所述脚本解释器可执行文件。
因为脚本程序基于逻辑和数据关系,本身体积较小,可以有效缩短脚本程序生成时间并减少上传至的内容,脚本程序从制作完成到下载、上传至芯片正式运行都比常规编程编译烧录的方式更快。同时因为脚本程序空间较小而且脚本解释器中可以自带Bootloader,可以实现手机、平板等多平台便携编程以及IAP等功能。脚本解释器和脚本程序中,可以方便用户通过增加功能并添加关键字来实现功能扩展。其中,常规编程编译烧录的方式需要完成的工作有:编程、交叉编译、将编译后生成的c语言可运行文件通过JTAG仿真器进行烧录。如果是云编程,还需要在编译后增加下载可运行文件的过程。而本申请提前烧录好了脚本解释器,所以在完成编程后只需将我们的连接逻辑封装成脚本程序,这个过程相比于交叉编译会更加快速,因为我们需要处理的信息更少。而后因为我们产生的报文更少,所以下载的时候花费时间更少。而且烧录不需要通过jtag而可以直接使用Bootloader进行烧录,更加方便易用。
在本实施例中,IAP是In Application Programming的首字母缩写,IAP是用户自己的程序在运行过程中对User Flash的部分区域进行烧写,目的是为了在产品发布后可以方便地通过预留的通信口对产品中的固件程序进行更新升级。这里Bootloader是实现方法,而一旦实现了Bootloader就等于实现了IAP功能。
在实施例1的基础上,进一步实现的实施例2是:
参照图6,本发明还提供一种图形编程系统,包括,文件解析模块、脚本解释器生成模块、图形渲染模块、图形编程模块和脚本程序生成模块;
所述文件解析模块用于解析不同芯片的插件文件的内部数据,生成SDK程序包和JSON数据报,在数据库中进行记录;
所述脚本解释器生成模块用于基于所述数据库,根据选择的插件以及对应的SDK程序包生成脚本解释器可执行文件;
所述图形渲染模块用于基于所述数据库,将所述选择的插件以及对应的JSON数据报进行图形渲染生成图形编程界面;
所述图形编程模块用于在所述图形编程界面中,通过空间连线和属性调节实现功能模块的程序逻辑和数据控制生成图形编程数据报并发送至后端;
所述脚本程序生成模块用于根据所述图形编程数据报生成脚本程序,所述脚本程序用于驱动所述脚本解释器可执行文件。
通过SDK和JSON数据报的配合,能够实现云端编程,从而减轻用户电脑压力。同时通过图形化编程,不但能够降低编程门槛,提高程序逻辑性与结构性,让非专业人士也能很容易地进行嵌入式编程,更能便于使用手机、平板等便携设备进行编程。
在本实施例中,所述文件解析模块用于解析不同芯片的插件文件的内部数据,生成SDK程序包和JSON数据报,在数据库中进行记录具体过程包括:
接收符合规范的插件文件;
复制所述插件文件的内部数据中关于脚本解释器程序文件的内容,生成SDK程序包并存储,且在数据库中记录信息;
解析不同芯片的插件文件中关于功能和属性介绍的文件内容,生成JSON数据报并存储,且在数据库中记录信息;
将已被解析完成的插件文件删除。
通过插件文件的使用可以将程序进行隔离抽象,用户直接使用的是通过调用数据库记录的已经提前上传并且解析保存为SDK文件和JSON数据报的插件,而不需等待将插件文件上传、解析后再重新生成,可以有效减少准备等待的时间,有助于提高图形界面和脚本解释器的生成速度,并缓解服务器同一时间需要处理大量数据所造成的压力。
在本实施例中,所述脚本解释器生成模块用于基于所述数据库,根据选择的插件以及对应的SDK程序包生成脚本解释器可执行文件具体过程包括:
基于所述数据库,将所述选择的插件所对应的SDK程序包的API通过搜索程序进行封装,加上Bootloader程序生成脚本解释器程序文件;
将所述脚本解释器程序文件通过交叉编译工具进行编译,生成所述脚本解释器可执行文件。
通过调用SDK的API进行程序编写编译的方式,可以对SDK进行预处理编译,同时这种方式编译链接时所需进行的处理更少,可以有效缩减程序编译时间并降低服务器资源占用。
在本实施例中,所述图形渲染模块用于基于所述数据库,将所述选择的插件以及对应的JSON数据报进行图形渲染生成图形编程界面,具体包括:
基于所述数据库,根据前后端交互,将所述选择的插件和对应的JSON数据报相关信息进行组合,并发送给前端网页;
在所述前端网页中根据数据报内容规范进行渲染,生成所述图形编程界面。
提供可变化的图形编程界面,可以根据插件选择对内容显示进行筛选,既能增加插件选择时的条理,又能防止冗余功能出现在界面。
在本实施例中,所述图形编程模块用于在所述图形编程界面中,通过空间连线和属性调节实现功能模块的程序逻辑和数据控制生成图形编程数据报并发送至后端,具体包括:
在所述图形界面中,通过连接选择的功能模块的接口标志和调整所述选择的功能模块的属性参数生成所述图形编程数据报并发送给后端。
通过连线和包含关系等方式有助于用户理清自己的逻辑并美化界面。
在本实施例中,还包括连接选择的功能模块的接口标志和调整所述选择的功能模块生成所需的功能模块;
将所述所需的功能模块进行封装、注释、导入、导出、拆分和修改主题风格中的一种或多种操作生成编程界面脚本数据报并发送至后端。
让图形界面更加结构化、有条理性,使非专业用户能够更加方便地使用图形化编程,同时能够让图形程序更加便于移植和扩展。
在本实施例中,所述脚本程序生成模块用于根据所述图形编程数据报生成脚本程序,所述脚本程序用于驱动所述脚本解释器可执行文件,具体包括:
根据所述功能模块各自的连接关系和属性生成函数关系;
将所述函数关系根据脚本解释器对各函数设置的编号进行编码生成函数调用码;
将所述图形编程数据报拆分成常量数据和变量数据;
根据常量数据和变量数据的不同类型,将所述常量数据和所述变量数据进行细分,生成多串数据调用码;
添加关键字将所述函数调用码和所述多串数据调用码进行隔离并将进行隔离后的数据进行封装,生成所述脚本程序,所述脚本程序用于驱动所述脚本解释器可执行文件。
因为脚本程序基于逻辑和数据关系,本身体积较小,可以有效缩短脚本程序生成时间并减少上传至的内容,脚本程序从制作完成到下载、上传至芯片正式运行都比常规编程编译烧录的方式更快。同时因为脚本程序空间较小而且脚本解释器中可以自带Bootloader,可以实现手机、平板等多平台便携编程以及IAP等功能。脚本解释器和脚本程序中,可以方便用户通过增加功能并添加关键字来实现功能扩展。其中,常规编程编译烧录的方式需要完成的工作有:编程、交叉编译、将编译后生成的c语言可运行文件通过JTAG仿真器进行烧录。如果是云编程,还需要在编译后增加下载可运行文件的过程。而本申请提前烧录好了脚本解释器,所以在完成编程后只需将我们的连接逻辑封装成脚本程序,这个过程相比于交叉编译会更加快速,因为我们需要处理的信息更少。而后因为我们产生的报文更少,所以下载的时候花费时间更少。而且烧录不需要通过jtag而可以直接使用Bootloader进行烧录,更加方便易用。
以上仅是本发明的优选实施方式,应当理解本发明并非局限于本文所披露的形式,不应看作是对其他实施例的排除,而可用于各种其他组合、修改和环境,并能够在本文构想范围内,通过上述教导或相关领域的技术或知识进行改动。而本领域人员所进行的改动和变化不脱离本发明的精神和范围,则都应在本发明所附权利要求的保护。
Claims (10)
1.一种图形化编程方法,其特征在于,包括以下步骤:
S1:解析不同芯片的插件文件的内部数据,生成SDK程序包和JSON数据报,在数据库中进行记录;
S2:基于所述数据库,根据选择的插件以及对应的SDK程序包生成脚本解释器可执行文件;
S3:基于所述数据库,将所述选择的插件以及对应的JSON数据报进行图形渲染生成图形编程界面;
S4:在所述图形编程界面中,通过空间连线和属性调节实现功能模块的程序逻辑和数据控制生成图形编程数据报并发送至后端;
S5:根据所述图形编程数据报生成脚本程序,所述脚本程序用于驱动所述脚本解释器可执行文件。
2.根据权利要求1所述的图形化编程方法,其特征在于,所述S1具体包括:
S101:接收符合规范的插件文件;
S102:复制所述插件文件的内部数据中关于脚本解释器程序文件的内容,生成SDK程序包并存储,且在数据库中记录信息;
S103:解析不同芯片的插件文件中关于功能和属性介绍的文件内容,生成JSON数据报并存储,且在数据库中记录信息;
S104:将已被解析完成的插件文件删除。
3.根据权利要求1所述的图形化编程方法,其特征在于,所述S2具体包括:
S201:基于所述数据库,将所述选择的插件所对应的SDK程序包的API通过搜索程序进行封装,加上Bootloader程序生成脚本解释器程序文件;
S202:将所述脚本解释器程序文件通过交叉编译工具进行编译,生成所述脚本解释器可执行文件。
4.根据权利要求1所述的图形化编程方法,其特征在于,所述S3具体包括:
S301:基于所述数据库,根据前后端交互,将所述选择的插件和对应的JSON数据报相关信息进行组合,并发送给前端网页;
S302:在所述前端网页中根据数据报内容规范进行渲染,生成所述图形编程界面。
5.根据权利要求1所述的图形化编程方法,其特征在于,所述S4具体包括:
S401:在所述图形界面中,通过连接选择的功能模块的接口标志和调整所述选择的功能模块的属性参数生成所述图形编程数据报并发送给后端。
6.根据权利要求5所述的图形化编程方法,其特征在于,还包括连接选择的功能模块的接口标志和调整所述选择的功能模块生成所需的功能模块;
将所述所需的功能模块进行封装、注释、导入、导出、拆分和修改主题风格中的一种或多种操作生成编程界面脚本数据报并发送至后端。
7.根据权利要求1-6任一项所述的图形化编程方法,其特征在于,所述S5具体包括:
S501:根据所述功能模块各自的连接关系和属性生成函数关系;
S502:将所述函数关系根据脚本解释器对各函数设置的编号进行编码生成函数调用码;
S503:将所述图形编程数据报拆分成常量数据和变量数据;
S504:根据常量数据和变量数据的不同类型,将所述常量数据和所述变量数据进行细分,生成多串数据调用码;
S505:添加关键字将所述函数调用码和所述多串数据调用码进行隔离并将进行隔离后的数据进行封装,生成所述脚本程序,所述脚本程序用于驱动所述脚本解释器可执行文件。
8.一种图形编程系统,其特征在于,包括,文件解析模块、脚本解释器生成模块、图形渲染模块、图形编程模块和脚本程序生成模块;
所述文件解析模块用于解析不同芯片的插件文件的内部数据,生成SDK程序包和JSON数据报,在数据库中进行记录;
所述脚本解释器生成模块用于基于所述数据库,根据选择的插件以及对应的SDK程序包生成脚本解释器可执行文件;
所述图形渲染模块用于基于所述数据库,将所述选择的插件以及对应的JSON数据报进行图形渲染生成图形编程界面;
所述图形编程模块用于在所述图形编程界面中,通过空间连线和属性调节实现功能模块的程序逻辑和数据控制生成图形编程数据报并发送至后端;
所述脚本程序生成模块用于根据所述图形编程数据报生成脚本程序,所述脚本程序用于驱动所述脚本解释器可执行文件。
9.根据权利要求8所述的图形编程系统,其特征在于,所述文件解析模块用于解析不同芯片的插件文件的内部数据,生成SDK程序包和JSON数据报,在数据库中进行记录具体过程包括:
接收符合规范的插件文件;
复制所述插件文件的内部数据中关于脚本解释器程序文件的内容,生成SDK程序包并存储,且在数据库中记录信息;
解析不同芯片的插件文件中关于功能和属性介绍的文件内容,生成JSON数据报并存储,且在数据库中记录信息;
将已被解析完成的插件文件删除。
10.根据权利要求8所述的图形编程系统,其特征在于,所述脚本解释器生成模块用于基于所述数据库,根据选择的插件以及对应的SDK程序包生成脚本解释器可执行文件具体过程包括:
基于所述数据库,将所述选择的插件所对应的SDK程序包的API通过搜索程序进行封装,加上Bootloader程序生成脚本解释器程序文件;
将所述脚本解释器程序文件通过交叉编译工具进行编译,生成所述脚本解释器可执行文件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110223902.1A CN112860244A (zh) | 2021-02-26 | 2021-02-26 | 一种图形化编程方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110223902.1A CN112860244A (zh) | 2021-02-26 | 2021-02-26 | 一种图形化编程方法和系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112860244A true CN112860244A (zh) | 2021-05-28 |
Family
ID=75990578
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110223902.1A Pending CN112860244A (zh) | 2021-02-26 | 2021-02-26 | 一种图形化编程方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112860244A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113778400A (zh) * | 2021-11-11 | 2021-12-10 | 深圳市越疆科技有限公司 | 基于图形化编程的tcp通讯脚本生成方法和装置 |
-
2021
- 2021-02-26 CN CN202110223902.1A patent/CN112860244A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113778400A (zh) * | 2021-11-11 | 2021-12-10 | 深圳市越疆科技有限公司 | 基于图形化编程的tcp通讯脚本生成方法和装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10776567B2 (en) | Method for compiling page data, method, device and storage medium for page rendering | |
CN111045655A (zh) | 一种页面渲染的方法、装置、渲染服务器和存储介质 | |
WO2013029399A1 (zh) | 代码生成方法及系统 | |
US20180088937A1 (en) | Code refactoring mechanism for asynchronous code optimization using topological sorting | |
CN101930400A (zh) | Sdk自动化测试系统及方法 | |
US20150169435A1 (en) | Method and apparatus for mining test coverage data | |
CN104899046B (zh) | 一种多功能脚本运行方法和系统 | |
CN109313547B (zh) | 用于cpu利用率和代码重构的查询优化器 | |
CN110727429B (zh) | 一种前端页面的生成方法、装置及设备 | |
CN109388425B (zh) | 一种前端工程的接口切换方法、系统、装置和存储介质 | |
CN112000330B (zh) | 建模参数的配置方法、装置、设备和计算机存储介质 | |
CN110427459A (zh) | 语音识别网络的可视化生成方法、系统及平台 | |
CN112860244A (zh) | 一种图形化编程方法和系统 | |
CN103984539B (zh) | 一种家电设备运行方法及系统 | |
CN114564199A (zh) | 一种生成使用页面的方法、装置、设备及可读存储介质 | |
CN112860264B (zh) | 一种抽象语法树重构方法及装置 | |
CN113010168B (zh) | 一种基于场景树的用户界面生成方法 | |
CN110187886A (zh) | 一种文档网站生成方法及终端 | |
JP6986590B2 (ja) | 音声スキル作成方法、音声スキル作成装置、電子機器及び記憶媒体 | |
CN110941655A (zh) | 一种数据格式转换方法及装置 | |
CN112966457A (zh) | 一种图形化云开发平台 | |
CN110362317B (zh) | 一种代码转换方法、装置和存储介质 | |
WO2015188463A1 (zh) | Ivr对外接口配置方法及装置、计算机存储介质 | |
CN117215661A (zh) | 一种事件处理的方法、装置以及存储介质 | |
CN111126012B (zh) | 定制生成表达式方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |