集成开发环境终端、平台服务器和介质的制作方法

文档序号:25542906发布日期:2021-06-18 20:39阅读:37来源:国知局
集成开发环境终端、平台服务器和介质的制作方法

本发明涉及集成开发环境领域,具体而言,涉及一种集成开发环境终端、平台服务器和介质。



背景技术:

集成开发环境(ide)是用于提供程序开发环境的应用程序,集成了代码编写功能、分析功能、编译功能、调试功能等一体化的开发软件服务套。ide被用于各种类型的应用开发,它提供了一种图形界面的开发环境。

运行ide的系统,一般包括ide终端和平台服务器。ide终端是用户进行开发所在的终端。平台服务器是为用户开发提供进行开发所需要的软件集合的服务器。ide终端的用户得到了平台服务器返回的进行开发所需要的软件集合后,就可以利用这个软件集合在ide终端上进行开发。用户进行开发所需要的这个软件集合就叫做工程包。工程包具有进行开发所需要的多类组件,如应用组件、开发容器组件、芯片级组件、内核组件、中间件组件等。ide终端接收到这些组件后,就可以编译并运行这些组件,从而达到利用这些组件在ide上开发的目的。

当前ide终端上,一旦这些组件后续的编译运行等过程中发生错误,通常网上搜索诊断方案。如果找不到诊断方案,则通过邮件联系平台服务器管理员的技术邮箱,等待答复。但是,很多时候,管理员并非是一线开发人员,不熟悉这些问题,需要进一步转发邮件,转由开发人员解决,从而造成回复不及时,解决问题效率低。另外,工程包是多方共同参与的结果,例如,芯片开发者、开发容器开发者等,很多开发者可能不在同一个公司,很难精确定位到开发人员。



技术实现要素:

有鉴于此,本发明旨在在ide环境中获取的组件发生错误后,提高获取诊断方案的效率。

为了达到这个目的,根据本发明的第一方面,本发明实施例提供一种集成开发环境ide终端,所述ide终端接收用户要开发的应用的信息,根据所述应用的信息向平台服务器查询开发所述应用所需的工程包,所述工程包包括支持所述应用的开发的各组件,所述ide终端包括:

编译器,对从平台服务器接收到的工程包进行编译,其中,如果编译时发生错误,输出第一错误标识;

错误组件探测器,探测所述工程包中所述第一错误标识所在的错误组件;

收发器,将所述第一错误标识和错误组件通知所述平台服务器,并接收所述平台服务器返回的所述错误组件的与所述第一错误标识对应的诊断方案。

可选地,所述各组件选自所述应用对应的应用组件、芯片级组件、板级组件、内核组件、中间件组件中的至少一个;所述错误组件也选自所述芯片级组件、板级组件、内核组件、中间件组件中的至少一个。

可选地,所述ide终端还包括:交互界面模块,向用户显示接收的与所述第一错误标识对应的诊断方案,并将用户的第一反馈发送给所述收发器,所述第一反馈指示所述诊断方案未能解决所述第一错误标识指示的错误;所述收发器将所述第一反馈通知所述平台服务器,接收所述平台服务器返回的所述错误组件的开发者终端信息,并通知所述交互界面模块按照所述开发者终端信息与所述开发者终端建立通信。

可选地,如果与所述错误组件的开发者终端建立通信后仍未能解决所述第一错误标识指示的错误,所述交互界面模块将用户的第二反馈发送给所述收发器,所述第二反馈指示与所述错误组件的开发人员建立通信后仍未能解决所述第一错误标识指示的错误;所述收发器将所述第二反馈通知所述平台服务器,接收所述平台服务器返回的该应用的所述工程包中全部组件的开发者终端信息,并通知所述交互界面模块按照所述工程包中全部组件的开发者终端信息与所述全部组件的开发者终端建立群通信。

可选地,如果与所述错误组件的开发者终端、或所述全部组件的开发者终端建立通信后解决所述第一错误标识指示的错误,所述交互界面模块从通信记录中获取与所述第一错误标识对应的诊断方案,通过所述收发器通知所述平台服务器更新所述平台服务器中存储的与所述第一错误标识对应的诊断方案。

可选地,如果与所述错误组件的开发者终端、或所述全部组件的开发者终端建立通信后解决所述第一错误标识指示的错误,所述交互界面模块从通信记录中获取与所述第一错误标识对应的诊断方案,通过所述收发器通知所述平台服务器在记录表中记录,一旦记录表中记录的与所述第一错误标识对应的诊断方案达到预定次数,更新所述平台服务器中存储的与所述第一错误标识对应的诊断方案。

可选地,所述ide终端还包括:

下载运行机,对所述编译器编译后的工程包中的各组件进行下载运行,从而完成所述应用的自动化开发,其中,如果下载运行时发生错误,输出第二错误标识;

收发器,将所述第二错误标识通知所述平台服务器,以便所述平台服务器查找所述应用的工程包中所述第二错误标识所在的错误组件,并返回所述错误组件的与所述第二错误标识对应的诊断方案。

可选地,所述交互界面模块还向用户显示接收的与所述第二错误标识对应的诊断方案,并将用户的第一反馈发送给所述收发器,所述第一反馈指示所述诊断方案未能解决所述第二错误标识指示的错误;所述收发器将所述第一反馈通知所述平台服务器,接收所述平台服务器返回的所述错误组件的开发者终端信息,并通知所述交互界面模块按照所述开发者终端信息与所述开发者终端建立通信。

可选地,如果与所述错误组件的开发者终端建立通信后仍未能解决所述第二错误标识指示的错误,所述交互界面模块将用户的第二反馈发送给所述收发器,所述第二反馈指示与所述错误组件的开发者终端建立通信后仍未能解决所述第二错误标识指示的错误;所述收发器将所述第二反馈通知所述平台服务器,接收所述平台服务器返回的该应用的所述工程包中全部组件的开发者终端信息,并通知所述交互界面模块按照所述工程包中全部组件的开发者终端信息与所述全部组件的开发者终端建立群通信。

可选地,如果与所述错误组件的开发者终端、或所述全部组件的开发者终端建立通信后解决所述第二错误标识指示的错误,所述交互界面模块从通信记录中获取与所述第二错误标识对应的诊断方案,通过所述收发器通知所述平台服务器更新所述平台服务器中存储的与所述第二错误标识对应的诊断方案。

可选地,如果与所述错误组件的开发者终端、或所述全部组件的开发者终端建立通信后解决所述第二错误标识指示的错误,所述交互界面模块从通信记录中获取与所述第二错误标识对应的诊断方案,通过所述收发器通知所述平台服务器在记录表中记录,一旦记录表中记录的与所述第二错误标识对应的诊断方案达到预定次数,更新所述平台服务器中存储的与所述第二错误标识对应的诊断方案。

根据本发明的第二方面,提供了一种平台服务器,所述平台服务器根据ide终端要开发的应用,向所述ide终端返回开发所述应用所需的工程包,所述工程包包括支持所述应用的开发的各组件,所述平台服务器包括:

各组件信息模块,分别存储各组件的错误标识与诊断方案映射关系;

控制模块,响应于接收到ide终端通知的第一错误标识和错误组件,从该错误组件的组件信息模块中,获取与该第一错误标识对应的诊断方案,返回给所述ide终端。

可选地,所述各组件选自所述应用对应的应用组件、芯片级组件、板级组件、内核组件、中间件组件中的至少一个;所述错误组件也选自所述芯片级组件、板级组件、内核组件、中间件组件中的至少一个。

可选地,所述控制模块还接收来自所述ide终端的第一反馈,所述第一反馈指示所述诊断方案未能解决所述第一错误标识指示的错误;所述控制模块从所述错误组件的组件信息模块,获取所述错误组件的开发者终端信息,返回所述ide终端,用于所述ide终端与所述错误组件的开发者终端建立通信。

可选地,所述控制模块还接收所述ide终端的第二反馈,所述第二反馈指示与所述错误组件的开发者终端建立通信后仍未能解决所述第一错误标识指示的错误;所述控制模块从所述应用的所述工程包中的全部组件的组件信息模块,获取所述全部组件的开发者终端信息,返回所述ide终端,用于所述ide终端与所述全部组件的开发者终端建立群通信。

可选地,如果与所述错误组件的开发者终端、或所述全部组件的开发者终端建立通信后解决所述第一错误标识指示的错误,所述控制模块接收所述ide终端从通信记录中获取的、与所述第一错误标识对应的诊断方案,存储在相应组件信息模块中。

可选地,所述平台服务器还包括记录表。如果与所述错误组件的开发者终端、或所述全部组件的开发者终端建立通信后解决所述第一错误标识指示的错误,所述控制模块接收所述ide终端从通信记录中获取的、与所述第一错误标识对应的诊断方案,存储在所述记录表中,以便所述记录表中记录的与所述第一错误标识对应的诊断方案达到预定次数,更新相应组件信息模块中存储的与所述第一错误标识对应的诊断方案。

可选地,所述平台服务器还包括错误标识、应用与错误组件映射关系表。所述控制模块响应于接收到ide终端通知的第二错误标识,根据所述第二错误标识和发生第二错误标识的应用,查找所述错误标识、应用与错误组件映射关系表,获得错误组件,并从所述错误组件的组件信息模块获得与所述第二错误标识对应的诊断方案向所述ide终端返回。

可选地,所述控制模块还接收来自所述ide终端的第一反馈,所述第一反馈指示所述诊断方案未能解决所述第二错误标识指示的错误;所述控制模块从所述错误组件的组件信息模块,获取所述错误组件的开发者终端信息,返回所述ide终端,用于所述ide终端与所述错误组件的开发者终端建立通信。

可选地,所述控制模块还接收所述ide终端的第二反馈,所述第二反馈指示与所述错误组件的开发者终端建立通信后仍未能解决所述第二错误标识指示的错误;所述控制模块从所述应用的所述工程包中的全部组件的组件信息模块,获取所述全部组件的开发者终端信息,返回所述ide终端,用于所述ide终端与所述全部组件的开发者终端建立群通信。

可选地,如果与所述错误组件的开发者终端、或所述全部组件的开发者终端建立通信后解决所述第二错误标识指示的错误,所述控制模块接收所述ide终端从通信记录中获取的、与所述第二错误标识对应的诊断方案,存储在相应组件信息模块中。

可选地,所述平台服务器还包括记录表。如果与所述错误组件的开发者终端、或所述全部组件的开发者终端建立通信后解决所述第二错误标识指示的错误,所述控制模块接收所述ide终端从通信记录中获取的、与所述第二错误标识对应的诊断方案,存储在所述记录表中,以便所述记录表中记录的与所述第二错误标识对应的诊断方案达到预定次数,更新相应组件信息模块中存储的与所述第二错误标识对应的诊断方案。

根据本发明的第三方面,提供了一种报错处理方法,用于ide系统中的ide终端,所述ide系统包括所述ide终端和平台服务器,所述ide终端接收用户要开发的应用的信息,根据所述应用的信息向平台服务器查询开发所述应用所需的工程包,所述工程包包括支持所述应用的开发的各组件,所述方法包括:

对从平台服务器接收到的工程包进行编译,其中,如果编译时发生错误,输出第一错误标识;

探测所述工程包中所述第一错误标识所在的错误组件;

将所述第一错误标识和错误组件通知所述平台服务器;

接收所述平台服务器返回的所述错误组件的与所述第一错误标识对应的诊断方案。

根据本发明的第四方面,提供了一种报错处理方法,用于ide系统中的平台服务器,所述ide系统包括所述平台服务器和ide终端,所述ide终端接收用户要开发的应用的信息,根据所述应用的信息向平台服务器查询开发所述应用所需的工程包,所述工程包包括支持所述应用的开发的各组件,所述方法包括:

接收到ide终端通知的第一错误标识和错误组件;

从该错误组件的组件信息模块中,获取与该第一错误标识对应的诊断方案;

将获取的诊断方案返回给所述ide终端。

根据本发明的第五方面,提供了一种计算机可读介质,所述计算机可读介质存储有可由终端设备执行的计算机指令,所述计算机指令被执行时,实现如上所述的方法。

本发明实施例,ide终端在接到平台服务器返回的开发待开发应用所需的工程包后,如果在编译过程中发生错误,探测工程包中该错误所在的错误组件,将该错误、和探测出的错误组件通知平台服务器,平台服务器返回所述错误组件的、针对该错误的诊断方案,整个过程是自动的。在ide中自动探测错误所在的错误组件,在平台服务器侧设置有各错误组件的与不同错误对应的诊断方案,通过上述过程,实现了自动化获取诊断方案,提高了获取诊断方案的效率。

附图说明

通过参考以下附图对本发明实施例的描述,本发明的上述以及其它目的、特征和优点将更为清楚,在附图中:

图1示出了进行应用的程序编写通常所需的硬件设备;

图2示出了ide工程包中包含的模块;

图3示出了本发明实施例所应用于的ide系统的体系构架;

图4示出了已有的ide系统中ide终端和平台服务器的内部结构图;

图5示出了根据本发明一个实施例的ide终端的内部结构图;

图6示出了根据本发明一个实施例的平台服务器的内部结构图;

图7示出了根据本发明一个实施例的ide系统的整体结构图;

图8示出了根据本发明一个实施例在编译从平台服务器接收到的工程包时发生错误时的处理交互流程图;

图9示出了根据本发明一个实施例在下载运行编译后的工程包时发生错误时的处理交互流程图。

具体实施方式

以下基于实施例对本发明进行描述,但是本发明并不仅仅限于这些实施例。在下文对本发明的细节描述中,详尽描述了一些特定的细节部分。对本领域技术人员来说没有这些细节部分的描述也可以完全理解本发明。为了避免混淆本发明的实质,公知的方法、过程、流程没有详细叙述。另外附图不一定是按比例绘制的。

在本文中涉及的技术术语。

集成开发环境:即ide,是用于提供程序开发环境的应用程序,集成了代码编写功能、分析功能、编译功能、调试功能等一体化的开发软件服务套。由于它集成各种有利于快速开发的辅助工具,可以快速在其中进行程序开发。

ide终端:运行集成开发环境以便用户在其上快速完成开发的终端。由于ide集成了代码编写功能、分析功能、编译功能、调试功能等一体化的开发软件服务套,利用其可以快速完成各种程序开发。

平台服务器:与ide终端通信,响应于ide终端的请求,能根据用户的需求,丰富完善在ide终端上提供给用户的开发环境(例如提供用户开发应用所需的各种辅助代码支持)的服务器。

工程包:为用户开发提供的、用户开发所需要的软件集合。ide终端的用户得到了这个软件集合后,就可以利用这个软件集合在ide终端上进行开发。工程包具有进行开发所需要的多类组件,如应用组件、开发容器组件、芯片级组件、内核组件、中间件组件等。

应用组件:其是支持应用的卸载和安装的代码集合。一个工程包中最多只能含有一个应用组件。没有它,应用开发出来,也不能正确安装和运行。

芯片级组件:芯片是应用的程序代码的载体。应用是编写在芯片中的代码。芯片级组件就是支持芯片的初始化操作等芯片基本操作的代码集合。没有它,代码编写后,由于安装其的芯片无法初始化等,仍然不能正确运行该代码。一个工程包中仅有一个芯片级组件。

板级组件:芯片是应用的程序代码的载体,但芯片也不是孤立存在的,也要装在一个板或片等上,这些板或片除了承载芯片外,还承载芯片的外围电路,如电源电路、时钟电路等。板级组件就是对该板或片等提供运行支持的代码集合,例如包括芯片初始化代码、外围电路驱动代码等。板或片可以与芯片脱离,一个板或片可能搭配不同的芯片,一个芯片也可能搭配不同的板或片。因此,开发容器组件和芯片级组件也是分开的。一个工程包中仅有一个开发容器组件。

内核组件:如果应用需要实时操作系统,内核组件是指支持实时操作系统的代码。实时操作系统是嵌入式ide中操作系统的统称,具有高实时性、可裁剪、体积小等优点。如果要开发的应用需要实时操作系统,则工程包中含有内核组件,如果不需要实时操作系统,则工程包中不含有内核组件。

中间件组件:中间件是指在一些应用中会复用的模块,将它们专门单独提取出来,称为中间件,在应用中可选择性将其加入。例如,很多应用都会用到按照消息传输协议封装消息向外发送的功能,可以将该功能单独提取出来,作为中间件,被更多的应用复用。将支持这种中间件的运行的软件代码,叫做中间件组件。工程包中根据具体情况可能含有中间件组件,也可能不含有中间件组件。

编译器:由于工程包是为用户开发提供的、用户开发所需要的软件集合,这些软件都是用户在ide终端上开发应用所需要的,但软件代码运行之前都要经过编译。编译器是工程包运行之前执行工程包的代码编译的单元。

错误标识:在代码编译、下载、运行等过程中出现的代码不能正确编译、下载、运行等,在系统上一般会以代码自动提示。一种代码代表出现了一种错误,该代码叫做错误标识。错误不同,其错误标识就不同。

错误组件探测器:当出现错误标识时,探测该错误标识指示的错误在工程包中的具体的组件的装置。由于工程包包括应用组件、芯片级组件、板级组件、内核组件、中间件组件中的至少一个,错误组件也必须出自应用组件、芯片级组件、板级组件、内核组件、中间件组件中的至少一个。错误组件探测器就是探测其中哪个组件出现错误的装置。

交互界面模块:向用户提供开发用的交互界面的模块。用户在该交互界面上可以输入、编辑程序代码,从而完成应用的开发。该交互界面上也可以显示可为用户提供的其开发应用时所需要的各种辅助功能,用户可以利用这些辅助功能开发。本发明实施例中,支持用户开发的工程包的内容也是在这一部分显示的。

诊断方案:是将当出现错误标识的时候,为了消除该错误标识采取的措施。它被获取后,通常显示于ide中的界面,由用户按照该措施执行,以消除该错误标识。

下载运行机:将所述编译器编译后的工程包下载到板或片以运行工程包,从而完成所述应用的自动化开发的单元。

本发明应用于嵌入式开发环境(ide)。ide应用于这样的场景,即应用的开发人员为编写一个应用程序忙于到各个地方,寻找各种支持其编程的辅助软件。应用的开发人员要编写一个应用程序,不仅需要配备编译器,还要找到很多其他辅助软件,例如语言编辑器、自动建立工具、除错器等等。因此,希望能在一个地方找到所有这些辅助软件,在这样的场景下,ide应运而生。即将编写一个应用程序除了编译器之外需要的所有其它辅助软件打包在一起,放在一个环境中,用户可以在该环境中方便地进行程序编写。这个环境称为ide。

现有的提供嵌入式集成开发环境的系统允许从平台服务器端获取指定的网络资源到系统中。指定的网络资源包括用于支持特定的硬件环境的软件代码。对于一般的应用开发来说,开发所处的硬件环境如图1所示。该硬件环境包括:

1)芯片管脚101,用于将片上系统103电连接到电路板上,并经由芯片管脚101进行信号传输;

2)其他外部硬件102,焊接在电路板上,作为可以使用的外部硬件;

3)片上系统(soc)103,包含内部的ip核、外围的ip核,通常还包括静态随机存取存储器、快闪存储器等存储设备;

4)电路板104,用于承载上述部件,并支持各个部件之间的信号传输,即如上所述的板或片。

对于应用开发来说,开发所需要的辅助软件如图2所示,包括应用组件203、板级组件202和芯片级组件201。应用组件203为与硬件部件耦合度低的、用于实现具体应用的示例代码。芯片级组件201包括对片上系统包含的ip核和存储设备进行初始化操作的代码,主要是针对图1中片上系统103的支持代码。板级组件202包括对电路板、芯片管脚进行初始化操作的代码,如果电路板上还焊接了其他额外的硬件设备,板级组件202还需要包含这些硬件设备的驱动程序。因此,板级组件202主要是针对图1的芯片管脚101、其他外部硬件102、电路板104的支持代码。在ide中,这些组件都可以集成在一个工程包20中发送给用户。

图3示出了本发明实施例所应用的体系构架。该体系构架包括平台服务器200、网络300、通过网络300与平台服务器200通信的多个ide终端100。不同的用户可以利用自己的不同的ide终端100,通过网络300向平台服务器200请求其开发应用所需要的工程包,从而便于该用户在其ide终端100上完成开发。

网络300可以是互联网,也可以是有线或无线网络。与此对应地,ide终端100通过网络300与平台服务器200的通信,可以是通过互联网与平台服务器200建立的互联网通信,也可以是利用有线或无线网络与平台服务器200建立的有线或无线通信。

ide终端100是运行集成开发环境以便用户在其上快速完成开发的终端。由于ide集成了代码编写功能、分析功能、编译功能、调试功能等一体化的开发软件服务套,利用其可以快速完成各种程序开发。

平台服务器200是与ide终端100通信,响应于ide终端的请求,能根据用户的需求,丰富完善在ide终端上提供给用户的开发环境(例如提供用户开发应用所需的各种辅助代码支持)的服务器。在本发明实施例中,其响应于ide终端100的请求,向用户进行应用开发所需要的各组件(软件代码)返回给ide终端100,便于用户在ide终端100上快速完成开发。

图4示出了ide终端100和平台服务器200的内部结构图。

如图4所示,ide终端100包括交互界面模块101、编译器102、下载运行机103、收发器105。

交互界面模块101是向用户提供开发用的交互界面的模块。用户在该交互界面上可以输入、编辑程序代码,也可以选择其上提供的各种辅助功能。用户也是在该交互界面的指定位置,输入要开发的应用的信息,例如应用的名称、标识等,从而平台服务器200能够为用户返回开发该应用需要的工程包,显示在交互界面上。

编译器102是工程包在ide终端100上运行时执行工程包的编译的单元。

下载运行机103将所述编译器编译后的工程包下载到开发容器以运行工程包,从而完成所述应用的自动化开发的单元。由于工程包是支持该应用的开发的各类软件代码,其编译后必须下载到相应的开发容器(板或片等)实际运行,同时用户编写的代码也在该开发容器(板或片等)安装的芯片上运行,确保了开发的应用的执行。

收发器105是ide终端100中向外界发送消息、和从外界接收消息的器件。它可以通过天线或收发电路等实现。

平台服务器200包括服务器接口230、控制模块202、组件数据单元240、应用组件信息模块211、开发容器组件信息模块212、芯片级组件信息模块213、内核组件信息模块214、中间件组件信息模块215。

服务器接口230是平台服务器200与外部通信的接口,主要完成平台服务器230向外部发送数据和从外部接收数据。

应用组件信息模块211、开发容器组件信息模块212、芯片级组件信息模块213、内核组件信息模块214、中间件组件信息模块215分别是存储着应用组件11、开发容器组件12、芯片级组件13、内核组件14、中间件组件15的信息的模块。应用组件11、开发容器组件12、芯片级组件13、内核组件14、中间件组件15的信息包括应用组件11、开发容器组件12、芯片级组件13、内核组件14、中间件组件15本身的代码、以及相关的其它信息(例如,后文中描述的错误标识与诊断方案映射表等)。

组件数据单元240中包含组件映射关系表201,该表是存储着应用标识与应用组件11、开发容器组件12、芯片级组件13、内核组件14、中间件组件15的标识的映射关系的表。本发明实施例是面向应用的,即面向一个要开发的应用,为其找到匹配于它的应用组件11、开发容器组件12、芯片级组件13、内核组件14、中间件组件15,将它们放在该应用的工程包中,如图2所示。因此,在组件映射关系表201中预先存储与应用标识匹配的应用组件11的标识、开发容器组件12的标识、芯片级组件13的标识、内核组件14的标识、中间件组件15的标识。这样,已知应用标识,就可以查找组件映射关系表201,获得匹配的应用组件11的标识、开发容器组件12的标识、芯片级组件13的标识、内核组件14的标识、中间件组件15的标识。

控制模块202是平台服务器200的核心处理单元。

下面结合上述结构,描述一下根据用户要开发的应用,向用户返回开发所述应用所需的工程包的过程。

首先,用户通过交互界面模块101,输入其要开发的应用的信息,该信息可以是应用的标识。该标识可以是应用的名称,或者为应用分配的代码等。交互界面模块101通过收发器105将应用的标识发送到平台服务器200。

控制模块202接收ide终端100中收发器105发来的应用标识,根据应用标识查找组件映射关系表201,找到与应用标识匹配的应用组件11的标识、开发容器组件12的标识、芯片级组件13的标识、内核组件14的标识、中间件组件15的标识。然后,控制模块202根据这些标识,查找相应的应用组件信息模块211、开发容器组件信息模块212、芯片级组件信息模块213、内核组件信息模块214、中间件组件信息模块215,获得相应的应用组件11、开发容器组件12、芯片级组件13、内核组件14、中间件组件15,放置在ide工程包中,返回ide终端100。

ide终端100的收发器105接收到ide工程包,将该ide工程包发送到编译器102进行编译。下载运行机103将编译后的ide工程包下载到电路板(板、片等),并在电路板上运行该ide工程包,同时在芯片中运行编写的应用代码,使得应用得以执行。

本发明实施例的过程主要是围绕上述编译器102编译和下载运行机103下载运行时出现了错误,如何获取该错误的诊断方案展开的。下面就结合图5-7对本发明实施例详细描述。

图5示出了本发明一个实施例的ide终端100的内部结构图。相对于图4,图5的ide终端100还包括错误组件探测器104。

编译器102连接到错误组件探测器104。编译器102在完成对从平台服务器接收到的工程包的编译时,如果编译时发生错误,输出第一错误标识给错误组件探测器104。第一错误标识是指工程包的编译过程中出现的错误标识,每个错误标识代表着一种错误。错误不同,错误标识就不同。

错误是工程包在编译时发生的,工程包是分成各组件的,错误组件探测器104可以探测出工程包中所述第一错误标识指示的错误所在的错误组件。具体地,它可以从工程包的工程视图中,根据第一错误标识,定位工程视图中第一错误标识指示的错误所在的错误组件。另外,它也可以存储错误标识、应用与错误组件映射关系表。在该表中,各种应用标识和错误标识的组合都唯一对应一个错误组件的标识。因此,根据要开发的应用的标识、第一错误标识,就能够从该表中唯一确定错误组件标识。

收发器105将第一错误标识和错误组件的标识发送到平台服务器200。

图6示出了本发明一个实施例的平台服务器200的内部结构图。与图4相比,该平台服务器200增加了错误标识、应用与错误组件映射关系表203。在该表中,各种应用标识和错误标识的组合都唯一对应一个错误组件的标识。因此,根据要开发的应用的标识、第一错误标识,就能够从该表中唯一确定错误组件标识。

各组件信息模块211首先存储对应的组件。由于平台服务器200向ide终端100返回工程包时加入其中的各组件是从相应的组件信息模块211获取的,因此,各组件信息模块211首先要存储对应的组件。例如,应用组件信息模块211存储应用组件,开发容器组件信息模块212存储开发容器组件,芯片级组件信息模块213存储芯片级组件……各组件信息模块211还可存储针对相应的组件的错误标识与诊断方案映射表19和相应组件的开发者终端信息。例如,对于应用组件信息模块211来说,其存储着对于应用组件来说的错误标识与诊断方案映射表19和应用组件的开发者终端信息18;对于开发容器组件信息模块212来说,其存储着对于开发容器组件来说的错误标识与诊断方案映射表19和开发容器组件的开发者终端信息18……错误标识与诊断方案映射表19存储着对于组件来说,当出现各种可能的错误标识时对应的诊断方案。例如,应用组件信息模块211中的错误标识与诊断方案映射表19存储着,对于应用组件来说,当出现各种错误标识指示的错误时对应的诊断方案。该开发者终端信息可以是通过其可以进行通信的信息,如电话号码、钉钉号等。

控制模块202当接收到ide终端100由于工程包编译时出现错误而发来的第一错误标识和错误组件后,从错误组件相应的组件信息模块211-215中,查找错误标识与诊断方案映射关系表,得到对应的诊断方案,返回给ide终端100。

图7示出了本发明实施例的ide终端100和平台服务器200相连的整体系统结构。图8、9分别示出当工程包编译时出现错误、和当工程包下载运行时出现错误,由图6的系统获得解决该错误的诊断方案的交互流程。

如图8所示,其示出了当工程包编译时出现错误时,获得解决该错误的诊断方案的流程。

当编译器102编译ide终端100从平台服务器200得到的工程包时,如果发生了错误,输入第一错误标识到错误组件探测器104。在错误组件探测器104查找内部的错误标识、应用与错误组件映射关系表的情况下,编译器102还要向错误组件探测器104输入应用标识。错误组件探测器104根据应用标识和第一错误标识,查找内部的错误标识、应用与错误组件映射关系表,得到第一错误标识所在的错误组件标识,将错误组件标识和第一错误标识发送给控制模块202。控制模块202向组件信息模块211-215中该错误组件标识对应的组件信息模块发送第一错误标识,查找该组件信息模块中的错误标识与诊断方案映射表19,得到对应的诊断方案,发送回ide终端100的收发器105,由收发器105发送回交互界面模块101呈现给用户。

上述实施例中,如果在编译过程中发生错误,平台服务器根据该错误,返回错误所在的错误组件的、针对该错误的诊断方案,整个过程是自动的。通过上述过程,实现了自动化获取诊断方案,提高了获取诊断方案的效率。

如果用户看到该诊断方案后,在ide终端100上运行该诊断方案,发现未能解决该第一错误标识指示的错误,本发明实施例还提供了一种自动在错误组件的开发者终端和用户终端之间建立通信的方法。

如图8所示,如果上述查找错误标识和诊断方案映射关系表的方式得到的诊断方案未能成功获取诊断方案,用户在界面上选择与错误组件开发者终端联系来获取诊断方案,此时交互界面模块101通过收发器105向平台服务器200的控制模块202发送第一反馈,所述第一反馈指示所述诊断方案未能解决所述第一错误标识指示的错误。该第一反馈中可以携带有针对的诊断方案的标识。控制模块202根据该标识,可以识别出针对的诊断方案,从而获知该诊断方案是哪个错误组件信息模块给出的,进而向该组件信息模块发送第一反馈。该组件信息模块接收到第一反馈后,将相应的开发者终端信息发送回控制模块202。控制模块202通过ide终端100中的收发器105向交互界面模块101发送该信息,使交互界面模块101利用该开发者终端信息在用户终端和该开发者终端之间建立通信。

上述方案与现有技术用户需要人工查找错误组件的开发人员进而人工联系的方式相比,提高了与错误组件开发者终端建立通信获取诊断方案的自动化程度。同时,还在解决不了错误时引入直接与开发者终端联系的方式,提高了获取诊断方案成功的几率。

如果用户与所述错误组件的开发者终端建立通信后仍未能解决所述第一错误标识指示的错误,本发明实施例还提供了一种自动在该应用的工程包中所有组件的开发者终端和用户终端之间建立群通信的方法。

如图8所示,如果用户与所述错误组件的开发者终端建立通信后仍未能解决所述第一错误标识指示的错误,用户在界面上选择与该应用涉及的所有组件开发者终端联系来获取诊断方案,此时交互界面模块101通过收发器105向平台服务器200的控制模块202发送第二反馈,所述第二反馈指示与所述错误组件的开发者终端建立通信后仍未能解决所述第一错误标识指示的错误。该第二反馈中可以携带有针对的诊断方案的标识。控制模块202根据该标识,可以识别出针对的诊断方案,从而获知该诊断方案对应的应用标识,根据该应用标识查找组件映射关系表201。该组件映射关系表201中存储了应用标识与对应的应用组件标识、开发容器组件标识、芯片级组件标识、内核组件标识、中间件组件标识的映射关系。因此,查找该映射关系表201,可以获得与该应用标识对应的应用组件标识、开发容器组件标识、芯片级组件标识、内核组件标识、中间件组件标识,从而向这些标识分别对应的应用组件信息模块211、开发容器组件信息模块212、芯片级组件信息模块213、内核组件信息模块214、中间件组件信息模块215获取应用组件开发者终端信息、开发容器组件开发者终端信息、芯片级组件开发者终端信息、内核组件开发者终端信息、中间件组件开发者终端信息,将这些联系信息全部通过ide终端100的收发器105,返回到交互界面模块101,从而交互界面模块利用这些联系信息使用户终端与应用组件开发者终端、开发容器组件开发者终端、芯片级组件开发者终端、内核组件开发者终端、中间件组件开发者终端进行群通信。群通信的方式可以是在钉钉之类的社交应用软件上建立一个群,将用户和所有这些开发者终端作为群成员,进行通信,也可以是将用户和所有这些开发者终端作为电子邮件的收件人发送一个电子邮件,然后用户和所有这些开发者终端就可以通过全部回复的方式相互讨论。

上述方案在用户与所述错误组件的开发者终端建立通信后仍未能解决所述第一错误标识指示的错误的情况下,通过自动与该应用的相关组件的所有开发者终端建立群通信,提高了获取诊断方案成功的几率。同时,相比于用户自己去一一查找应用的各种相关组件的开发者终端并人工建立通信的方式,大大提高了效率。

如上所述,各组件信息模块中的错误标识与诊断方案映射表存储着对于每个组件来说,当发生各种错误标识时对应的诊断方案。如果按照该错误标识与诊断方案映射表查找出来的诊断方案返回给用户,未能解决错误标识指示的错误,此时通过与错误组件的开发者终端通信,或者与该应用相关的所有组件的开发者终端群通信的方式,找到相应诊断方案。在一个进一步的实施例中,可以用这些诊断方案去丰富完善各组件信息模块中的错误标识与诊断方案映射表,以便在下次为用户给出诊断方案时提高向用户返回的诊断方案解决用户问题的概率。

因此,如果在图8中,如果与所述错误组件的开发者终端、或所述全部组件的开发者终端建立通信后解决所述第一错误标识指示的错误,所述交互界面模块101可以从通信记录中获取与所述第一错误标识对应的诊断方案,通过所述收发器105发送给所述平台服务器200的控制模块202。

如果是与所述错误组件的开发者终端建立通信后解决了第一错误标识指示的错误,控制模块202就将这个诊断方案与第一错误标识相对应地存储在该错误组件信息模块中的错误标识与诊断方案映射表19中,实现更新。存储的方式可以有两种。一种是将这个诊断方案与第一错误标识相对应地存储在该错误组件信息模块中的错误标识与诊断方案映射表19中,替换该映射表19中原有的与该第一错误标识对应的诊断方案,另一种是不替换而另外存储在该映射表19中。在后一种情况下,当之后控制模块202查找该映射表19中与该第一错误标识对应的诊断方案时,就能找到两个诊断方案。可以将这两个诊断方案都向ide终端100返回,由用户选择采用哪个诊断方案。

如果是与所述全部组件的开发者终端建立通信后解决了第一错误标识指示的错误,所述交互界面模块101还要从群通信记录中获取给出诊断方案的开发者终端所属的组件标识,与所述诊断方案一起,通过所述收发器105发送给所述平台服务器200的控制模块202。控制模块202就将这个诊断方案与第一错误标识相对应地存储在该组件标识的组件信息模块中的错误标识与诊断方案映射表19中,实现更新。存储的方式也可以有如上已经讨论过的两种。

诊断方案不能解决出现的错误,有时并非因为该诊断方案不正确,而是由于ide终端100出现了一些其它因素的干扰,因此,只要出现映射表中给出的与错误标识对应的诊断方案不能解决该错误标识指示的错误的情况下,就盲目更新该映射表,有可能将一些偶然性的诊断方案误放进映射表中,降低之后解决错误的效果。因此,在另一个实施例中,可以在平台服务器200中增设一个记录表(图中未示)。如果与所述错误组件的开发者终端、或所述全部组件的开发者终端建立通信后解决所述第一错误标识指示的错误,交互界面模块101从通信记录中获取与所述第一错误标识对应的诊断方案,通过所述收发器105通知控制模块202,控制模块202不是立刻更新到各组件信息模块的错误标识与诊断方案映射表19中,而是在记录表中记录,一旦记录表中记录的与所述第一错误标识对应的诊断方案达到预定次数,更新相应组件信息模块中存储的与所述第一错误标识对应的诊断方案。通过这种方式,减少了一些偶然性因素对错误标识的诊断方案的影响,使得各组件信息模块的错误标识与诊断方案映射表19更新反映客观实际。

如图9所示,其示出了当工程包下载到电路板(板、片等)运行时出现错误时,获得解决该错误的诊断方案的流程。

在下载运行机103将编译后的工程包下载到电路板(板、片等)上并运行时,如果发生了错误,下载运行机103将第二错误标识发送给收发器105,同时发送给收发器105的还有应用标识。在下载运行时与编译时不同,在ide终端100无法判定是哪个组件发生了第二错误标识,因此,只能发送应用标识。收发器105将第二错误标识和应用标识发送给控制模块202。由于平台服务器200具有错误标识、应用与错误组件映射关系表203,其中存储有错误标识、应用标识的不同组合与错误组件标识的映射关系。因此,控制模块202根据应用标识和第二错误标识,查找该映射关系表203,得到对应的错误组件标识,向该错误组件标识对应的组件信息模块发送错误标识。该组件信息模块中存储有对于该组件的错误标识与诊断方案映射表19。基于该第二错误标识,查找该映射表19,得到对应的诊断方案,发送回ide终端100的收发器105,由收发器105发送回交互界面模块101呈现给用户。

上述实施例中,如果在下载运行过程中发生错误,平台服务器根据该错误,返回错误所在的错误组件的、针对该错误的诊断方案,整个过程是自动的。通过上述过程,实现了自动化获取诊断方案,提高了获取诊断方案的效率。

如果用户看到该诊断方案后,在ide终端100上运行该诊断方案,发现未能解决该第二错误标识指示的错误,本发明实施例还提供了一种自动在错误组件的开发者终端和用户终端之间建立通信的方法。

如图9所示,如果上述查找错误标识和诊断方案映射关系表的方式得到的诊断方案未能成功获取诊断方案,用户在界面上选择与错误组件开发者终端联系来获取诊断方案,此时交互界面模块101通过收发器105向平台服务器200的控制模块202发送第一反馈,所述第一反馈指示所述诊断方案未能解决所述第二错误标识指示的错误。该第一反馈中可以携带有针对的诊断方案的标识。控制模块202根据该标识,可以识别出针对的诊断方案,从而获知该诊断方案是哪个错误组件信息模块给出的,进而向该组件信息模块发送第一反馈。该组件信息模块接收到第一反馈后,将相应的开发者终端信息发送回控制模块202。控制模块202通过ide终端100中的收发器105向交互界面模块101发送该信息,使交互界面模块101利用该信息在用户终端和该开发者终端之间建立通信。

上述方案与现有技术用户需要人工查找错误组件的开发者终端进而人工联系的方式相比,提高了与错误组件开发者终端建立通信获取诊断方案的自动化程度。同时,不仅通过上述查找常见的错误标识和诊断方案映射关系表的方式,还在解决不了时引入直接与开发者终端联系的方式,提高了获取诊断方案成功的几率。

如果用户与所述错误组件的开发者终端建立通信后仍未能解决所述第二错误标识指示的错误,本发明实施例还提供了一种自动在该应用的工程包中所有组件的开发者终端和用户终端之间建立群通信的方法。

如图9所示,如果用户与所述错误组件的开发者终端建立通信后仍未能解决所述第二错误标识指示的错误,用户在界面上选择与该应用涉及的所有组件开发者终端联系来获取诊断方案,此时交互界面模块101通过收发器105向平台服务器200的控制模块202发送第二反馈,所述第二反馈指示与所述错误组件的开发者终端建立通信后仍未能解决所述第二错误标识指示的错误。该第二反馈中可以携带有针对的诊断方案的标识。控制模块202根据该标识,可以识别出针对的诊断方案,从而获知该诊断方案对应的应用标识,根据该应用标识查找组件映射关系表201。该组件映射关系表201中存储了应用标识与对应的应用组件标识、开发容器组件标识、芯片级组件标识、内核组件标识、中间件组件标识的映射关系。因此,查找该映射关系表201,可以获得与该应用标识对应的应用组件标识、开发容器组件标识、芯片级组件标识、内核组件标识、中间件组件标识,从而向这些标识分别对应的应用组件信息模块211、开发容器组件信息模块212、芯片级组件信息模块213、内核组件信息模块214、中间件组件信息模块215获取应用组件开发者终端信息、开发容器组件开发者终端信息、芯片级组件开发者终端信息、内核组件开发者终端信息、中间件组件开发者终端信息,将这些信息全部通过ide终端100的收发器105,返回到交互界面模块101,从而交互界面模块利用这些信息使用户与应用组件开发者终端、开发容器组件开发者终端、芯片级组件开发者终端、内核组件开发者终端、中间件组件开发者终端进行群通信。群通信的方式可以是在钉钉之类的社交应用软件上建立一个群,将用户和所有这些开发者终端作为群成员,进行通信,也可以是将用户和所有这些开发者终端作为电子邮件的收件人发送一个电子邮件,然后用户和所有这些开发者终端就可以通过全部回复的方式相互讨论。

上述方案在用户与所述错误组件的开发者终端建立通信后仍未能解决所述第二错误标识指示的错误的情况下,通过自动与该应用的相关组件的所有开发者终端建立群通信,提高了获取诊断方案成功的几率。同时,相比于用户自己去一一查找应用的各种相关组件的开发者终端并人工建立通信的方式,大大提高了效率。

如上所述,各组件信息模块中的错误标识与诊断方案映射表存储着对于每个组件来说,当发生各种错误标识时对应的诊断方案。如果按照该错误标识与诊断方案映射表查找出来的诊断方案返回给用户,未能解决错误标识指示的错误,此时通过与错误组件的开发者终端通信,或者与该应用相关的所有组件的开发者终端群通信的方式,找到相应诊断方案。在一个进一步的实施例中,可以用这些诊断方案去丰富完善各组件信息模块中的错误标识与诊断方案映射表,以便在下次为用户给出诊断方案时提高向用户返回的诊断方案解决用户问题的概率。

因此,如果在图9中,如果与所述错误组件的开发者终端、或所述全部组件的开发者终端建立通信后解决所述第二错误标识指示的错误,所述交互界面模块101可以从通信记录中获取与所述第二错误标识对应的诊断方案,通过所述收发器105发送给所述平台服务器200的控制模块202。

如果是与所述错误组件的开发者终端建立通信后解决了第二错误标识指示的错误,控制模块202就将这个诊断方案与第二错误标识相对应地存储在该错误组件信息模块中的错误标识与诊断方案映射表19中,实现更新。存储的方式也可以有两种。一种是将这个诊断方案与第二错误标识相对应地存储在该错误组件信息模块中的错误标识与诊断方案映射表19中,替换该映射表19中原有的与该第二错误标识对应的诊断方案,另一种是不替换而另外存储在该映射表19中。在后一种情况下,当之后控制模块202查找该映射表19中与该第二错误标识对应的诊断方案时,就能找到两个诊断方案。可以将这两个诊断方案都向ide终端100返回,由用户选择采用哪个诊断方案。

如果是与所述全部组件的开发者终端建立通信后解决了第二错误标识指示的错误,所述交互界面模块101还要从群通信记录中获取给出诊断方案的开发者终端所属的组件标识,与所述诊断方案一起,通过所述收发器105发送给所述平台服务器200的控制模块202。控制模块202就将这个诊断方案与第二错误标识相对应地存储在该组件标识的组件信息模块中的错误标识与诊断方案映射表19中,实现更新。存储的方式也可以有如上已经讨论过的两种。

诊断方案不能解决出现的错误,有时并非因为该诊断方案不正确,而是由于ide终端100出现了一些其它因素的干扰,因此,只要出现映射表中给出的与错误标识对应的诊断方案不能解决该错误标识指示的错误的情况下,就盲目更新该映射表,有可能将一些偶然性的诊断方案误放进映射表中,降低之后解决错误的效果。因此,在另一个实施例中,可以在平台服务器200中增设一个记录表(图中未示)。如果与所述错误组件的开发者终端、或所述全部组件的开发者终端建立通信后解决所述第二错误标识指示的错误,交互界面模块101从通信记录中获取与所述第二错误标识对应的诊断方案,通过所述收发器105通知控制模块202,控制模块202不是立刻更新到各组件信息模块的错误标识与诊断方案映射表19中,而是在记录表中记录,一旦记录表中记录的与所述第二错误标识对应的诊断方案达到预定次数,更新相应组件信息模块中存储的与所述第二错误标识对应的诊断方案。通过这种方式,减少了一些偶然性因素对错误标识的诊断方案的影响,使得各组件信息模块的错误标识与诊断方案映射表19更新反映客观实际。

另外,根据本公开的实施例,还提供了ide终端100侧和平台服务器200侧的报错处理方法。该报错处理方法已经在上文实施例中,结合ide终端100和平台服务器200的结构和各部分的动作,详细地进行了描述,为了节约篇幅,这里不再赘述。

本领域的技术人员能够理解,本发明可以实现为设备、方法和计算机程序产品。因此,本发明可以具体实现为以下形式,即完全的硬件、完全的软件(包括固件、驻留软件、微代码),还可以实现为软件和硬件结合的形式。此外,在一些实施例中,本发明还可以实现为一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质中包含计算机可读的程序代码。

可以采用一个或多个计算机可读介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如但不限于为电、磁、光、电磁、红外线或半导体的系统、装置或器件,或其他任意以上的组合。计算机可读存储介质的更具体的例子包括:具体一个或多个导线的电连接,便携式计算机磁盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或者闪存)、光纤、便携式紧凑磁盘只读存储器(cd-rom)、光存储器、磁存储器或者上述任意合适的组合。在本文中,计算机可读的存储介质可以是任意包含或存储程序的有形介质,该程序可以被处理单元、装置或者器件使用,或者与其结合使用。

计算机可读信号介质可以包括在基带中或者作为截波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或者其他任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质之外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令系统、装置或器件使用或者与其结合使用的程序。

计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、电线、光缆、rf等等,以及上述任意合适的组合。

可以以一种或者多种程序设计语言或者组合来编写用于执行本发明实施例的计算机程序代码。所述程序设计语言包括面向对象的程序设计语言,例如java、c++,还可以包括常规的过程式程序设计语言,例如c。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络包括局域网(lan)或广域网(wan)连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。

以上所述仅为本发明的优选实施例,并不用于限制本发明,对于本领域技术人员而言,本发明可以有各种改动和变化。凡在本发明的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

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