技术领域
[0001] 本
发明属于软件开发领域,特别是一种在线软件开发方法及系统。
背景技术
[0002] 现在包括PC、手机、
物联网等各种设备都需要软件的
支撑。通常为一个设备开发软件需要先了解这个设备具有哪些功能和
接口,然后才能进行开发。由于PC、手机相对比较标准化,所以功能和接口也相对标准。但是由于物联网设备之间通常差异比较大,导致每个设备的功能和接口也都差别比较大,作为软件开发者,拿到一个
硬件设备之后要开发软件往往要花很大
力气去找各种资料然后才能为这款硬件来开发软件。由于物联网设备的类型众多,导致花在找资料上的时间也非常多。
[0003] 针对在物联网软件开发中经常遇到的这个问题,本发明提出了一种在线软件开发的方法和系统,可以大大降低查找资料的难度。
发明内容
[0004] 本发明的主要目的在于解决
现有技术中存在的问题,提供一种在线软件开发方法及系统,从而大大降低在线软件开发时查找资料的难度。
[0005] 根据本发明
实施例的第一方面,提供了一种在线软件开发方法,应用于在线软件开发系统,所述在线软件开发系统包括:相互通讯链接的开发设备和目标设备,其特征在于,该方法包括:
[0006] 所述开发设备通过开发模
块向所述目标设备发送设备描述信息
请求;
[0007] 所述目标设备响应所述设备描述信息请求,根据设备信息存储单元中所存储的设备描述信息向所述开发设备发送设备描述返回信息;所述目标设备中包括目标浏览器;所述目标浏览器用于通过脚本驱动所述目标设备;
[0008] 所述开发设备根据所述设备描述返回信息获取所述目标设备的设备信息,并显示。
[0009] 所述设备描述返回信息,至少包括设备ID和设备信息存储地址;
[0010] 所述开发设备根据所述设备描述返回信息获取所述目标设备的设备信息,包括:
[0011] 所述开发设备将所述设备ID发送至所述设备信息存储地址,根据所述设备ID获取所述目标设备的设备信息。
[0012] 所述设备描述返回信息,至少包括设备ID;
[0013] 所述开发设备根据所述设备描述返回信息获取所述目标设备的设备信息,包括:
[0014] 所述开发设备将所述设备ID发送至预设的设备信息获取地址,根据所述设备ID获取所述目标设备的设备信息。
[0015] 所述开发设备包括脚本模板库;所述脚本模板库中存储有至少一个脚本模板;
[0016] 所述开发设备根据所述设备信息,调用所述脚本模板库中与所述设备信息相匹配的脚本模板。
[0017] 所述开发设备通过开发模块向所述目标设备发送开发脚本;
[0018] 所述目标设备通过所述目标浏览器运行所述开发脚本,并生成调试信息;
[0019] 所述目标设备通过web socket向所述开发设备发送所述调试信息。
[0020] 根据本发明实施例的第二方面,提供了一种在线软件开发系统,其特征在于,包括:相互通讯链接的开发设备和目标设备;
[0021] 所述开发设备包括开发模块;所述开发模块,至少包括:请求发送单元、设备信息获取单元和显示单元;
[0022] 所述请求发送单元,用于向所述目标设备发送设备描述信息请求;
[0023] 所述设备信息获取单元,用于根据所述目标设备发送的设备描述返回信息获取所述目标设备的设备信息;
[0024] 所述显示单元,用于显示所述设备信息;
[0025] 所述目标设备包括:请求响应单元、设备信息存储单元和目标浏览器;
[0026] 所述请求响应单元,用于响应所述设备描述信息请求,并向所述开发设备发送设备描述返回信息;
[0027] 所述设备信息存储单元,用于存储的设备描述信息;
[0028] 所述目标浏览器,用于通过脚本驱动所述目标设备。
[0029] 所述设备描述返回信息,至少包括设备ID和设备信息存储地址;
[0030] 所述设备信息获取单元,还用于将所述设备ID发送至所述设备信息存储地址,根据所述设备ID获取所述目标设备的设备信息。
[0031] 所述设备描述返回信息,至少包括设备ID;
[0032] 所述设备信息获取单元,还用于将所述设备ID发送至预设的设备信息获取地址,根据所述设备ID获取所述目标设备的设备信息。
[0033] 所述开发设备还包括脚本模板库;所述脚本模板库中存储有至少一个脚本模板;
[0034] 所述开发模块还包括脚本模板调用单元;所述脚本模板调用单元,用于根据所述设备信息,调用所述脚本模板库中与所述设备信息相匹配的脚本模板。
[0035] 所述开发模块还包括脚本发送单元;所述脚本发送单元,用于向所述目标设备发送开发脚本;
[0036] 所述目标浏览器,还用于运行所述开发脚本,并生成调试信息;
[0037] 所述目标设备还包括调试信息返回模块;所述调试信息返回模块,用于通过web socket向所述开发设备发送所述调试信息。
[0038] 通过本发明实施例,该在线软件开发方法及系统可以使用通用浏览器作为开发工具,免去了为不同的设备安装各种不同的专用开发工具的麻烦;在开发工具中直接可以看到目标设备的详细描述信息而无需自己到网上去查找各种资料,从而大大降低了开发的难度;所述目标浏览器除了具备标准浏览器的功能外,还可以通过浏览器扩展来实现。
附图说明
[0039] 此处所说明的附图用来提供对本发明的进一步理解,构成本
申请的一部分,并不构成对本发明的限定。在附图中:
[0040] 图1是在线软件开发方法的流程示意图一;
[0041] 图2是在线软件开发方法的流程示意图二;
[0042] 图3是在线软件开发方法的流程示意图三;
[0043] 图4是在线软件开发方法的流程示意图四;
[0044] 图5是在线软件开发系统的结构示意图一;
[0045] 图6是在线软件开发系统的结构示意图二;
[0046] 图7是在线软件开发系统的结构示意图三。
具体实施方式
[0047] 为使本发明的目的、技术方案和优点更加清楚明白,下面结合实施方式和附图,对本发明做进一步详细说明。在此,本发明的示意性实施方式及其说明用于解释本发明,但并不作为对本发明的限定。
[0048] 图1是在线软件开发方法的流程示意图一。如图所示,该在线软件开发方法,包括:
[0049] 在步骤101中,所述开发设备通过开发模块向所述目标设备发送设备描述信息请求。
[0050] 该在线软件开发方法,应用于在线软件开发系统。所述在线软件开发系统包括相互通讯链接的开发设备和目标设备。所述开发设备上运行有开发模块,用于对目标设备进行在线软件开发。该开发模块具备网页显示能力,用于显示所述目标设备的详细描述信息,以及用于进行代码编辑。该开发模块可以是运行于开发设备上用于网页浏览的通用浏览器。
[0051] 在步骤102中,所述目标设备响应所述设备描述信息请求,根据设备信息存储单元中所存储的设备描述信息向所述开发设备发送设备描述返回信息;所述目标设备中包括目标浏览器;所述目标浏览器用于通过脚本驱动所述目标设备。
[0052] 所述目标设备是该在线软件开发所针对的设备,是所开发软件的运行载体。例如,该目标设备可以是一个摄像头、一个
温度传感器、一个红外传感器等。所述目标设备中设置有设备信息存储单元。该设备信息存储单元中存储有设备描述信息。
[0053] 所述设备描述信息可以包含如下一些信息:设备属性以及设备方法。该设备属性可以包含如下信息:属性名称、属性的文字描述、属性类型(数字型、字符串型、枚举型等)、属性的取值范围、属性的输入输出方向(例如是只读的还是可写的)。该设备方法可以包含如下一些信息:方法名称,方法的返回值描述(返回值的类型、取值范围等),若干参数。该参数可以包含如下一些信息:参数名称、参数的文字描述、属性类型(数字型、字符串型、枚举型等)、属性的取值范围、属性的输入输出方向(例如是只读的还是可写的)等。
[0054] 所述目标设备中还包括有目标浏览器。所述目标浏览器是运行于所述目标设备上的浏览器。所述目标浏览器可以处理包括HTML、CSS、JavaScript、LUA等网页语言。与PC上运行的标准浏览器不一样的地方在于:所述目标浏览器还具备通过脚本直接底层设备硬件的能力。至于如何实现浏览器的脚本扩展对于浏览器开发者来讲属于公知内容,在此并不展开详述。
[0055] 在步骤103中,所述开发设备根据所述设备描述返回信息获取所述目标设备的设备信息,并显示。
[0056] 通过上述在线软件开发方法,在开发过程中,首先将所述目标设备与所述开发设备建立连接,连接可以但不限于通过WIFI、以太网、蓝牙等各种手段来完成。
[0057] 所述开发设备在与所述目标设备连接后,通过开发模块向所述目标设备发送设备描述信息请求。所述目标设备在收到请求后,根据设备信息存储单元中所存储的设备描述信息向所述开发设备发送设备描述返回信息。
[0058] 所述开发设备在收到所述目标设备发送过来的设备描述返回信息后,根据所述设备描述返回信息获取所述目标设备的设备信息,并显示。这样,不仅方便了开发者查找设备信息资料,更免除了安装专用开发环境的麻烦,可以直接用浏览器来进行开发,从而使得开发者可以根据该设备信息直接进行软件开发,大大提高开发效率。
[0059] 其中,所述步骤103中根据不同的情况所述开发设备根据所述设备描述返回信息获取所述目标设备的设备信息的方式也有所不同。
[0060] 如图2所示,在本实施例中,所述设备描述返回信息,至少包括设备ID和设备信息存储地址。其中,该设备信息存储地址可以为存储有该设备信息的网络地址URL。
[0061] 所述开发设备根据所述设备描述返回信息获取所述目标设备的设备信息,包括:
[0062] 在步骤103a中,所述开发设备将所述设备ID发送至所述设备信息存储地址,根据所述设备ID获取所述目标设备的设备信息。
[0063] 或者,
[0064] 如图3所示,在本实施例中,
[0065] 所述设备描述返回信息,至少包括设备ID。
[0066] 所述开发设备根据所述设备描述返回信息获取所述目标设备的设备信息,包括:
[0067] 在步骤103b中,所述开发设备将所述设备ID发送至预设的设备信息获取地址,根据所述设备ID获取所述目标设备的设备信息。其中,该预设的设备信息获取地址可以根据设备ID搜索查询设备相应设备信息的网络地址URL。
[0068] 另外,上述目标设备的设备ID和设备描述信息可以在一个消息中同时返回,也可以分成两次来分别返回。本发明并不做这方面的限定。
[0069] 再有,所述开发设备还包括脚本模板库。所述脚本模板库中存储有至少一个脚本模板。
[0070] 所述开发设备根据所述设备信息,调用所述脚本模板库中与所述设备信息相匹配的脚本模板。从而指导和协助开发者更为方便的为目标设备进行软件开发,大大降低了软件开发的难度。
[0071] 图4是在线软件开发方法的流程示意图四。如图所示,该在线软件开发方法,还包括:
[0072] 在步骤104中,所述开发设备通过开发模块向所述目标设备发送开发脚本。
[0073] 在步骤105中,所述目标设备通过所述目标浏览器运行所述开发脚本,并生成调试信息。
[0074] 在步骤106中,所述目标设备通过web socket向所述开发设备发送所述调试信息。
[0075] 在所述目标设备与开发设备连接之后,软件开发者就可以在所述开发设备的开发模块中为所述目标设备开发软件了。开发者可以使用HTML、CSS、JavaScript、LUA等脚本语言。
[0076] 开发完成后,开发设备可以通过开发模块向目标设备直接上传开发完成的代码。所述目标设备在收到代码之后,将其交给所述目标浏览器,由目标浏览器运行所述开发脚本,并生成调试信息。
[0077] 另外,所述开发设备中有web socket功能,当所述目标设备与所述开发设备连接之后,所述目标设备与所述开发设备之间建立web socket连接。这样所述目标设备就可以随时向所述开发设备发送所述调试信息。通过这个功能,可以将所述开发设备作为所述目标设备的调试信息输出设备,而无需像传统的硬件调试那样需要再单独的外界串口线或USB线。
[0078] 下述为本发明系统实施例,可以用于执行本发明方法实施例。对于本发明系统实施例中未披露的细节,请参照本发明方法实施例。
[0079] 图5是在线软件开发系统的结构示意图一。如图所示,该在线软件开发系统,包括:相互通讯链接的开发设备100和目标设备200;
[0080] 所述开发设备包括开发模块110;所述开发模块110,至少包括:请求发送单元111、设备信息获取单元112和显示单元113;
[0081] 所述请求发送单元111,用于向所述目标设备200发送设备描述信息请求;
[0082] 所述设备信息获取单元112,用于根据所述目标设备200发送的设备描述返回信息获取所述目标设备200的设备信息;
[0083] 所述显示单元113,用于显示所述设备信息;
[0084] 所述目标设备200包括:请求响应单元201、设备信息存储单元202和目标浏览器203;
[0085] 所述请求响应单元201,用于响应所述设备描述信息请求,并向所述开发设备100发送设备描述返回信息;
[0086] 所述设备信息存储单元202,用于存储的设备描述信息;
[0087] 所述目标浏览器203,用于通过脚本驱动所述目标设备。
[0088] 所述开发设备在收到所述目标设备发送过来的设备描述返回信息后,根据所述设备描述返回信息获取所述目标设备的设备信息,并显示。这样,不仅方便了开发者查找设备信息资料,更免除了安装专用开发环境的麻烦,可以直接用浏览器来进行开发,从而使得开发者可以根据该设备信息直接进行软件开发,大大提高开发效率。
[0089] 其中,根据不同的情况所述设备信息获取单元112根据所述设备描述返回信息获取所述目标设备的设备信息的方式也有所不同。
[0090] 方案一
[0091] 所述设备描述返回信息,至少包括设备ID和设备信息存储地址。
[0092] 所述设备信息获取单元112,还用于将所述设备ID发送至所述设备信息存储地址,根据所述设备ID获取所述目标设备的设备信息。
[0093] 方案二
[0094] 所述设备描述返回信息,至少包括设备ID;
[0095] 所述设备信息获取单元112,还用于将所述设备ID发送至预设的设备信息获取地址,根据所述设备ID获取所述目标设备的设备信息。
[0096] 另外,如图6所示,在本实施例中所述开发设备100还包括脚本模板库120;所述脚本模板库120中存储有至少一个脚本模板。
[0097] 所述开发模块110还包括脚本模板调用单元114;所述脚本模板调用单元114,用于根据所述设备信息,调用所述脚本模板库120中与所述设备信息相匹配的脚本模板。
[0098] 另外,如图7所示,在本实施例中所述开发模块110还包括脚本发送单元115;所述脚本发送单元115,用于向所述目标设备200发送开发脚本;
[0099] 所述目标浏览器203,还用于运行所述开发脚本,并生成调试信息;
[0100] 所述目标设备200还包括调试信息返回模块204;所述调试信息返回模块204,用于通过web socket向所述开发设备100发送所述调试信息。
[0101] 本领域技术人员在考虑
说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本申请旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由下面的
权利要求指出。
[0102] 应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种
修改和改变。本发明的范围仅由所附的权利要求来限制。