掌桥专利:专业的专利平台
掌桥专利
首页

一种图形化云开发平台

文献发布时间:2023-06-19 11:26:00



技术领域

本发明涉及图形化编程领域,具体涉及一种图形化云开发平台。

背景技术

随着时代的发展,科技的使用门槛逐渐降低,但是科技发明的门槛却仍旧很高,对于一个普通非科技行业从业者来说,想要制作一个简单的单片机设计所需要掌握硬件编程和电路设计的知识就已经非常庞杂了,而且限于没有基础,无法有规划有目标的学习,学习难度更大。目前市面上也有Ardu i no这一开源项目似乎可以改善这一情况。但是实际情况中,因为Ardu i no源码更多涉及C++,在涉及框架以外的地方新手用户很难独立实现,造成了使用者总是受制于框架而自身能力又无法超脱框架的情况。而且因为其本身是一个国外的开源项目,无论是文档还是许多框架在中文支持上都做得很差,并不真正适合国内用户。

发明内容

本发明的目的在于克服现有技术中的缺点,提供一种图形化云开发平台,采用图像化编程的方式代替传统的C/C++编程方式,极大降低了学习门槛并提高了学习效率。

本发明的目的是通过以下技术方案来实现的:

一种图形化云开发平台,包括:

插件制作模块,用于制作和/或上传包含芯片信息的插件文件;

插件处理模块,用于解析并处理所述插件文件,生成对应的SDK程序包和JSON数据报,并在数据库中记录;

脚本解释器制作模块,基于所述数据库用于根据选择的插件和对应的SDK程序包生成脚本解释器可执行文件和脚本解释器信息表;

图形编程模块,用于提供图形编程界面,根据所述JSON数据报进行图形渲染生成图形编程数据报;

脚本程序生成模块,用于根据所述图形编程数据报生成脚本程序,所述脚本程序用于驱动所述脚本解释器可执行文件脚本解释器制作模块脚本解释器选择模块脚本解释器制作模块脚本解释器选择模块脚本解释器制作模块脚本解释器选择模块脚本解释器制作模块脚本解释器选择模块。

本发明的有益效果是,通过SDK和JSON数据报的配合,能够实现云端编程,从而减轻用户设备压力。同时通过图形化编程,不但能够降低编程门槛,提高程序逻辑性与结构性,让非专业人士也能很容易地进行嵌入式编程,更能便于使用手机、平板等便携设备进行编程。

进一步,还包括脚本解释器选择模块,所述脚本解释器选择模块用于上传本地脚本解释器信息表并根据所述本地的脚本解释器信息表生成对应的脚本解释器可执行文件以及上传公共数据库中的脚本解释器可执行文件和脚本解释器信息表。

进一步,所述插件文件中包括一个或多个插件功能内容,每个所述插件功能内容包括四个核心数据:功能代码、接口用法、功能描述和显示效果。

进一步,每个所述核心数据由一条或多条口令,以及每条口令对应的多个成员组成,每个所述成员包括代码、字段、字符中的一种或多种;所述口令用于判断对应的成员的作用以及处理方法。

采用上述进一步方案的有益效果是,插件处理模块在对插件文件进行分析处理的时候,仅需根据口令定位,并对指定区块执行相应的处理功能即可,而对插件具体格式的要求降低,得到一种模块化的效果,不但让程序在对内部进行定位的过程变得更方便快捷,还使插件文件的修改更加方便。同时如果按照一种固定格式对插件文件进行设计,那么如果未来对插件规则进行了调整,就需要对整个插件处理模块进行大范围修改,非常不方便,而如果通过口令的方式,我们只需要根据实际调整进行增加口令及其处理方式或修改对应口令区域即可,更加高效。

进一步,所述插件处理模块,用于解析并处理所述插件文件,生成对应的SDK程序包和JSON数据报,并记录在数据库中,具体包括:

根据所述口令,复制所述功能代码的成员内容,将所述插件文件中所有插件功能的功能代码组合生成C语言SDK程序包;

根据所述口令,提取所述接口用法的成员内容,生成C语言API信息并以数据表的形式在数据库中记录、存储,生成图形接口属性信息并暂时存储;

根据所述口令,提取所述功能描述的成员内容,生成图形功能描述信息并暂时存储;

根据所述口令,提取所述显示效果的成员内容,生成图形显示效果信息并暂时存储;

将所述图形接口属性信息、图形功能描述信息、图形显示效果信息进行组合,生成所述JSON数据报并存储,且在数据库中记录信息。

采用上述进一步方案的有益效果是,通过调用SDK的API进行程序编写编译的方式,可以对SDK进行预处理编译,同时这种方式编译链接时所需进行的处理更少,可以有效缩减程序编译时间并降低服务器资源占用;通过对API以数据表的形式进行记录的方式可以提高后期处理调用API信息时的速度并降低服务器资源占用;通过预先生成JSON文件而非实时将插件文件进行处理可以减少后期JSON生成时间,并降低对服务器资源占用。

进一步,所述脚本解释器制作模块基于所述数据库用于根据选择的插件和对应的SDK程序包生成脚本解释器可执行文件和脚本解释器信息表包括:

基于所述数据库,将所述选择的插件所对应的SDK程序包的API通过搜索程序进行封装,加上Bootloader程序,共同生成脚本解释器程序文件;

将所述脚本解释器程序文件通过交叉编译工具进行编译,生成所述脚本解释器可执行文件,同时生成由所述选择的插件组成的脚本解释器信息表,所述脚本解释器信息表包含所述脚本解释器可执行文件所选择的插件信息和/或图形编程界面的内容。

采用上述进一步方案的有益效果是,在网络之间的工程分享时可以直接使用更轻量的信息表进行分享,通过处理信息表可以生成对应图形编程界面比处理脚本解释器可执行文件更方便,也更容易实现工程之间的相互传播和调用。

进一步,所述图形编程模块用于提供图形编程界面,根据所述JSON数据报进行图形渲染生成图形编程数据报包括:

在所述图形编程界面中通过封装接口连线信息和属性栏的各图标属性信息生成所述图形编程数据报,所述图形编程数据报的内容包含程序运行的逻辑和数据流向的逻辑与所述SDK程序包中各API的运行调用逻辑和参数设置相对应。

进一步,所述脚本程序生成模块,生成所述脚本解释器可执行文件的过程包括:

将所述API的运行调用逻辑的内容进行编码生成函数调用码并排序;

将所述参数设置的内容进行编码生成多串数据调用码并排序;

将所述参数设置的内容拆分为常量数据和变量数据;

根据所述常量数据和变量数据的不同类型,将所述常量数据和所述变量数据进行细分,生成多串数据调用码;

添加关键字,将所述函数调用码和所述多串数据调用码进行隔离,并将进行隔离后的数据进行封装,生成所述脚本程序。

采用上述进一步方案的有益效果是,通过连线和包含关系等方式有助于用户理清自己的逻辑并美化界面。

进一步,所述图形编程界面包含工具栏、插件栏、属性栏、注释栏和图形编程栏。

采用上述进一步方案的有益效果是,提供可变化的图形编程界面,可以根据插件选择对内容显示进行筛选,既能增加插件选择时的条理,又能防止冗余功能出现在界面。

进一步,所述插件栏中包含插件功能图标,所述插件功能图标由根据选择的插件的JSON数据报在前端网渲染生成。

进一步,所述图形编程栏为作图界面,通过将所述插件功能图标拖动到所述图形编程栏里进行图形化编程。

附图说明

图1为本发明一种图形化云开发平台模块图。

如表1所示,为本发明中部分名词及释义:

表1

具体实施方式

下面结合附图进一步详细描述本发明的技术方案,但本发明的保护范围不局限于以下。

实施例1

一种图形化云开发平台,包括:

插件制作模块,用于制作和/或上传包含芯片信息的插件文件;

插件处理模块,用于解析并处理所述插件文件,生成对应的SDK程序包和JSON数据报,并在数据库中记录;

脚本解释器制作模块,基于所述数据库用于根据选择的插件和对应的SDK程序包生成脚本解释器可执行文件和脚本解释器信息表;

图形编程模块,用于提供图形编程界面,根据所述JSON数据报进行图形渲染生成图形编程数据报;

脚本程序生成模块,用于根据所述图形编程数据报生成脚本程序,所述脚本程序用于驱动所述脚本解释器可执行文件。

还包括脚本解释器选择模块,所述脚本解释器选择模块用于上传本地脚本解释器信息表并根据所述本地的脚本解释器信息表生成对应的脚本解释器可执行文件以及上传公共数据库中的脚本解释器可执行文件和脚本解释器信息表。

在本实施例中,插件制作模块提供插件文件上传接口和插件制作页面,可通过在插件制作页面填写内容并将填写的数据发送至服务器以制作插件文件;插件文件上传接口为网页与服务器交互接口,通过该接口可将本地插件文件上传至服务器,满足用户离线制作插件文件的需求。

在本实施例中,所述插件文件中包括一个或多个插件功能内容,每个所述的插件功能内容包括四个核心数据:功能代码(C语言SDK代码)、接口用法(C语言API生成信息)、功能描述和显示效果。

每个所述核心数据由一条或多条口令,以及每条口令对应的多个成员组成,每个所述成员包括代码、字段、字符中的一种或多种;所述口令用于判断对应的成员的作用以及处理方法。

插件处理模块在对插件文件进行分析处理的时候,仅需根据口令定位,并对指定区块执行相应的处理功能即可,而对插件具体格式的要求降低,得到一种模块化的效果,不但让程序在对内部进行定位的过程变得更方便快捷,还使插件文件的修改更加方便。同时如果按照一种固定格式对插件文件进行设计,那么如果未来对插件规则进行了调整,就需要对整个插件处理模块进行大范围修改,非常不方便,而如果通过口令的方式,我们只需要根据实际调整进行增加口令及其处理方式或修改对应口令区域即可,更加高效。

例如,原本一个程序设置的口令有三种,但是当需要再增加一种新功能需要设置第四种口令,增加后原有脚本程序也仍然可以在新的脚本解释器上运行而不冲突。

在本实施例中,插件文件分为与芯片或开发板特性直接相关的底层插件和与芯片无直接关联的算法插件,底层插件存在目的为解决:涉及时钟、内存大小等特性,或需要调用芯片内部寄存器以及需要对芯片内部准确地址进行操作的底层特性或功能,它们在不同芯片或开发板上存在的兼容性问题。

底层插件的制作要求如下:底层插件要求在插件文件的插件功能要求的四个核心功能内容的基础上,至少还需要以核心部分的形式(一个或多个多口令+对应多个成员),加上针对芯片、晶振配置等会影响代码兼容性的信息。

算法插件的功能代码部分要求只能使用官方提供或由其它插件接口用法核心部分生成的C语言API,此要求的目的为防止制作算法插件时代码被底层特性或功能所影响而造成兼容性缺失。

同一种底层插件可以制作成多个不同芯片版本,它们内部实现的功能相同,API相同,只是在功能代码核心部分的实现上不同,被视为同一个插件在不同芯片上的版本。通过此要求制作插件,提高了插件复用时的兼容性。

插件制作页面将输入内容以插件文件格式进行封装并发送至服务器。

将每个核心部分的成员部分在输入栏输入,再将输入栏的成员部分与其对应的口令进行组合就可生成插件文件。

在本实施例中,所述插件文件处理模块,用于解析并处理所述插件文件,生成对应的SDK程序包和JSON数据报,并在数据库中记录相应信息,具体包括:

根据所述口令,复制所述功能代码的成员内容,将所述插件文件中所有插件功能的功能代码组合生成C语言SDK程序包;

根据所述口令,提取所述接口用法的成员内容,生成C语言API信息并以数据表的形式在数据库中记录存储,生成图形接口属性信息并暂时存储;通过对API以数据表的形式进行记录的方式可以提高后期处理调用API信息时的速度并降低服务器资源占用;通过调用SDK的API进行程序编写编译的方式,可以对SDK进行预处理编译,同时这种方式编译链接时所需进行的处理更少,可以有效缩减程序编译时间并降低服务器资源占用。

根据所述口令,提取所述功能描述的成员内容,生成图形功能描述信息并暂时存储;

根据所述口令,提取所述显示效果的成员内容,生成图形显示效果信息并暂时存储;将已被解析完成的插件文件删除。

将所述图形接口属性信息、图形功能描述信息、图形显示效果信息进行组合,生成所述JSON数据报并存储,且在数据库中记录信息。通过预先生成JSON文件而非实时将插件文件进行处理可以减少后期JSON生成时间,并降低对服务器资源占用。

在本实施例中,所述脚本解释器制作模块基于所述数据库用于根据选择的插件和对应的SDK程序包生成脚本解释器可执行文件和脚本解释器信息表包括:

服务器根据SDK在数据库中记录的信息,在解释器制作模块生成插件列表,每个插件对应了一个SDK程序包。可以通过查看插件列表了解该插件的总体介绍以及对内部各功能的介绍。

基于所述数据库,将所述选择的插件所对应的SDK程序包的API通过搜索程序进行封装,加上Bootloader程序,共同生成脚本解释器程序文件;

将所述脚本解释器程序文件通过交叉编译工具进行编译,生成所述脚本解释器可执行文件,同时生成由所述选择的插件组成的脚本解释器信息表,所述脚本解释器信息表包含所述脚本解释器可执行文件所选择的插件信息和/或图形编程界面的内容。

因为脚本程序基于逻辑和数据关系,本身体积较小,可以有效缩短脚本程序生成时间并提高脚本程序的信息密度,脚本程序从制作完成到下载、上传至芯片正式运行都比常规编程编译烧录的方式更快。同时因为脚本程序空间较小而且脚本解释器程序中可以自带Bootloader,可以实现手机、平板等多平台便携编程以及IAP等功能。脚本解释器程序文件和脚本程序,用户可以通过添加关键字的方式来增加功能以实现功能扩展。其中,常规编程编译烧录的方式需要完成的工作有:编程、交叉编译、将编译后生成的c语言可运行文件通过JTAG仿真器进行烧录。如果是云编程,还需要在编译后增加下载可运行文件的过程。而本申请提前烧录好了脚本解释器可执行文件,所以在完成编程后只需将我们的连接逻辑封装成脚本程序,这个过程相比于交叉编译会更加快速,因为我们需要处理的信息更少。而后因为我们产生的报文更少,所以下载的时候花费时间更少。而且烧录不需要通过jtag而可以直接使用Bootloader进行烧录,更加方便易用。

在本实施例中,IAP是In Application Programming的首字母缩写,IAP是用户自己的程序在运行过程中对User Flash的部分区域进行烧写,目的是为了在产品发布后可以方便地通过预留的通信口对产品中的固件程序进行更新升级。这里Bootloader是实现方法,而一旦实现了Bootloader就等于实现了IAP功能。

在网络之间的工程分享时可以直接使用更轻量的信息表进行分享,通过处理信息表可以生成对应图形编程界面比处理脚本解释器可执行文件更方便,也更容易实现工程之间的相互传播和调用。

在本实施例中,所述图形编程模块用于提供图形编程界面,根据所述JSON数据报进行图形渲染生成图形编程数据报包括:

在所述图形编程界面中通过封装接口连线信息和属性栏的各图标属性信息生成所述图形编程数据报,所述图形编程数据报的内容包含程序运行的逻辑和数据流向的逻辑与所述SDK程序包中各API的运行调用逻辑和参数设置相对应。

在本实施例中,数据报是通过网络传输的数据的基本单元,包含一个报头(header)和数据本身,其中报头描述了数据的目的地以及和其它数据之间的关系。数据报是完备的、独立的数据实体,该实体携带要从源计算机传递到目的计算机的信息,在本实施例中,JSON数据报是包含了对前端渲染时所需的数据。

在本实施例中,空间连线可以理解为对编程模块的流程连接设置,类似于画的程序框图的连线。属性调节可以理解为:对编程模块的参数调节,类似于编程调用函数传参的过程。后端可以理解为web服务器中运行的服务程序。

在本实施例中,所述图形编程界面包含工具栏、插件栏、属性栏、注释栏和图形编程栏等。

工具栏提供一些如新建工程、保存工程、下载工程、上传工程、分享工程或加载工程等基本工程操作和一些如编码转换、计算器工具等便利工具。用户可以在云平台上新建并保存工程,或将工程以离线形式下载到本地而在需要时再次上传,还可以分享到公共平台或加载使用公共平台的工程。

在本实施例中,插件栏根据脚本解释器信息表记录的所选择的插件文件对应生成。

插件栏为一个图形展示栏,在这个栏中可以选择其中列出的插件功能图标。

根据脚本解释器信息表,服务器进行解析后找到对应插件的JSON数据报并发送至网页前端。

插件栏部分对此JSON数据报进行解析,渲染后最终生成插件图标列表,插件图标列表通过文字列出了所选择插件的所有插件功能,该文字在JSON数据报图形功能描述信息中记录。

在实际操作中,鼠标选择插件,在列表展开后鼠标悬停在对应插件功能上方生成浮窗,浮窗中展示插件功能图标,功能图标由整体外观和接口图标共同组成。该图标由JSON数据报中的图形接口属性信息生成其接口个数、形状等接口图标外观,由图形显示效果信息控制生成其颜色、大小、形状等整体外观。通过将所述插件功能图标拖动到所述图形编程栏里进行图形化编程。

属性栏可以在编程中针对每个功能图标进行参数配置,通过点击功能图标非接口图标部分,即可进行该图标的功能配置,部分配置会反应显示在功能图标上。

注释栏的注释有多种,可以分为官方注释、插件注释、模块注释,以文字形式存在,是对图标、属性、功能等出现在编程界面的内容的解释。

提供可变化的图形编程界面,可以根据插件选择对内容显示进行筛选,既能增加插件选择时的条理,又能防止冗余功能出现在界面。

在本实施例中,所述脚本程序生成模块,生成所述脚本解释器可执行文件的过程包括:

将所述API的运行调用逻辑的内容进行编码生成函数调用码并排序;

将所述参数设置的内容进行编码生成多串数据调用码并排序;

将所述参数设置的内容拆分为常量数据和变量数据;

根据所述常量数据和变量数据的不同类型,将所述常量数据和所述变量数据进行细分,生成多串数据调用码;

添加关键字,将所述函数调用码和所述多串数据调用码进行隔离,并将进行隔离后的数据进行封装,生成所述脚本程序。通过在芯片中烧录脚本可执行文件,使脚本程序驱动所述脚本可执行文件即可使芯片实现相应的功能。

下面提供实际的应用实例供理解和参考:

目的:用户需要用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芯片上就可以执行了。

以上仅是本发明的优选实施方式,应当理解本发明并非局限于本文所披露的形式,不应看作是对其他实施例的排除,而可用于各种其他组合、修改和环境,并能够在本文构想范围内,通过上述教导或相关领域的技术或知识进行改动。而本领域人员所进行的改动和变化不脱离本发明的精神和范围,则都应在本发明所附权利要求的保护。

相关技术
  • 一种图形化云开发平台
  • 一种基于ROS的图形化开发平台
技术分类

06120112922783