有关多模块编译的系统及方法与流程

文档序号:11250672阅读:215来源:国知局
有关多模块编译的系统及方法与流程

本发明涉及多模块编译系统及多模块编译方法,并具有编译器程序的计算机可判读存储媒体。



背景技术:

最近,以教育、兴趣、研究、生产等多种目的,提出基于多种模块系统。包括在这些模块基础系统的模块,可分别执行特定的功能,提供可使模块相互连接形成模块组合。在这种情况下,各自的模块相互由电性连接,可使接发能量、信号、数据等的被提供。用户可根据提供的手册或自己创作的方式,组装模块制作执行特性目的的模块系统。

这些现有的模块系统有必要为了变更使用目的,或更新为更好的版本,由模块化个别的更新驱动模块系统的程序。在这种情况下,将构成模块系统的模块由个别单位进行分离,且每分离的模块需要用于更新的作业,从物理性非常不便,且需要相当的时间。

此外,现有的模块系统不能一次性的开发对模块系统整个运营的程序,且个别的开发模块单位的程序进行编译,所以,对开发有困难。



技术实现要素:

技术课题

本发明的实施例,将提供包括多个模块的模块系统中,可更新各模块数据的模块系统及模块系统的更新方法。

本发明的实施例,将提供由网络连接的包括多个模块的模块系统中,可从模块系统整个程序代码,生成各模块化执行代码的多模块编译系统及多模块编译方法。

技术方案

根据本发明的一个侧面,可提供一种多模块编译系统,作为包括多个模块生成模块系统的各个模块化执行代码的多模块编译系统,其包括:模块识别单元,分析所述模块系统的程序代码,识别执行所述程序代码的对象模块;模块代码生成单元,将所述程序代码分割成所述对象模块化模块代码并生成;及编译单元,编译所述对象模块化模块代码,生成所述对象模块的执行代码。

此外,可提供所述模块化模块代码包括:模块设置部分,包括模块的标识符信息,包括对模块设置的内容;事件接发部分,包括对其他模块间接发的消息内容;及事件动作部分,包括对所述消息的所述模块动作内容的多模块编译系统。

此外,可提供还包括通信单元,与所述模块系统进行通信的多模块编译系统。

此外,可提供所述模块系统和所述通信单元被连接为能够通信时,还包括:模块识别单元,自动识别构成所述模块系统的模块种类和个数的多模块编译系统。

此外,可提供所述模块识别单元接收构成所述模块系统的,存储在各个模块的执行代码的多模块编译系统。

此外,可提供还包括:用户界面单元,生成所述模块系统的程序代码,用户能够编辑,且所述用户界面单元显示在所述模块识别单元被识别的所述模块的图像的多模块编译系统。

此外,可提供还包括:代码数据库单元,存储所述程序代码或所述对象模块化模块代码的多模块编译系统。

此外,所述程序代码利用至少一部分应用程序编程界面(api;applicationprogramminginterface),被编程的多模块编译系统。

此外,可提供所述多个模块由网络连接的多模块编译系统。

根据本发明的一个侧面,可提供一种多模块编译方法,作为包括多个模块,使生成模块系统的各个模块化执行代码,在计算机或移动设备被执行的多模块编译方法,其步骤包括:模块识别步骤,分析所述模块系统的程序代码,识别执行所述程序代码的对象模块;模块代码生成步骤,将所述程序代码分割成所述对象模块化模块代码;及编译步骤,编译所述对象模块化模块代码,生成所述对象模块化执行代码。

此外,可提供所述模块代码生成步骤,基于在所述对象模块发生的事件和所述对象模块的关联性,分割成所述对象模块化模块代码并生成的多模块编译方法。

此外,可提供还包括:将生成的所述对象模块化执行代码,发送到所述模块系统的各个所述对象模块步骤的多模块编译方法。

此外,可提供所述模块系统和所述计算机或所述移动设备被连接为能够通信时,其步骤还包括:模块识别步骤,自动识别构成所述模块系统的模块种类和个数的多模块编译方法。

此外,可提供还包括:模块显示步骤,将从所述模块识别步骤识别的模块种类和个数,显示在所述计算机或所述移动设备的多模块编译方法。

根据本发明的一个侧面,可提供一种计算机可判读存储媒体,作为包括多个模块生成模块系统的各个模块化执行代码,具有编译器程序的计算机可判读存储媒体,所述编译器程序由计算机或移动设备执行时,其方法包括:模块识别步骤,分析所述模块系统的程序代码,识别执行所述程序代码的对象模块;模块代码生成步骤,将所述程序代码分割成所述对象模块化模块代码;及编译步骤,编译所述对象模块化模块代码,生成所述对象模块化执行代码。

此外,计算机可判读存储媒体可提供所述模块代码生成步骤,基于在所述对象模块发生的事件和所述对象模块的关联性,分割成所述对象模块化模块代码并生成。

此外,计算机可判读存储媒体还包括:用户界面提供步骤,生成所述模块系统的程序代码,使用户进行编辑,且可提供所述用户界面单元是文字用户界面(cui;characteruserinterface)或图形用户界面(gui;graphicuserinterface)。

技术效果

根据本发明的一个实施例的模块系统及模块系统的更新方法,对多个模块各自的数据更新,不个别的执行,而且可整体的执行,可方便并时间上有效率的更新构成模块系统的个别模块。

根据本发明的一个实施例的多模块编译系统及多模块编译方法,可从模块系统整个程序代码,快速有效地生成个模块化执行代码。由此,由多个模块构成的模块系统中,从整个程序代码生成模块化代码进行编译,可方便有效的更新各模块。

附图说明

图1是示出根据本发明的一个实施例的模块系统的大概构成的框图。

图2是示出根据本发明的一个实施例,在模块系统接发模块间数据的框图。

图3是示出在模块系统接发模块间的数据帧。

图4是示出根据本发明的其他实施例的模块系统大概构成的框图。

图5是示出根据本发明的一个实施例的模块系统的模块化更新中,模块通信端执行步骤的顺序图。

图6是示出根据本发明的一个实施例的模块系统的模块化更新中,主模块执行步骤的顺序图。

图7是示出根据本发明的一个实施例的模块系统的模块化更新中,子模块执行步骤的顺序图。

图8是示出根据本发明的一个实施例的模块系统中,计算机、主模块、对象子模块间的消息流程图。

图9是示出根据本发明的一个实施例,基于模块的机器人系统构成的原理图。

图10是示出在图9的个别模块的断面图。

图11是示出根据本发明的一个实施例的多模块编译系统的大概构成的框图。

图12a及图12b是示出根据本发明的一个实施例的多模块编译系统的图形用户界面单元。

图13是示出根据本发明的一个实施例的多模块编译方法的执行步骤的顺序图。

图14是在图13中的代码生成器(模块代码生成单元)的执行步骤的顺序图。

图15是在图14中代码生成器(模块代码生成单元)的事件分析步骤的顺序图。

图16a是示出根据本发明的一个实施例,在多模块编译系统被编码的程序代码的对模块类的代码列表。

图16b是示出其他模块被附加识别的,对模块的类别的代码列表。

图16c是示出在识别的模块间接发的,对事件处理的代码列表。

图17a及图17b是示出根据本发明的一个实施例,通过多模块编译系统生成的模块化代码列表。

具体实施方式

以下,参照附图可使本发明领域的技术人员容易地实施,对本发明的实施例进行详细地说明。但是,本发明可由多种相异的形态被体现,且不限定于在此说明的实施例。并且,为了在图明确地说明本发明,与说明无关的部分进行了省略。

在本说明书使用的用语只是为了说明特定的实施例被使用,但不是限定本发明的意图。单数的表现在文字上没有明确的指定其他意思外,可包括复数的表现。

在本说明书中,“包括”、“具有”或“具备”等用语是指定在说明书上记载的特征、数字、步骤、动作、构成要素、部件或组合这些的存在,可以理解为不预先排除一个或其以上的其他特征或数字、步骤、动作、构成要素、部件或组合这些的存在或附加可能性。

此外,以下的实施例是为了给本领域中具有平均知识的人员更明确地说明被提供的,在图的要素形象及大小等,可为了更明确地说明而被夸张。

参考以下附图对本发明进行详细地说明。

模块系统

图1是示出根据本发明的一个实施例的模块系统的大概构成的框图。

参照图1,根据本发明的一个实施例,模块系统200在包括相互通信可行的多个模块210、220、230、240、250、260、270的模块系统200中,可整体的执行对各自模块210、220、230、240、250、260、270的更新。

在本发明的实施例中,‘模块’的意思是为了执行模块特征功能的功能单位。所述‘模块’可使进行相互通信的由网络被连接,也可由物理性的被分离成各个,也可布置在相同的物理空间内。

在本发明的实施例,‘主’及‘子’的用语在说明多种模块中,被用于相互区别的目的,不意味着‘主’和‘子’在功能上具有主从关系。

在本发明的实施例,‘更新’意味着与各个模块的运营有关的数据更新,更新数据可以是模块的固件软件、模块的运营体系软件,及用于模块的驱动数据中的任何一个以上。

所述模块系统200可包括主模块210,和可与所述主模块210进行数据通信,网络连接的一个以上的子模块220、230、240、250、260、270。

所述主模块210可与外部设备100,例如,笔记本电脑、台式电脑或如工作站的计算机,或如移动电话、个人数字助理pda、智慧型、电子书的移动设备,进行通信的被连接。所述主模块210可与所述外部设备100进行通信的被连接,与所述外部设备100相互接发数据,或可接收对所述子模块220、230、240、250、260、270的更新数据。所述主模块210与所述外部设备100,可由通用串行总线(usb)、红外数据通讯(irda)、无线局域网(wifi)、超宽带(uwb)、蓝牙、无线个域网(zigbee)、码分多址(cdma)、宽带码分多址移动通信系统(wcdma)、线终止设备(lte)、长期演进技术(lte-a)中任何一个方式进行通信150。即,所述主模块210可由usb有线的连接在所述外部设备100,也可通过wifi直接由无线连接,也可通过接入点(ap)无限的连接。

所述子模块220、230、240、250、260、270与所述主模块210进行数据通信由网络连接,作为各个固件升级可行的中央处理器(cpu),可内装微控制器(mcu;microcontrollerunit)。所述微处理器作为内部存储器,可包括如闪存、存储固件的用户代码领域,和用于启动微处理器的引导模式(bootloader)领域。在本实施例,所述子模块220、230、240、250、260、270各个可以是子通信模块220、电源模块230、马达模块240、按钮模块250、传感器模块260、显示模块270、摄像机模块中任何一个。所述传感器模块260可以是用于传感紫外线传感器、触觉传感器、触摸传感器、图像传感器、超声波传感器、指纹识别传感器、光传感器、音响传感器、压力传感器、温度传感器、加速度传感器、陀螺仪传感器、语音识别传感器等,多种形态的物理信息的手段。

所述子模块220、230、240、250、260、270可使与所述主模块210相互接发数据,可由网络总线202连接,在本实施例,所述网络总线202可以是只接收通过所述网络总线202发送的,与数据的目的地地址一致的模块数据的广播方式。所述网络总线202可由串口、局域网(lan)、控制器局域网(can)、usb、irda、wifi、蓝牙、zigbee、cdma、wcdma、lte、lte-a等,多种有无线通信方式被构成,也可进行异种通信。

在本实施例,所述网络总线202可以是控制器局域网(can;controllerareanetwork)总线。利用can通信时,便于模块间即插即用的体现,便于广播网络的体现,可具有高信赖度,提高系统控制速度和稳定性。

所述主模块210通过所述网络总线202,在所述子模块220、230、240、250、260、270中,给需要所述子模块的微处理器更新的对象子模块,可发送更新所需的更新数据。

所述电源模块230的配置是为了供给所述模块系统200整个电源,由电性连接在所述主模块210和其他子模块220、240、250、260、270,可给所述主模块210和其他子模块220、240、250、260、270供给模块运行所需的电源。所述电源模块230与外部电源连接,给所述模块系统200供给电源,或在内部搭载锂离子电池,可也在所述电池供给储蓄的电力。

各个的模块210、220、230、240、250、260、270可具备块形象的机壳,相邻的模块可相互直接物理性的连接,也可利用另外的连接器连接。此外,所述电源模块230可与所述主模块210另外的被配置,也可与所述主模块210一起,一体的形成在一个外壳内被配置。

一方面,在与所述模块系统200通信可行的连接的外部设备100,可构建用于生成所述模块系统200的各个模块210、220、230、240、250、260、270执行代码的集成开发环境系统(ide;integrateddevelopmentenvironment)。所述集成开发环境系统(ide)可包括用户界面单元110、模块代码生成器120、编译器130及模块通信端140。用户在所述集成开发环境系统上,可生成或修改用于所述模块系统200的各模块210、220、230、240、250、260、270运行的程序。所述用户界面单元110可以是文字用户界面(cui;characteruserinterface)或图形用户界面(gui;graphicuserinterface)中的一个,cui和gui也可以是相互可转换的界面。所述集成开发环境可支援如java、c++的个体指向编程开发环境。

所述模块代码生成器120在所述用户界面单元110,将编制的程序代码分割及修改为各模块210、220、230、240、250、260、270化程序代码之后,可通过所述编译器130,生成对应于各模块的更新数据代码。生成的所述更新数据代码通过模块通信端140,可发送到以有线或无线方式连接150至可通信的所述模块系统200的主模块210。

图2是示出根据本发明的一个实施例,在模块系统接发模块间数据的框图,且图3是示出在模块系统接发模块间的数据帧。

参照图2及图3,根据本发明的一个实施例,模块系统200可通过主模块210从外部设备100接收数据。构成所述模块系统200的主模块210和子模块220、230、240、250、260、270各个作为固有的识别者,具有地址值。所述标识符可以是媒体访问控制地址(mac;mediumaccesscontroladdress),也可以是所述模块分别被制造时,被赋予的固有串口号码。作为一个示例的本实施例中,所述主模块210作为地址值可具有001,子通信模块220作为地址值可具有002。相同地,所述子模块230、240、250、260、270分别为地址值,可具有003、004、005、006、007。从外部设备100给所述模块系统200的马达模块240发送特定数据时,所述外部设备100向传送的所述特定数据,可传送由附加马达模块240的地址值004的数据包形态。所述模块系统200的主模块210接收所述数据包之后,将所述数据包适应于网络总线203的协议进行变换,可通过所述网络总线203,将变换的所述数据包发送到连接在所述网络总线203的所有模块220、230、240、250、260、270。在本实施例,所述网络总线203可以是只接收与数据目的地地址一致的模块的所述数据的广播方式。所述网络总线203可由串口、lan、can、usb、irda、wifi、蓝牙、zigbee、cdma、wcdma、lte、lte-a等,多种有无线通信方式被构成,也可进行异种通信。

在本实施例,所述网络总线203可以是控制器局域网(can;controllerareanetwork)总线。利用can通信时,便于模块间即插即用的体现,便于广播网络的体现,可具有高信赖度,提高系统控制速度和稳定性。

所述子模块220、230、240、250、260、270各个比较包括在所述数据包的目标地址值和自身的地址值,判断所述数据包是否传达到自身的模块。在本实施例,所述数据包的目标模块地址值是004,所以,马达模块240可判断所述数据包发送到自身,且接收此。相反地,其他子模块220、230、250、260、270通过所述网络总线202发送的所述数据包的目标地址值与自身的地址值不同,所以,不接收此。

图3是示出通过所述网络总线202被传送的数据帧300的结构。如图所示,根据本发明的一个实施例,通过网络总线202传送的数据帧300可包括告知帧开始的帧起始(sof;startofframe)领域302、介入领域210、控制领域320、数据领域330、检查数据帧的循环冗余校验(crc;cyclicredundancycheck)领域340、告知对数据接收应答的ack领域350及告知帧端的帧结束(eof;endofframe)领域360。

所述介入领域210可包括含有成为数据帧300传送目标的模块地址信息的id地址312,和所述模块的内部存储器地址314,和指令(cm;commandd)316信息。所述cmd信息316包括对目标模块的更新开始和接收的信息,可包括对所述目标模块的指令信息。所述控制领域320包括含有在所述数据领域330的数据比特个数的数据长度码(dlc;datalengthcode)信息。所述数据领域330是传送到所述目标模块的有用数据的位置。如示出,根据本实施例的数据帧300包括对目标模块的id地址312和数据包330,在连接在网络总线202的模块中,只与所述id地址312一致的所述目标模块,才可接收数据包330。

图4是示出根据本发明的其他实施例的模块系统大概构成的框图。

参照图4,根据示出的本发明的其他实施例,模块系统400可包括第一模块系统200,和与所述第一模块系统200可通信连接的第二模块系统420。

所述第一模块系统200与在图1示出的模块系统200相同的,可包括与外部设备100可通信连接的主模块210,和作为子模块的子通信模块220、电源模块230、马达模块240、按钮模块250、传感器模块260及显示模块270。所述主模块210和所述子模块220、230、240、250、260、270可与如can总线的广播方式的网络总线202连接。

所述第二模块系统420可包括与所述第一模块系统200的所述子通信模块220由有线或无线可通信连接的子通信模块430、摄像机模块450,及电源模块440。

所述电源模块440为了供给所述第二模块系统420整个电源被配置的,电性连接在其他子模块430、450,可给各模块的运行供给必要的电源。各个的模块430、440、450具备块形象的外壳,使相邻的模块相互直接物理性的被连接,也可利用另外的连接器连接。此外,所述电源模块440可与所述子通信模块430另外的配置,也可在一个机壳内一体的形成配置。

与所述第一模块系统200相同的方式,所述第二模块系统420可与子模块430、440、450以广播方式的网络总线422被连接。在这种情况下,所述第二模块系统420的子模块430、440、450分别为固有的标识符,可具有地址值。所述标识符可具有媒体访问控制地址(mac地址;mediumaccesscontroladdress),也可以是分别制造所述模块时,被赋予的固有串口号码。作为一个示例在本实施例,子通信模块430作为地址值可具有008,电源模块440作为地址值具有009,摄像机模块450作为地址值可具有010。

所述子通信模块430与所述第一模块系统200的子通信模块220可通信的连接,所以,所述第一模块系统200和所述第二模块系统420可相互接发数据。如果,所述第一模块系统200和所述第二模块系统420,通过子通信模块220、430以无线接发数据时,所述第一模块系统200和所述第二模块系统420,在物理性脱离且没有连接的位置,也可相互独立的执行作业,共享作业处理中发生的数据。此外,所述第一模块系统200和所述第二模块系统420可相互接发消息,所以,可构建有机性协作的系统。在这种情况下,所述第一模块系统200的网络总线202和所述第二模块系统420的网络总线422,可以是相同广播方式的网络,并且可以是can总线。

根据本实施例,所述第一模块系统200的子通信模块220,和所述第二模块系统420的子通信模块430,可事先接发并存储包括在相互对方的模块系统模块的地址值。即,第一模块系统200的子模块220掌握包括在第二模块系统420的对模块430、440、450的地址,可虚拟的识别如同所述第一模块系统200和所述第二模块系统420被连接。同样地,第二模块系统420的子模块430也是掌握包括在所述第一模块系统200的对模块210、220、230、240、250、260、270的地址,可虚拟的识别如同所述第一模块系统200和所述第二模块系统420被连接。

从所述外部设备100向所述第二模块系统420的摄像机模块450发送特定数据(消息)时,所述外部设备100以在将传送的所述特定数据附加所述摄像机模块450的地址值010的数据包形态,传送到所述第一模块系统200的主模块210。其次,所述第一模块系统200的主模块210接收所述数据包之后,将所述数据包适应于所述网络总线202的协议进行变换,将变换的所述数据包通过所述网络总线202,可发送到连接在所述网络总线202的所有子模块220、230、240、250、260、270。在这种情况下,所述子模块220、230、240、250、260、270的地址值不是010,所以,子模块230、240、250、260、270不接收所述数据包的目标地址值与自身地址不同的所述数据包。只是,所述子通信模块220事先知道,对构成所述第二模块系统420的模块430、440、450的地址信息008、009、010,所以,可知与自身连接的第二模块系统420的摄像机模块450地址为010。因此,即使所述数据包的目标模块地址010与自身的地址002不同,也接收所述数据包,可发送到所述第二模块系统420的子通信模块430。所述子通信模块220、430之间的通信402可以是usb、irda、wifi、uwb、蓝牙、zigbee、cdma、wcdma、lte、lte-a中任何一个方式。

所述主模块210可接收从所述外部设备100包括在所述第二模块系统420的,对模块430、440、450的更新数据代码并存储。所述主模块210可通过所述子通信模块220、430,将接收的所述更新数据代码发送到所述第二模块系统420。因此,可执行对与所述第一模块系统200的主模块210物理性隔离的所述第二模块系统420的模块化数据更新。

图5是示出根据本发明的一个实施例的模块系统的模块化更新中,模块通信端执行步骤的顺序图。图6是示出根据本发明的一个实施例的模块系统的模块化更新中,主模块执行步骤的顺序图。

图7是示出根据本发明的一个实施例的模块系统的模块化更新中,子模块执行步骤的顺序图。图8是示出根据本发明的一个实施例的模块系统中,计算机、主模块、对象子模块间的消息流程图。

参照图1、图5及图8,对模块通信端的更新执行步骤进行说明。首先,由所述编译器130模块化生成的更新数据代码是二进制机器语言代码形态。在步骤510中,所述模块通信端140从所述编译器130接收对n个模块各个的更新数据代码。其次,所述模块通信端140将成为更新目标的各个模块地址,添加在包括所述模块化更新数据代码的数据帧的通信标。例如,在步骤520中,模块的mac地址或固有的串口数字的一部分作为模块地址,添加在通信标。

其次,在步骤530中,所述模块通信端140可使适用于所述模块通信端140和所述主模块210之间的通信协议,编码所述数据帧。即,适应于无线的wifi或蓝牙方式,或有线的usb通信协议,可编码将传送的各个数据。在这种情况下,在步骤540中,为了传送多模块的更新数据代码,所述模块通信端140可将所述更新数据代码上传到配置在内部的先进先出存储器(firstinfirstoutmemory,fifo存储器)。即,所述模块通信端140以先进先出方式,将编码的所述模块化更新数据代码存储在内部存储器之后,可发送到所述主模块210。例如,在步骤550中,所述模块通信端140发送n个模块的模块化更新数据代码时,用于在所述fifo存储器第一次被上传的第一模块的更新数据代码,第一个发送到所述第一主模块210。

其次,所述模块系统200的第一模块从所述主模块210,可通过所述网络总线202接收所述更新数据代码。在这种情况下,在步骤560中,为了确认完整性,所述模块通信端140可给所述主模块210再发送所述更新数据代码,所述主模块210也可将第二次接收的所述更新数据代码再发送到所述第一模块。其次,在步骤570中,所述第一模块可相互比较两次接收的所述更新数据代码,验证完整性。如果,完整性验证570没有错误时,所述第一模块生成完成消息,发送至所述主模块210。如果,在验证完整性的过程中发生错误时,所述第一模块生成错误消息,发送至所述主模块210。由此,所述主模块210将所述错误消息发送到所述模块通信端140,可请求再发送具有错误的相应部分的数据,由此,所述模块通信端140可再发送具有错误的相应部分的数据。所述主模块210将完成消息发送到所述模块通信端140,告知对第一模块的更新没有错误的进行。

其次,在步骤540中,所述模块通信端140在所述fifo存储器去除用于第一模块的更新数据代码,可上传相当于下一个模块的更新数据代码。此外,在步骤550中,所述模块通信端140将第二次上传到所述fifo存储器的第二模块的更新数据代码,发送到所述模块系统200的主模块210。相同地,在步骤560中,为了确认完整性,所述模块通信端140可再发送所述第二模块的更新数据代码。其次,在步骤570中,所述模块系统200的第二模块,相互比较两次接收的所述更新数据代码,可验证完整性。如果完整性验证570没有错误时,生成完成消息发送至所述主模块210。如果,在完整性验证过程中发生错误时,所述第二模块生成错误消息,发送至所述主模块210。由此,所述主模块210将所述错误消息发送到所述模块通信端140,可请求再发送具有错误的相应部分的数据。由此,所述模块通信端140可再发送具有错误的相应部分的数据。所述主模块210将完成消息发送到所述模块通信端140,告知对第二模块的更新没有错误的进行。

与此相同的方式,所述模块通信端140在发送第n次模块的更新数据代码之后,确认没有错误,使完成对所述模块系统200各个模块的更新。

参照图1、图6及图8,对主模块的更新执行步骤进行说明。

参照图1、图6及图8,首先,在步骤610,所述模块系统200的主模块210进行根据自身固件的特定进程,在步骤620,检查从所述模块通信端140是否接收数据。所述主模块210可从所述模块通信端140接收模块系统200的模块化更新数据代码。如果,在步骤620,所述主模块210接收数据时,在步骤622,所述主模块210解码通信协议,解释接收数据的内容。在步骤630中,所述接收的数据可以是对模块系统200模块的更新指令。如果,在步骤630,所述接收的数据不是更新指令时,在步骤632,所述主模块210可执行根据相应指令的另外的作业。如果,在步骤630,所述接收的数据是更新指令时,在步骤640,所述主模块210确认将要更新模块的个数n。

其次,在步骤642,所述主模块210通过所述网络总线202,可发送对第一模块的更新请求消息。在这种情况下,如果,在步骤650,所述第一模块正常地接收所述更新请求消息,作为此应答发送准备完成消息,由此,所述主模块210正常地接收所述准备完成消息时,在步骤660,所述主模块210第一次发送对第一模块的更新数据代码。在这种情况下,在步骤662,为了确认完整性所述主模块210可将所述更新数据代码再发送到所述第一模块。其次,在步骤670,所述主模块210从所述第一模块验证完整性,在步骤642,在验证完整性的过程中没有错误时,将更新请求消息发送到第二模块,以于第一模块形同的过程,对第二模块进行更新。如果,在验证所述完整性670的过程具有错误时,在步骤672,所述第一模块可将错误消息发送到所述主模块210,由此,在步骤660,所述主模块210再发送对所述第一模块的更新数据代码。

一方面,在步骤650,所述主模块210接收不到对第一模块的更新准备完成消息,在步骤652,经过规定时间,在步骤654,所述主模块210将更新错误消息发送到所述模块通信端140,在步骤610,可执行自身原来的主进程。

参照图1、图7及图8,对子模块的更新执行步骤进行说明。

参照图1、图7及图8,首先,在步骤710,模块系统200的子模块220、230、240、250、260、270进行根据固件的特定进程,在步骤720,检查从所述主模块210是否接收数据。子模块220、230、240、250、260、270分别可从所述模块主模块210,接收更新数据代码。如果,在步骤720,子模块220、230、240、250、260、270分别接收数据时,在步骤730,所述子模块220、230、240、250、260、270分别解码通信协议,解释接收数据的内容。作为一个示例,所述模块系统200的网络总线202是can总线时,所述子模块220、230、240、250、260、270分别从所述主模块210接收的数据,去除关于通信协议的标,可确认接收的数据cmd316是否为请求更新的消息。如果,在步骤740,所述接收的数据布置更新指令时,在步骤742,所述子模块220、230、240、250、260、270分别可执行根据相应指令的另外的作业。如果,在步骤740,所述接收的数据是更新指令时,在步骤750,所述子模块220、230、240、250、260、270分别为了更新,停止进行中的进程,将程序程序计算器(programcounter)跳跃至引导装载程序。

其次,在步骤760,所述子模块220、230、240、250、260、270分别可给所述主模块210发送用于更新的准备完成的准备完成消息。其次,在步骤770,所述子模块220、230、240、250、260、270分别将从所述主模块210接收的更新数据代码,传递到用户代码领域。在这种情况下,在步骤780,所述子模块220、230、240、250、260、270分别为了确认所述更新数据代码的完整性,从所述主模块210再一次接收所述更新数据,在步骤790,可进行在与以前传递到用户代码领域的数据进行比较的验证过程。如果,在所述完整性验证790过程具有错误时,在步骤794,所述子模块220、230、240、250、260、270分别可将错误消息发送到所述主模块210,由此,在步骤770,所述主模块210再发送对所述子模块220、230、240、250、260、270各个的数据更新代码。如果,在所述完整性验证790过程没有错误时,在步骤792,所述子模块220、230、240、250、260、270分别重置自身的软件再运行。

在上述的实施例中,举例说明了主模块发送与子模块的运营有关的更新数据,但所述主模块也可进行与自身的模块有关的数据更新。

如上述,根据本发明的一个实施例,根据模块系统及模块系统的更新方法,不个别的执行对多模块各个的更新,可整体性的执行,可使简便且有效的更新构成模块系统的个别模块的数据。

此外,将构成模块系统的多种模块,由多种方式结合并连接,可构建多种目的的模块系统。例如,结合电源模块和摄像机模块及主模块,可构建监视用模块系统,利用电源模块、主模块、马达模块及摄像机模块,也可构建移动式模块系统。此外,将由相同的模块构成的模块系统,用于其他用途时,不必要个别开发且个别更新对构成所述模块系统的各个模块的数据,可由整体系统一次性的整体进行更新。

因此,可再使用构成模块系统的模块,简单的交替现有模块系统的数据,可方便的构建多种其他目的的模块系统。

基于模块的机器人系统

图9是示出根据本发明的一个实施例,基于模块的机器人系统构成的原理图,图10是示出在图9的个别模块的断面图。

参照图9及图10,根据本发明的一个实施例,基于模块的机器人系统900时在图1示出的模块系统的应用程序,基本构成与图1的实施例相同,所以,以下只对基于模块的机器人系统900的特定事项进行说明。

根据本发明的一个实施例,在包括可相互通信的多个模块910、920、930、940、950的基于模块的机器人系统900中,基于模块的机器人系统900可更新对各个模块910、920、930、940、950。

所述基于模块的机器人系统900,可包括主模块910,与所述主模块910可进行数据通信网络连接的一个以上的子模块920、930、940、950。在本实施例,主模块910、电源模块920、按钮模块930、子通信模块940及马达模块950依次可通信的连接,构成模块系统900。所述各个模块910、920、930、940、950是规格化的直六面体壳911形象,包括本体壳911b和覆盖此的盖壳911a。在所述本体壳911b内搭载用于执行各个模块910、920、930、940、950特定功能的微控制器990。在各个所述模块910、920、930、940、950的四个侧面,可配置用于结合相邻模块的结合器具980、与相邻的模块电性连接,用于数据通信的总线销970,和用于供给电源的电源供给销970。主模块910、电源模块920、按钮模块930及子通信模块940可由所述结合器具980,由相邻的状态被结合,在这种情况下,形成在各模块的总线销970和电源供给销970,可分别接触形成在结合其他模块的总线销970和电源供给销970。因此,相互结合的模块之间可供给电源,形成网络可接发数据。一方面,在本实施例中,所述马达模块950不是由所述子通信模块940和结合器具980的结合,而是,也可由另外的连接器940被连接。所述连接器940可包括电源供给线和用于接发数据的数据线。

所述结合器具980的配置用于连接相邻两个模块。在本实施例,作为所述结合器具980可配置在本体壳911b侧面的结合销982和由磁力拉住所述结合销982的磁铁981。由所述结合销982和所述磁铁981,配置在相邻位置的两个模块,可由相互磁力被拉住结合。在本实施例,作为所述结合器具980举例说明了结合销982和磁铁981,但不限定于此,也可使用其他方式的结合器具。例如,在所述本体壳911b配置凸出单元和收容所述凸出单元的湾入单元,使两个相邻模块的所述凸出单元和所述湾入单元相结合的方式,也可结合两个模块。

所述主模块910可与外部设备100,笔记本电脑、台式电脑或如工作站的计算机,或移动电话、个人数字助理pda、智慧型、如电子书的移动设备可通信的被连接。在本实施例,所述主模块910可与所述计算机或与所述移动设备可进行wifi通信的连接,与用户的计算机或与移动外部设备100接发相互数据,或可接收对所述子模块920、930、940、950的更新数据。当然,所述主模块910可与所述计算机或所述移动设备,由usb、irda、wifi、uwb、蓝牙、zigbee、cdma、wcdma、lte、lte-a中任何一个方式,可通信的连接150。

所述子模块920、930、940、950可与所述主模块910接发数据,可由网络总线970连接,在本实施例,所述网络总线970可以是只接收通过网络总线970发送的数据的目的地地址一致的模块数据的广播方式。

所述网络总线970可由串口、lan、can、usb、irda、wifi、蓝牙、zigbee、cdma、wcdma、lte、lte-a等,多种有无线通信方式被构成,也可进行异种通信。

在本实施例,所述网络总线970可以是控制器局域网(can;controllerareanetwork)总线。利用can通信时,便于模块间即插即用的体现,便于广播网络的体现,可具有高信赖度,提高系统控制速度和稳定性。

所述主模块910通过所述网络总线970,在所述子模块920、930、940、950中,可将对更新必要的数据发送到子模块的微处理器990的更新必要的对象子模块。

如上述,根据本发明的一个实施例的基于模块的机器人系统,对多个由网络连接的模块各自的更新,不个别的执行可整体的执行,可方便且有效率的更新构成基于模块的机器人系统的个别模块。

此外,将构成模块系统的多种模块,由多种方式结合并连接,可构成多种目的的机器人系统。例如,结合电源模块和摄像机模块主模块,可构建监视用机器人系统,利用电源模块、主模块和马达模块及摄像机模块,也可构建移动式机器人系统。此外,由相同的模块构成的基于模块的机器人系统,用于其他用途时,不必要个别开发且个别更新对构成机器人系统的各个模块的数据,可执行对整体系统一次性的整体进行更新。

多模块编译系统

图11是示出根据本发明的一个实施例的多模块编译系统的大概构成的框图。

参照图11,根据本发明的一个实施例的多模块编译系统1120为了生成包括在含有多个模块的模块系统1140的各个模块1141、1142、1143、1144、1145、1146、1147化执行代码被配置。在本实施例中,所述多个模块1141、1142、1143、1144、1145、1146、1147可由网络相互连接。

所述多模块编译系统1120可搭载在笔记本电脑、台式电脑,或如工作站的计算机,或如移动电话、pda、智慧型、电子书的移动设备内。

在相互可通信的包括多个模块1141、1142、1143、1144、1145、1146、1147的模块系统1140中,所述模块系统1140可更新各个模块1141、1142、1143、1144、1145、1146、1147。所述模块系统1140与在图1示出的模块系统200具有相同的构成。

所述模块系统1140可包括主模块1141,和可使与所述主模块1141数据通信,由网络连接的一个以上的子模块1142、1143、1144、1145、1146、1147。

所述主模块1141可与笔记本电脑、台式电脑或如工作站的计算机,或移动电话、pda、智慧型、如电子书的移动设备可通信的被连接。更具体地,所述主模块1141可与所述计算机或所述移动设备的模块通信端1130可通信的被连接。由此,所述主模块1141与用户的计算机或移动设备的外部设备相互接发数据,或可接收对所述子模块1142、1143、1144、1145、1146、1147的更新数据。所述主模块1141可与所述计算机或所述移动设备,由usb、irda、wifi、uwb、蓝牙、zigbee、cdma、wcdma、lte、lte-a中任何一个方式通信1132。即,所述主模块1141也可由usb,有线连接在模块通信端1130,也可通过wifi直接由无线连接,也可通过接入点(ap)由无线连接。

所述子模块1142、1143、1144、1145、1146、1147可与所述主模块1141进行数据通信的由网络连接,且作为各更新的中央处理装置(cpu)可内装微控制器(mcu;microcontrollerunit)。所述微处理器作为内部存储器,可包括如闪存、存储固件的用户代码领域,和用于启动微处理器的引导模式(bootloader)领域。在本实施例,所述子模块1142、1143、1144、1145、1146、1147各个可以是子通信模块1142、电源模块1143、马达模块1144、按钮模块1145、传感器模块1146、显示模块1147、射线机模块中任何一个。

所述子模块1142、1143、1144、1145、1146、1147可使与所述主模块1141相互接发数据,可由网络总线1148连接。在本实施例,所述网络总线1148可以是通过所述网络总线1148发送的,只与数据的目的地地址一致的模块接收数据的广播方式。所述网络总线1148可由串口、lan、can、usb、irda、wifi、蓝牙、zigbee、cdma、wcdma、lte、lte-a等,多种有无线通信方式被构成,也可进行异种通信。

在本实施例,所述网络总线1148可以是控制器局域网(can;controllerareanetwork)总线。利用can通信时,便于模块间即插即用的体现,便于广播网络的体现,可具有高信赖度,提高系统控制速度和稳定性。

所述主模块1141通过所述网络总线1148,在所述子模块1142、1143、1144、1145、1146、1147中,给需要所述子模块的微处理器更新的对象子模块,可发送更新所需的更新数据。

所述电源模块1143为了供给所述模块系统1140整个电源被配置,由电性连接在所述主模块1141和其他子模块1142、1144、1145、1146、1147,可供给各模块运行必要的电源。各个模块1141、1142、1143、1144、1145、1146、1147具备块形象的机壳,使相邻的模块之间相互直接由物理性连接,也可利用另外的连接器连接。此外,所述电源模块1143可与所述主模块1141另外的配置,也可一体的形成在一个机壳内配置。

所述多模块编译系统1120可包括模块识别单元1122、事件分析单元1123、模块代码生成单元1124、编译器单元1126。所述模块识别单元1122可识别用于驱动模块系统1140的,执行整个程序代码的对象模块。所述程序代码可由至少一部分为如c++、c#、java的面向对象的计算机言语(objectorientedprogramlanguage)被编制。例如,所述整个程序代码是与模块系统1140的按钮模块1145和马达模块1144驱动有关的程序代码时,所述模块识别单元1122分析所述整个程序代码,可掌握所述按钮模块1145和所述马达模块1144为程序的对象模块。

所述事件分析单元1123分析所述模块系统1140的整个程序代码,可分析发生在所述对象模块1145、1144的多种事件。

所述事件可包括传送到模块间的构成模块系统1140的通信数据包、一个模块传送给其他模块的操作指令或消息及一般数据的接发。此外,所述事件与其他模块无关,在自身模块的操作中,可包括由特定条件变更等的操作变更。示例性的,所述整个程序是对根据所述按钮模块1145的开闭的所述马达模块1144的操作时,所述事件分析单元1123可掌握在所述整个程序代码内,所述按钮模块1145和所述马达模块1144间存在事件。

所述模块代码生成单元1124分析在所述模块识别单元1122掌握的所述对象模块和在所述事件分析单元1123掌握的所述对象模块间事件的关联性,可将所述整个程序代码分割成所述对象模块化模块代码并生成。例如,所述模块系统1140由主模块1141、马达模块1144、电源模块1143及显示模块1147的四个模块构成时,用户可开发这四个模块相互关联运行的模块系统的整个程序代码。并且,所述模块代码生成单元1124分析用户开发的整个程序代码,分割成各个模块,即对主模块1141执行动作的第一模块代码、对马达模块1144执行动作的第二模块代码、对电源模块1143执行动作的第三模块代码,及对显示模块1147动作的第四模块代码,可生成模块代码。在本实施例,举例说明了所述事件分析单元1123和所述模块代码生成单元1124另外被配置,但是,所述模块代码生成单元1124也可包括所述事件分析单元1123。在这种情况下,所述模块代码生成单元1124基于发生在所述对象模块1145、1144的事件和与所述对象模块1145、1144的关联性,可将所述整个程序代码分割成所述对象模块化模块代码并生成。

所述编译器单元1126将从所述模块代码生成单元1124生成的所述对象模块化模块代码进行编译,可生成所述对象模块化执行代码1127。所述编译器单元1126编译如c++、c#、java的高级语言,可生成适合于所述对象模块的微控制器的二进制代码的机器语言代码1127。生成的所述机器语言代码1127作为通信单元,通过模块通信单元1130,可发送到所述模块系统1140的主模块1141。

一方面,所述多模块编译系统1120可包括从所述模块代码生成单元1124生成的,存储对象模块化模块代码或所述程序代码的代码数据库单元1125。由此,用户编程开发现已被生成的模块化模块代码时,可再活用或参照。

一方面,所述多模块编译系统1120可提供用户编制所述程序代码时,可利用的应用程序编码界面(api;applicationprogramminginterface)。

一方面,所述多模块编译系统1120可包括生成所述模块系统1140的整个程序代码,可使用户编辑的提供用户界面的用户界面单元1200。所述用户界面单元1200可包括通过连接在计算机键盘或鼠标,收到用户的输入,显示相应内容的显示器。所述用户界面单元1200可相互转换文字用户界面(cui;characteruserinterface)和图形用户界面(gui;graphicuserinterface)。因此,用户可直接通过键盘编制程序代码,选择图形图像可编址已生成的标准代码,也可将程序对象模块的个体图像连接到显示器上或修改或编辑,生成新的程序代码。

此外,所述模块系统1140和所述模块通信端1130可通信的被连接时,所述多模块编译系统1120还可包括自动识别构成所述模块系统1140的模块种类和个数的模块识别单元(未示出)。

图12a及图12b是示出根据本发明的一个实施例的多模块编译系统的图形用户界面单元。

参照图11及图12a及图12b,根据本发明的一个实施例的图形用户界面单元1200,利用计算机图形可将构成模块系统的模块1250、1260、1270显示在显示装置。此外,鼠标或键盘,或收到用户手指触摸的输入,连接或在组合模块,可使生成模块系统1140的整个程序代码。

所述图形用户界面单元1200选择并编辑构成模块系统的模块,可包括能将设置各模块功能的主窗口1202和构成模块系统的多种类模块,显示为图标形态的模块选择窗口1210,和显示生成、存储及编辑程序代码文件的多种选单的选单窗口1204。此外,在所述主窗口1202内可显示选择或删除,或还原之前编辑内容的编辑图标1206。例如,用户附加新模块进行编程时,用户可在模块选择窗口1210选择新模块,在这种情况下,程序代码上可被宣告对相应模块的类别变数。此外,选择在主窗口1202内的模块时,各个模块可显示可执行的行动列表。在这种情况下,被显示的模块化行动列表以提供标准列表为基础,用户附加模块化动作项目更新列表,或没有提供在列表,也可转换为cui环境,用户直接编程。

在本实施例,在真实世界1201相互连接按钮模块1260和马达模块1270,使在主窗口1202内作为对所述按钮模块1260行动列表,对点击按钮的行动也可由列表显示。用户选择点击所述按钮时,在所述程序代码的所述按钮类别内,可生成用于设置对点击所述按钮模块1260按钮时,发生事件内容的按钮点击事件处理程序。并且,在所述按钮点击事件处理程序内,执行点击所述按钮时,对模块系统动作的内容可被编程。例如,用户点击所述按钮模块1260的按钮时,将所述马达模块1270的马达从0度旋转到180度进行编程时,用户可在所述按钮类别内生成的按钮点击事件处理程序部分,编制给马达模块1270传送目标旋转角度值的程序。一方面,在所述马达模块1270的立场上,在有关所述马达模块1270的类别内马达事件处理程序内,发生所述马达模块1270从所述按钮模块1260接收对目标旋转角度信息的事件时,可编制将所述马达模块1270旋转180度的编程。

一方面,所述模块系统1140通过所述模块通信端1130,连接在所述用户界面单元1200时,所述模块识别单元(未示出)可自动掌握构成所述模块系统1140的模块种类和个数。在这种情况下,如图12a,在真实世界1201构成模块系统的模块由主模块1250、按钮模块1260及马达模块1270构成,且这些模块1250、1260、1270还没有连接网络时,所述模块识别单元可能识别与模块通信端1130可通信连接的主模块1250。因此,在所述主窗口1202只可显示所述主模块1250。一方面,如图12b,在真实世界1201构成模块系统的模块系统由主模块1250、按钮模块1260及马达模块1270构成,这些模块1250、1260、1270由网络连接器1252、1262连接时,所述模块识别单元可识别与模块通信端1130可通信连接的主模块1250,附加地,也可一同识别与所述主模块1250网络连接的所述按钮模块1260及所述马达模块1270。此外,也可识别构成所述模块系统的所述模块1250、1260、1270的连接结构。因此,在所述主窗口1202上,可全部显示所述主模块1250、所述按钮模块1260及所述马达模块1270,也可显示示出这些模块1250、1260、1270连接结构的虚拟网络连接线1252a、1262a。一方面,在程序代码上对识别的所述模块1250、1260、1270的类别变数,如即插即用方式自动的被宣告。

一方面,所述模块系统1140可通信的连接在所述模块通信端1130时,所述模块识别单元在构成所述模块系统的模块1250、1260、1270,接收分别存储的执行代码,可发送到所述用户界面单元1200。由此,用户可检讨并修正存储在当前模块系统各个模块1250、1260、1270的执行代码。

多模块编译方法

以下,根据本发明的一个实施例,对多模块编译方法进行说明。

图13是示出根据本发明的一个实施例的多模块编译方法的执行步骤的顺序图,图14是在图13中的代码生成器(模块代码生成单元)的执行步骤的顺序图。

参照图11及图13,根据本发明的一个实施例,对多模块编译方法的执行步骤进行说明。首先,在步骤1310中,用户在如计算机或移动设备的外部设备,生成用于驱动模块系统整体的程序代码。所述模块系统1140包括由网络连接的多个模块。在这种情况下,用户叫回现已编制预存在代码数据库单元1125的程序代码再使用,或编辑此可编制新的程序代码。其次,在步骤1330中,代码发生器1320分析对整个模块系统1140的程序代码,并再进行组合,生成构成所述模块系统1140的各模块化程序代码。其次,在步骤1340中,将生成的模块化程序代码传送到所述模块系统1140,所述模块系统1140将新的模块化程序代码更新在各个模块。

参照图11及图14,对在图13示出的代码发生器的执行步骤进行详细地说明。首先,在步骤1410中,代码发生器(模块代码生成单元1320)分析由用户编制的所述模块系统1140整个的程序代码,识别执行所述程序代码的对象模块。其次,在步骤1420中,所述代码发生器分析所述模块系统整个程序代码,分析发生在所述对象模块的事件种类和个数。在这种情况下,在步骤1430中,所述代码发生器可基于接发在所述对象模块的种类和所述对象模块间的消息,分析事件。

其次,在步骤1440中,所述代码发生器分析与各个所述对象模块和所述事件的关联性,分割所述程序代码并再组合,生成所述对象模块化代码。之后,在步骤1450中,所述代码发生器编译所述对象模块化代码,生成可在所述对象模块运行的,二进制形式的机器语言代码的模块化执行代码。

一方面,根据本发明的一个实施例,所述模块系统和所述计算机或所述移动设备可通信的连接时,多模块编译方法还可包括自动识别构成所述模块系统的模块种类和个数的模块识别步骤,且还可包括将在所述模块识别步骤识别的模块种类和个数,显示在所述计算机或所述移动设备的模块显示步骤。

图15是在图14中代码生成器(模块代码生成单元)的事件分析步骤的顺序图。

参照图11及图15,对在图14示出的代码发生器的事件分析步骤进行详细地说明。在本实施例为了理解的方便,举例说明作为总模块的个数为三个,由第一模块的主模块、第二模块的马达模块、第三模块的按钮模块构成的模块系统。用户点击所述按钮模块的按钮时,作为第一事件在gui或cui环境内,可编程所述马达模块的马达旋转180度的程序。在这种情况下,在步骤1510中,所述代码发生器分析所述模块系统的整个程序代码,数在整个程序代码内使用的模块个数n和种类,在步骤1520中,数事件个数k。为了说明的方便,在本实施例,举例说明作为在模块发生的事件,存在一个第一事件。

其次,在步骤1530中,所述代码发生器依次地从第一模块到第n模块,此外各个模块从第一事件到第k事件,确认第n模块和第k事件的关联性。在本实施例,首先检查所述第一事件和所述第一模块的主模块的关联性。确认所述第一事件和所述主模块没有关联性,检查所述第二模块的按钮模块和所述第一事件的关联性。如果,所述代码发生器确认所述第二模块的按钮模块和所述第一事件具有关联性,在步骤1540,所述代码发生器在所述整个程序代码内,分析所述第一事件和所述按钮模块的关联代码块,在相应于所述按钮模块的程序模块部分,生成有关的程序代码。

其次,在步骤1542中,所述代码发生器过到下一个事件,在步骤1530,检查所述第二模块的所述按钮模块和下一个事件是否有关联。如果,在步骤1550,确认没有附加的关联事件,在步骤1552,所述代码发生器过到下一个模块,即第三模块,在步骤1530,检查第三模块的所述马达模块与所述第一事件是否具有关联性。所述代码发生器确认所述马达模块和所述第一事件具有关联性之后,在步骤1540,在所述整个程序代码内分析所述第一事件和所述马达模块的关联代码块,在相应于所述马达模块的程序模块部分,生成有关程序代码。

与上述相同的方式,在步骤1570中,所述代码发生器对具有k个事件模块的整个程序代码,分析与各个事件和各个模块的关联性,最终可生成n个模块化程序代码。在本实施例,所述第一模块的主模块与所述第一事件乜有关联性,所以,与已经存储在第一模块的固件程序进行比较时,没有变更的部分。因此,在模块化更新过程中,所述第一模块不需要更新固件程序。相反地,所述第二模块和所述第三模块与所述第一事件具有关联性,所以,与已经存储在模块的固件程序进行比较时,存在变更的部分。因此,在模块化更新过程中,所述第二模块和所述第三模块可更新固件程序。

多模块程序示例

图16a是示出根据本发明的一个实施例,在多模块编译系统被编码的程序代码的对模块类的代码列表,且图16b是示出其他模块被附加识别的,对模块的类别的代码列表,并且图16c是示出在识别的模块间接发的,对事件处理的代码列表。图17a及图17b是示出根据本发明的一个实施例,通过多模块编译系统生成的模块化代码列表。

首先,参照图12a及图16a,主模块1250与按钮模块1260和马达模块1270不是相互连接的状态,所以,在集成开发环境系统(ide)对模块系统的程序代码1600上,只可显示与所述集成开发环境系统进行通信的,对主模块1250的类别1602。

如图12b,如果,主模块1250、按钮模块1260及马达模块1270连接时,如图16b,在集成开发环境系统(ide)对模块系统的程序代码1620上,附加与所述集成开发环境系统通信的主模块1250,生成对所述按钮模块1260的类别和对所述马达模块1270的类别,在所述主模块1250的类别1602内可生成对所述按钮模块1260动作的程序代码1622、对所述马达模块1270的程序代码1624,及点击所述按钮模块1260按钮时发生的,对事件的程序代码1626。即,可生成对可通信的连接在所述主模块1250的子模块1260、1270,定义可能动作的程序代码。示例性的,如在图16c示出,点击所述按钮模块1260的按钮时,在程序代码1640上可生成所述马达模块1270的马达从0度旋转至180度内容的程序代码1642。

在本实施例,相互连接所述按钮模块1650和所述马达模块1270,在所述主窗口1202内作为对所述按钮模块1260的行动列表,可将对点击按钮的行动显示为列表。用户选择所述按钮点击时,在所述按钮类别内可生成点击所述按钮模块1260按钮时,将发生的用于设置对事件内容的按钮点击事件处理程序。并且,在所述按钮点击事件处理程序内,可编程点击所述按钮时将执行的模块系统运行的内容。例如,用户点击所述按钮模块1260的按钮时,所述马达模块1270的马达从0度旋转至180度编程时,用户在所述按钮类别内生成的按钮点击事件处理程序部分,可编制将目标旋转角度值传送给所述马达模块1270的内容程序。一方面,在所述马达模块1270的立场上,有关所述马达模块1270的类别内马达事件处理程序中,发生所述马达模块1270从所述按钮模块1260接收对目标旋转角度信息的事件时,可编制将马达旋转180度的编程。

其次,完成对所述模块系统整个的程序代码时,所述代码发生器分析所述模块系统整个程序代码,分析所述模块和对所述对象模块事件的关联性,分割所述整个程序代码,进行再组合,可生成如图17a示出的对所述模块1260的程序代码1720,和如图17b示出的所述马达模块1270的程序代码1760。

参照图17a,对所述按钮模块1260的程序代码1720,可包括基本生成的模块化模板代码1722,和由所属代码发生器附加生成的附加代码1724。所述附加代码1724可包括发生第一事件时,对传达消息的丁一部分1726,和发生所述第一事件时,传达的消息部分1728。参照图17b,对所述马达模块1270的程序代码1760,可包括基本生成的模块化模板代码1762,和由所述代码发生器附加生成的附加代码1764。所述附加代码1764可包括对马达初期位置的部分1765、自身的id接收设置部分1766、接收与所述第一事件有关消息的条件部分1768,和这时执行所述马达模块的动作部分1769。

根据本发明的一个实施例的多模块编译系统及多模块编译方法,可从模块系统整个程序代码,快速有效地生成各模块执行代码。由此,由多数模块构成的模块系统中,从整个程序代码生成模块化代码并编译,可简便有效的更新各模块的固件。

因此,将由相同模块构成的模块系统用于其他用途时,不必个别的重新开发对构成所述模块系统的各个模块的固件,修改对整个模块系统的程序,通过多模块编译生成模块化执行代码,可整体性的一次执行更新。

此外,将构成模块系统的模块,可再使用为多种用途。

本发明上述的说明是为了示例,本发明领域的技术人员可以理解为,不变更本发明的技术思想或必要特征,可容易变更成其他具体形态。所以,要理解为,以上记载的实施例在所有方面是示例性的,且不是限定性的。

本发明的范围比起所述详细的说明,由后述的权利要求范围显示,理解为权利要求范围的意义及范围,且从其均等概念导出的所有变更或变更的形态包括在本发明的范围。

符号说明

100:外部设备100,1200:用户界面单元

120:模块代码生成器130:编译器

140,1130:模块通信端200,400,900,1140:模块系统

202:网络总线210,910,1141:主模块

230,440,920,1143:电源模块(电池模块)

240,950,1144:马达模块250,930,1145:按钮模块

260,1146:传感器模块270,1147:显示模块

300:数据帧310:介入领域

320:控制领域330:数据领域

420:第二模块系统422:网络总线

430,940:子通信模块450:摄像机模块

970:总线及电源销980:结合器具

981:磁铁982:结合销

990:微控制器(mcu)1120:多模块编译系统

1122:模块识别单元1123:事件分析单元

1124:模块代码生成单元1125:代码数据库单元

1126:编译器单元1142:子通信模块

1148:网络总线1202:主窗口

1204:选单窗口1210:模块选择窗口

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1