一种图形化编程控制与存储系统技术方案

技术编号:15540764 阅读:93 留言:0更新日期:2017-06-05 10:29
本发明专利技术公开了一种图形化编程控制与存储系统,包括中心控制模块、与所述中央控制模块连接的显示模块、消息响应模块、图形化编程组件间操作模块、图形化编程组件内操作模块、项目属性及控制模块、自定义组件模块、项目持久化模块和编译模块;所述中心控制模块负责处理、存储和返回传递过来的信息和结果。该系统能够让使用人员通过拖动图形化编程组件从而完成复杂的编程工作,系统最后会生成制定语言或可执行程序,从而实现编程的图形化。通过上述方案,本发明专利技术能够实现图形化编程的控制与存储,使编程直观可见,提高编程人员的工作效率。

A graphical programming control and storage system

The invention discloses a graphical programming control and storage system, which comprises a central control module, and the central control module is connected with the display module, message processing module, graphical programming component operation module, graphical programming assembly operation module, control module, project properties and custom component module, project persistence module compile and module; the central control module is responsible for handling, storage and return information from the results and. The system enables users to perform complex programming by dragging graphical programming components, and the system finally generates programming languages or executable programs to graphically program the program. Through the scheme, the invention can realize the control and storage of the graphical programming, make the programming visual and visible, and improve the work efficiency of the programmer.

【技术实现步骤摘要】
一种图形化编程控制与存储系统
本专利技术一般涉及图形化编程领域,具体涉及一种图形化编程的控制与存储。
技术介绍
随着社会的发展,人们生活水平的不断提高,同时计算机技术的飞速发展,软硬件编程已不再是IT人员的专职工作,编程者可能来自于社会上各行各业。同时在儿童的计算机早期教育中,对于儿童编程思想的培养也对编程语言使用的难易程度改进进一步地提出了需求。在乔布斯遗失的录像里,他说到每个人都应该学习编程,因为编程能促进大脑的思考,让人考虑问题更加周全。但事实上,程序逻辑的复杂,编程语言语法的繁多,仍然让非计算机相关专业的人们感到难以企及。而对非计算机软硬件相关专业机器人发烧友而言,作为使用电脑人群中的特殊群体,如果将软件烧写在固定的芯片里,不能给他们一定的创造空间,这也已经不能满足他们的需求。开发可编程以创造属于自己的作品,同时易于使用的平台是解决这个燃眉之急的唯一途径。现有的图形化编程软件并不常见,而且大都形式固定,可提供给用户编程使用的组件有限,过于专业,学习成本高,用户仍然需要花费很多时间才能弄懂图形化编程系统如何使用,且系统本身效率不高,既费时费力,效果也不佳。
技术实现思路
本专利技术针对当前图形化编程领域技术的不足,提供了一种图形化编程控制与存储系统。本专利技术的目的在于提供一种高效实用且操作简单的图形化编程控制与存储系统,能够让使用人员通过拖动图形化编程组件从而完成复杂的编程工作,系统最后会生成制定语言或可执行程序,从而实现编程的图形化。一种图形化编程控制与存储系统,其包括中心控制模块、与所述中央控制模块连接的显示模块、消息响应模块、图形化编程组件间操作模块、图形化编程组件内操作模块、项目属性及控制模块、自定义组件模块、项目持久化模块和编译模块;所述中心控制模块处于整个系统的中心地位,负责处理、存储和返回传递过来的信息和结果;所述显示模块用于直观显示图形化编程组件,并接收来自用户的操作,将操作消息传递至消息响应模块,以及显示结果;所述消息响应模块用于分发消息到中心控制模的对应部分进行处理和将消息处理结果返回消息源,完成连接作用;所述图形化编程组件间操作模块主要负责图形化编程组件与组件之间的组织关系和信息的控制与存储;所述图形化编程组件内操作模块用于编程组件内部参数及其他信息的读取、修改和存储;所述项目属性及控制模块用于项目的创建、销毁以及项目属性的读取、修改和存储;所述自定义组件模块用于在已有图形化编程组件上再创建自定义的函数或图形化编程组件;所述项目持久化模块用于将项目信息持久化到磁盘以及将已有信息读取出来;所述编译模块用于将用户编写好的图形化代码编译成其他语言或可执行程序,生成最终结果。进一步地,所述图形化编程组件包括:控制外设组件(如完成简单功能的传感器组件),常量、变量和完成逻辑功能的循环组件,选择分支组件,以及能够完成创建自定义的函数或复合功能图形化编程组件的自定义组件。进一步地,中心控制模块与显示模块之间通过消息响应模块连接,消息响应模块将消息分发给中心控制模,中心控制模处理完毕之后将结果传递给消息响应模块,消息响应模块再将消息返回到消息源。进一步地,中心控制模块包括项目集合,每个项目包括本项目中的所有程序集合、自定义集合和变量集合;每个程序包括本程序中所有描述组件间关系的组件树集合、描述组件内部信息的组件实体集合、描述组件间参数赋值的参数连线集合。进一步地,描述组件间关系的组件树集合,与描述组件内部信息的组件实体集合分开存储,但在逻辑上每个程序中内部的每一组以1开始自增的序列号方式唯一标识,一一对应;在每个程序中提供树到组件的索引,并提供组件到树的反向索引以提高查询速度;树编号即是该树树根编号。进一步地,所述循环组件中包含循环条件、循环次数和存在于该循环组件中的组件树编号即该树树根编号集合,同时提供树到循环组件编号的反向索引以提高查询速度,循环组件能够嵌套循环组件、选择分支组件或自定义组件;所述选择分支组件中包括分支条件、多个选择分支,每个分支中包括存在于该选择分支组件中的组件树编号集合,同时提供树到循环组件编号的反向索引以提高查询速度,选择分支组件能够嵌套循环组件、选择分支组件或自定义组件。进一步地,所述循环组件有且只有一棵最终参与编译的激活树,该树的编号计算方法是I=IDmodule*ACTIVE_TREE_MAP_FACTOR,其中I为激活树编号,IDmodule为模块编号,ACTIVE_TREE_MAP_FACTOR取100000;所述选择分支组件的每个分支中有且只有一棵最终参与编译的激活树,该树的编号计算方法是I=IDmodule*ACTIVE_TREE_MAP_FACTOR+IDmodule,其中I为激活树编号,IDmodule为模块编号,ACTIVE_TREE_MAP_FACTOR取100000,IDmodule为分支编号。进一步地,所述自定义组件模块能够组合多个已有编程组件为一个新的编程组件,包括存在于本自定义组件中所有描述组件间关系的组件树集合、描述组件内部信息的组件实体集合、描述组件间参数赋值关系的参数连线集合;自定义组件能够嵌套循环组件、选择分支组件或自定义组件。进一步地,所述图形化编程组件间操作模块包括模块的插入、查找、移动和删除操作;所述插入操作包括以下步骤:(a)用户发起一个插入新组件指令;(b)消息响应模块接收到(a)的消息,找到负责插入操作的中心控模块函数,判断插入类型是后置插入还是前置插入;如果插入类型为后置插入,将待插入组件的前驱模块编号传入该中心控制模块函数;否则将待插入组件的后继模块编号传入该中心控制器函数;(c)中心控制模块将相应程序中已有的最大组件编号加1,作为即将插入的新组件的编号;(d)如果为后置插入,判断前驱节点的编号是否为0,如果为0,就新生成一棵树,新插入节点作为该树树根;如果前驱节点的编号不为0,且前驱节点后方有节点,需要先将后方节点断开,将新节点插入在前驱节点的后方,再将原后方节点接在新节点后方;如果前驱节点的编号不为0,且前驱节点后方没有节点,则将新节点直接接在前驱节点后方;如果为前置插入,判断后继节点是否为0,如果为0,就新生成一棵树,新插入节点作为该树树根;判断后继节点是否为该树树根,如果为树根,则将新插入节点换做本树树根,更新组件到树的映射索引;否则不允许前置插入;如果需要插入到完成逻辑功能的循环组件、选择分支组件中,还需要更新树到逻辑功能组件的映射索引;(e)在持久化模块的组件初始化子模块中找到该组件的初始化信息,初始化模块内部信息;(f)通过消息响应模块反馈结果;所述移动操作包括以下步骤:(g)用户发起一个移动组件指令;(h)消息响应模块接收到(g)的消息,找到负责移动操作的中心控制器函数,判断移动类型是单组件后置移动、单组件前置移动,还是多组件后置移动、多组件前置移动;如果为单组件后置移动,需要将待移动组件编号和待插入位置的前驱组件编号传入该中心控制器函数;如果为单组件前置移动,需要将待移动组件编号和待插入位置的后继组件编号传入该中心控制器函数;如果为多组件后置移动,需要将所有待移动组件编号和待插入位置的前驱组件编号传入该中心控制器函数;如果为多组件前置移动,需要将所有待移动组件编号和待插入位置的后继组件编号传入本文档来自技高网...
一种图形化编程控制与存储系统

【技术保护点】
一种图形化编程控制与存储系统,其特征在于包括中心控制模块、与所述中央控制模块连接的显示模块、消息响应模块、图形化编程组件间操作模块、图形化编程组件内操作模块、项目属性及控制模块、自定义组件模块、项目持久化模块和编译模块;所述中心控制模块处于整个系统的中心地位,负责处理、存储和返回传递过来的信息和结果;所述显示模块用于直观显示图形化编程组件,并接收来自用户的操作,将操作消息传递至消息响应模块,以及显示结果;所述消息响应模块用于分发消息到中心控制模的对应部分进行处理和将消息处理结果返回消息源,完成连接作用;所述图形化编程组件间操作模块主要负责图形化编程组件与组件之间的组织关系和信息的控制与存储;所述图形化编程组件内操作模块用于编程组件内部参数及其他信息的读取、修改和存储;所述项目属性及控制模块用于项目的创建、销毁以及项目属性的读取、修改和存储;所述自定义组件模块用于在已有图形化编程组件上再创建自定义的函数或图形化编程组件;所述项目持久化模块用于将项目信息持久化到磁盘以及将已有信息读取出来;所述编译模块用于将用户编写好的图形化代码编译成其他语言或可执行程序,生成最终结果。

【技术特征摘要】
1.一种图形化编程控制与存储系统,其特征在于包括中心控制模块、与所述中央控制模块连接的显示模块、消息响应模块、图形化编程组件间操作模块、图形化编程组件内操作模块、项目属性及控制模块、自定义组件模块、项目持久化模块和编译模块;所述中心控制模块处于整个系统的中心地位,负责处理、存储和返回传递过来的信息和结果;所述显示模块用于直观显示图形化编程组件,并接收来自用户的操作,将操作消息传递至消息响应模块,以及显示结果;所述消息响应模块用于分发消息到中心控制模的对应部分进行处理和将消息处理结果返回消息源,完成连接作用;所述图形化编程组件间操作模块主要负责图形化编程组件与组件之间的组织关系和信息的控制与存储;所述图形化编程组件内操作模块用于编程组件内部参数及其他信息的读取、修改和存储;所述项目属性及控制模块用于项目的创建、销毁以及项目属性的读取、修改和存储;所述自定义组件模块用于在已有图形化编程组件上再创建自定义的函数或图形化编程组件;所述项目持久化模块用于将项目信息持久化到磁盘以及将已有信息读取出来;所述编译模块用于将用户编写好的图形化代码编译成其他语言或可执行程序,生成最终结果。2.根据权利要求1所述的一种图形化编程控制与存储系统,其特征在于,所述图形化编程组件包括:控制外设组件,常量、变量和完成逻辑功能的循环组件,选择分支组件,以及能够完成创建自定义的函数或复合功能图形化编程组件的自定义组件。3.根据权利要求1所述的一种图形化编程控制与存储系统,其特征在于,中心控制模块与显示模块之间通过消息响应模块连接,消息响应模块将消息分发给中心控制模,中心控制模处理完毕之后将结果传递给消息响应模块,消息响应模块再将消息返回到消息源。4.根据权利要求1所述的一种图形化编程控制与存储系统,其特征在于,中心控制模块包括项目集合,每个项目包括本项目中的所有程序集合、自定义集合和变量集合;每个程序包括本程序中所有描述组件间关系的组件树集合、描述组件内部信息的组件实体集合、描述组件间参数赋值的参数连线集合。5.根据权利要求4所述的一种图形化编程控制与存储系统,其特征在于,描述组件间关系的组件树集合,与描述组件内部信息的组件实体集合分开存储,但在逻辑上每个程序中内部的每一组以1开始自增的序列号方式唯一标识,一一对应;在每个程序中提供树到组件的索引,并提供组件到树的反向索引以提高查询速度;树编号即是该树树根编号。6.根据权利要求2或5所述的一种图形化编程控制与存储系统,其特征在于,所述循环组件中包含循环条件、循环次数和存在于该循环组件中的组件树编号即该树树根编号集合,同时提供树到循环组件编号的反向索引以提高查询速度,循环组件能够嵌套循环组件、选择分支组件或自定义组件;所述选择分支组件中包括分支条件、多个选择分支,每个分支中包括存在于该选择分支组件中的组件树编号集合,同时提供树到循环组件编号的反向索引以提高查询速度,选择分支组件能够嵌套循环组件、选择分支组件或自定义组件。7.根据权利要求6所述的一种图形化编程控制与存储系统,其特征在于,所述循环组件有且只有一棵最终参与编译的激活树,该树的编号计算方法是I=IDmodule*ACTIVE_TREE_MAP_FACTOR,其中I为激活树编号,IDmodule为模块编号,ACTIVE_TREE_MAP_FACTOR取100000;所述选择分支组件的每个分支中有且只有一棵最终参与编译的激活树,该树的编号计算方法是I=IDmodule*ACTIVE_TREE_MAP_FACTOR+IDmodule,其中I为激活树编号,IDmodule为模块编号,ACTIVE_TREE_MAP_FACTOR取100000,IDmodule为分支编号。8.根据权利要求1所述的一种图形化编程控制与存储系统,其特征在于,所述自定义组件模块能够组合多个已有编程组件为一个新的编程组件,包括存在于本自定义组件中所有描述组件间关系的组件树集合、描述组件内部信息的组件实体集合、描述组件间参数赋值关系的参数连线集合;自定义组件能够嵌套循环组件、选择分支组件或自定义组件。9.根据权利要求1所述的一种图形化编程控制与存储系统,其特征在于,所述图形化编程组件间操作模块包括模块的插入、查找、移动和删除操作;所述插入操作包括以下步骤:(a)用户发起一个插入新组件指令;(b)消息响应模块接收到(a)...

【专利技术属性】
技术研发人员:黄翰王琥梁椅辉盛逸辰郝志峰
申请(专利权)人:华南理工大学
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1